Advertisement
Guest User

Untitled

a guest
Jun 27th, 2018
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .LC0:
  2.  .string "Ace"
  3. .LC1 [complete object constructor] [complete object constructor]:
  4.  .string "King"
  5. .LC2 [base object constructor] [base object constructor]:
  6.  .string "Queen"
  7. .LC3 [complete object allocating constructor] [complete object allocating constructor]:
  8.  .string "Jack"
  9. .LC4:
  10.  .string "Ten"
  11. .LC5:
  12.  .string "Nine"
  13. .LC6:
  14.  .string "Eight"
  15. .LC7:
  16.  .string "Seven"
  17. .LC8:
  18.  .string "Six"
  19. .LC9:
  20.  .string "Five"
  21. .LC1 [complete object constructor] [complete object constructor]0 [complete object constructor] [complete object constructor]:
  22.  .string "Four"
  23. .LC1 [complete object constructor] [complete object constructor]1 [complete object constructor] [complete object constructor]:
  24.  .string "Three"
  25. .LC1 [complete object constructor] [complete object constructor]2 [complete object constructor] [complete object constructor]:
  26.  .string "Two"
  27. .LC1 [complete object constructor] [complete object constructor]3 [complete object constructor] [complete object constructor]:
  28.  .string "Drew %s\n"
  29. .LC1 [complete object constructor] [complete object constructor]4 [complete object constructor] [complete object constructor]:
  30.  .string "Hit? "
  31. .LC1 [complete object constructor] [complete object constructor]5 [complete object constructor] [complete object constructor]:
  32.  .string "%d\n"
  33. .LC1 [complete object constructor] [complete object constructor]6 [complete object constructor] [complete object constructor]:
  34.  .string "Play again? "
  35. main:
  36.   push rbp
  37.   mov rbp, rsp
  38.   sub rsp, 1216
  39.   mov DWORD PTR [rbp-1204], edi
  40.   mov QWORD PTR [rbp-1216], rsi
  41.   cmp DWORD PTR [rbp-1204], 1
  42.   jle .L2
  43.   mov rax, QWORD PTR [rbp-1216]
  44.   add rax, 8
  45.   mov rax, QWORD PTR [rax]
  46.   mov rdi, rax
  47.   call atoi
  48.   mov edi, eax
  49.   call srand
  50.   jmp .L3
  51. .L2:
  52.   mov edi, 0
  53.   call time
  54.   mov edi, eax
  55.   call srand
  56. .L3:
  57.   mov DWORD PTR [rbp-4], 0
  58. .L25:
  59.   cmp DWORD PTR [rbp-4], 0
  60.   jne .L4
  61.   mov DWORD PTR [rbp-8], 0
  62.   mov QWORD PTR [rbp-1088], OFFSET FLAT:.LC0
  63.   mov DWORD PTR [rbp-1080], 11
  64.   mov DWORD PTR [rbp-1076], 0
  65.   mov QWORD PTR [rbp-1072], OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]
  66.   mov DWORD PTR [rbp-1064], 10
  67.   mov DWORD PTR [rbp-1060], 0
  68.   mov QWORD PTR [rbp-1056], OFFSET FLAT:.LC2 [base object constructor] [base object constructor]
  69.   mov DWORD PTR [rbp-1048], 10
  70.   mov DWORD PTR [rbp-1044], 0
  71.   mov QWORD PTR [rbp-1040], OFFSET FLAT:.LC3 [complete object allocating constructor] [complete object allocating constructor]
  72.   mov DWORD PTR [rbp-1032], 10
  73.   mov DWORD PTR [rbp-1028], 0
  74.   mov QWORD PTR [rbp-1024], OFFSET FLAT:.LC4
  75.   mov DWORD PTR [rbp-1016], 10
  76.   mov DWORD PTR [rbp-1012], 0
  77.   mov QWORD PTR [rbp-1008], OFFSET FLAT:.LC5
  78.   mov DWORD PTR [rbp-1000], 9
  79.   mov DWORD PTR [rbp-996], 0
  80.   mov QWORD PTR [rbp-992], OFFSET FLAT:.LC6
  81.   mov DWORD PTR [rbp-984], 8
  82.   mov DWORD PTR [rbp-980], 0
  83.   mov QWORD PTR [rbp-976], OFFSET FLAT:.LC7
  84.   mov DWORD PTR [rbp-968], 7
  85.   mov DWORD PTR [rbp-964], 0
  86.   mov QWORD PTR [rbp-960], OFFSET FLAT:.LC8
  87.   mov DWORD PTR [rbp-952], 6
  88.   mov DWORD PTR [rbp-948], 0
  89.   mov QWORD PTR [rbp-944], OFFSET FLAT:.LC9
  90.   mov DWORD PTR [rbp-936], 5
  91.   mov DWORD PTR [rbp-932], 0
  92.   mov QWORD PTR [rbp-928], OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]0 [complete object constructor] [complete object constructor]
  93.   mov DWORD PTR [rbp-920], 4
  94.   mov DWORD PTR [rbp-916], 0
  95.   mov QWORD PTR [rbp-912], OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]1 [complete object constructor] [complete object constructor]
  96.   mov DWORD PTR [rbp-904], 3
  97.   mov DWORD PTR [rbp-900], 0
  98.   mov QWORD PTR [rbp-896], OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]2 [complete object constructor] [complete object constructor]
  99.   mov DWORD PTR [rbp-888], 2
  100.   mov DWORD PTR [rbp-884], 0
  101.   mov DWORD PTR [rbp-12], 0
  102.   mov DWORD PTR [rbp-16], 0
  103. .L8:
  104.   cmp DWORD PTR [rbp-16], 12
  105.   jg .L5
  106.   mov DWORD PTR [rbp-20], 0
  107. .L7:
  108.   cmp DWORD PTR [rbp-20], 3
  109.   jg .L6
  110.   mov eax, DWORD PTR [rbp-12]
  111.   lea edx, [rax+1]
  112.   mov DWORD PTR [rbp-12], edx
  113.   cdqe
  114.   sal rax, 4
  115.   add rax, rbp
  116.   lea rcx, [rax-880]
  117.   mov eax, DWORD PTR [rbp-16]
  118.   cdqe
  119.   sal rax, 4
  120.   add rax, rbp
  121.   sub rax, 1088
  122.   mov rdx, QWORD PTR [rax+8]
  123.   mov rax, QWORD PTR [rax]
  124.   mov QWORD PTR [rcx], rax
  125.   mov QWORD PTR [rcx+8], rdx
  126.   add DWORD PTR [rbp-20], 1
  127.   jmp .L7
  128. .L6:
  129.   add DWORD PTR [rbp-16], 1
  130.   jmp .L8
  131. .L5:
  132.   mov DWORD PTR [rbp-24], 0
  133.   mov DWORD PTR [rbp-28], 0
  134. .L23:
  135.   cmp DWORD PTR [rbp-8], 0
  136.   jne .L9
  137.   mov DWORD PTR [rbp-32], 0
  138.   call rand
  139.   mov ecx, eax
  140.   mov edx, 1321528399
  141.   mov eax, ecx
  142.   imul edx
  143.   sar edx, 4
  144.   mov eax, ecx
  145.   sar eax, 31
  146.   sub edx, eax
  147.   mov eax, edx
  148.   imul eax, eax, 52
  149.   sub ecx, eax
  150.   mov eax, ecx
  151.   lea rdx, [rbp-880]
  152.   cdqe
  153.   sal rax, 4
  154.   add rax, rdx
  155.   mov QWORD PTR [rbp-48], rax
  156.   mov rax, QWORD PTR [rbp-48]
  157.   mov eax, DWORD PTR [rax+12]
  158.   test eax, eax
  159.   jne .L27
  160.   mov rax, QWORD PTR [rbp-48]
  161.   mov rax, QWORD PTR [rax]
  162.   mov rsi, rax
  163.   mov edi, OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]3 [complete object constructor] [complete object constructor]
  164.   mov eax, 0
  165.   call printf
  166.   mov rax, QWORD PTR [rbp-48]
  167.   mov DWORD PTR [rax+12], 1
  168.   mov rax, QWORD PTR [rbp-48]
  169.   mov rax, QWORD PTR [rax]
  170.   mov esi, OFFSET FLAT:.LC0
  171.   mov rdi, rax
  172.   call strcmp
  173.   test eax, eax
  174.   jne .L12
  175.   add DWORD PTR [rbp-24], 1
  176. .L12:
  177.   mov eax, DWORD PTR [rbp-28]
  178.   cdqe
  179.   sal rax, 4
  180.   add rax, rbp
  181.   lea rcx, [rax-1200]
  182.   mov rax, QWORD PTR [rbp-48]
  183.   mov rdx, QWORD PTR [rax+8]
  184.   mov rax, QWORD PTR [rax]
  185.   mov QWORD PTR [rcx], rax
  186.   mov QWORD PTR [rcx+8], rdx
  187.   mov DWORD PTR [rbp-36], 0
  188. .L15:
  189.   mov eax, DWORD PTR [rbp-36]
  190.   cmp eax, DWORD PTR [rbp-28]
  191.   jg .L13
  192.   mov eax, DWORD PTR [rbp-36]
  193.   cdqe
  194.   sal rax, 4
  195.   add rax, rbp
  196.   sub rax, 1200
  197.   mov rax, QWORD PTR [rax]
  198.   mov esi, OFFSET FLAT:.LC0
  199.   mov rdi, rax
  200.   call strcmp
  201.   test eax, eax
  202.   je .L14
  203.   mov eax, DWORD PTR [rbp-36]
  204.   cdqe
  205.   sal rax, 4
  206.   add rax, rbp
  207.   sub rax, 1192
  208.   mov eax, DWORD PTR [rax]
  209.   add DWORD PTR [rbp-32], eax
  210. .L14:
  211.   add DWORD PTR [rbp-36], 1
  212.   jmp .L15
  213. .L13:
  214.   mov DWORD PTR [rbp-40], 0
  215. .L19:
  216.   mov eax, DWORD PTR [rbp-40]
  217.   cmp eax, DWORD PTR [rbp-24]
  218.   jge .L16
  219.   cmp DWORD PTR [rbp-32], 10
  220.   jle .L17
  221.   add DWORD PTR [rbp-32], 1
  222.   jmp .L18
  223. .L17:
  224.   add DWORD PTR [rbp-32], 11
  225. .L18:
  226.   add DWORD PTR [rbp-40], 1
  227.   jmp .L19
  228. .L16:
  229.   cmp DWORD PTR [rbp-32], 20
  230.   jg .L20
  231.   cmp DWORD PTR [rbp-28], 0
  232.   je .L20
  233.   mov edi, OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]4 [complete object constructor] [complete object constructor]
  234.   call ask(char*)
  235.   test eax, eax
  236.   sete al
  237.   test al, al
  238.   je .L22
  239.   mov eax, DWORD PTR [rbp-32]
  240.   mov esi, eax
  241.   mov edi, OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]5 [complete object constructor] [complete object constructor]
  242.   mov eax, 0
  243.   call printf
  244.   mov DWORD PTR [rbp-8], 1
  245.   jmp .L22
  246. .L20:
  247.   cmp DWORD PTR [rbp-32], 20
  248.   jle .L22
  249.   mov eax, DWORD PTR [rbp-32]
  250.   mov esi, eax
  251.   mov edi, OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]5 [complete object constructor] [complete object constructor]
  252.   mov eax, 0
  253.   call printf
  254.   mov DWORD PTR [rbp-8], 1
  255. .L22:
  256.   add DWORD PTR [rbp-28], 1
  257.   jmp .L23
  258. .L27:
  259.   nop
  260.   jmp .L23
  261. .L9:
  262.   mov edi, OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]6 [complete object constructor] [complete object constructor]
  263.   call ask(char*)
  264.   test eax, eax
  265.   sete al
  266.   test al, al
  267.   je .L25
  268.   mov DWORD PTR [rbp-4], 1
  269.   jmp .L25
  270. .L4:
  271.   mov eax, 0
  272.   leave
  273.   ret
  274. .LC1 [complete object constructor] [complete object constructor]7 [complete object constructor] [complete object constructor]:
  275.  .string "%s"
  276. ask(char*):
  277.   push rbp
  278.   mov rbp, rsp
  279.   sub rsp, 32
  280.   mov QWORD PTR [rbp-24], rdi
  281.   mov rax, QWORD PTR [rbp-24]
  282.   mov rsi, rax
  283.   mov edi, OFFSET FLAT:.LC1 [complete object constructor] [complete object constructor]7 [complete object constructor] [complete object constructor]
  284.   mov eax, 0
  285.   call printf
  286.   mov rdx, QWORD PTR stdin[rip]
  287.   lea rax, [rbp-5]
  288.   mov esi, 5
  289.   mov rdi, rax
  290.   call fgets
  291.   movzx eax, BYTE PTR [rbp-5]
  292.   cmp al, 110
  293.   je .L29
  294.   movzx eax, BYTE PTR [rbp-5]
  295.   cmp al, 78
  296.   jne .L30
  297. .L29:
  298.   mov eax, 0
  299.   jmp .L32
  300. .L30:
  301.   mov eax, 1
  302. .L32:
  303.   leave
  304.   ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement