Function Graph 0
Basic Block 0
Opcode: 55sub_8051d40:
Opcode: 55push ebp
Opcode: 89 e5mov ebp, esp
Opcode: 53push ebx
Opcode: 56push esi
Opcode: 81 ec e0 00 00 00sub esp, 0xe0 {var_ec}
Opcode: 8b 45 18mov eax, dword [ebp+0x18 {arg_14}]
Opcode: 8b 4d 14mov ecx, dword [ebp+0x14 {arg_10}]
Opcode: 8a 55 10mov dl, byte [ebp+0x10 {arg_c}]
Opcode: f2 0f 10 45 08movsd xmm0, qword [ebp+0x8] {arg_4}
Opcode: be 0a 00 00 00mov esi, 0xa
Opcode: f2 0f 2a cecvtsi2sd xmm1, esi
Opcode: be 00 00 00 00mov esi, 0x0
Opcode: f2 0f 11 45 e8movsd qword [ebp-0x18], xmm0 {var_1c}
Opcode: 88 55 e7mov byte [ebp-0x19 {var_1d}], dl
Opcode: 89 4d e0mov dword [ebp-0x20 {var_24}], ecx
Opcode: 89 45 dcmov dword [ebp-0x24 {var_28}], eax
Opcode: c7 45 d8 00 00 00 00mov dword [ebp-0x28 {var_2c}], 0x0
Opcode: 0f b6 45 e7movzx eax, byte [ebp-0x19 {var_1d}]
Opcode: 29 c6sub esi, eax
Opcode: f2 0f 2a c6cvtsi2sd xmm0, esi
Opcode: f2 0f 11 0c 24movsd qword [esp], xmm1 {var_ec}
Opcode: f2 0f 11 44 24 08movsd qword [esp+0x8], xmm0 {var_e4}
Opcode: e8 9a 22 00 00call sub_8054030
Opcode: dd 5d 88fstp qword [ebp-0x78] {var_7c}
Opcode: f2 0f 10 45 88movsd xmm0, qword [ebp-0x78] {var_7c}
Opcode: 0f 57 c9xorps xmm1, xmm1
Opcode: f2 0f 11 45 c8movsd qword [ebp-0x38], xmm0 {var_3c}
Opcode: f2 0f 10 45 e8movsd xmm0, qword [ebp-0x18] {var_1c}
Opcode: 66 0f 2e c1ucomisd xmm0, xmm1
Opcode: 0f 85 c6 00 00 00jne 0x8051e7b
Basic Block 1
Opcode: f2 0f 10 45 e8movsd xmm0, qword [ebp-0x18] {var_1c}
Opcode: 66 0f 2e c0ucomisd xmm0, xmm0
Opcode: 7b 41jpo 0x8051ec7
Basic Block 2
Opcode: 0f 8a c0 00 00 00jpe 0x8051e7b
Basic Block 3
Opcode: f2 0f 10 45 e8movsd xmm0, qword [ebp-0x18] {var_1c}
Opcode: f2 0f 11 04 24movsd qword [esp], xmm0 {var_ec}
Opcode: e8 8a 20 00 00call sub_8053f60
Opcode: dd 5d 80fstp qword [ebp-0x80] {var_84}
Opcode: f2 0f 10 45 80movsd xmm0, qword [ebp-0x80] {var_84}
Opcode: f2 0f 10 0d 70 45 05 08movsd xmm1, qword [data_8054570]
Opcode: 66 0f 2e c1ucomisd xmm0, xmm1
Opcode: 75 43jne 0x8051f2f
Basic Block 4
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x0}
Opcode: 89 c1mov ecx, eax {0x0}
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 4emov byte [ecx+eax], 0x4e
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x1}
Opcode: 89 c1mov ecx, eax {0x1}
Opcode: 83 c1 01add ecx, 0x1 {0x2}
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 61mov byte [ecx+eax], 0x61
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x2}
Opcode: 89 c1mov ecx, eax {0x2}
Opcode: 83 c1 01add ecx, 0x1 {0x3}
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 4emov byte [ecx+eax], 0x4e
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x3}
Opcode: 89 45 f4mov dword [ebp-0xc {var_10}], eax
Opcode: e9 f6 06 00 00jmp 0x80525bd
Basic Block 5
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x0}
Opcode: 89 c1mov ecx, eax {0x0}
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x1}
Opcode: 89 c1mov ecx, eax {0x1}
Opcode: 83 c1 01add ecx, 0x1 {0x2}
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 2emov byte [ecx+eax], 0x2e
Opcode: c6 45 c7 00mov byte [ebp-0x39 {var_3d}], 0x0
Basic Block 6
Opcode: eb 00jmp 0x8051f31
Basic Block 7
Opcode: 7a 41jpe 0x8051f2f
Basic Block 8
Opcode: 8b 45 f4mov eax, dword [ebp-0xc {var_10}]
Opcode: 81 c4 e0 00 00 00add esp, 0xe0 {var_c}
Opcode: 5epop esi
Opcode: 5bpop ebx
Opcode: 5dpop ebp
Opcode: c3retn
Basic Block 9
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: 83 e0 10and eax, 0x10
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 74 5aje 0x8051e70
Basic Block 10
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 8a 45 c7mov al, byte [ebp-0x39 {var_3d}]
Opcode: 04 01add al, 0x1
Opcode: 88 45 c7mov byte [ebp-0x39 {var_3d}], al
Opcode: eb d8jmp 0x8051de3
Basic Block 11
Opcode: eb 00jmp 0x8051f33
Basic Block 12
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x0}
Opcode: 89 c1mov ecx, eax {0x0}
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 49mov byte [ecx+eax], 0x49
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x1}
Opcode: 89 c1mov ecx, eax {0x1}
Opcode: 83 c1 01add ecx, 0x1 {0x2}
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 4emov byte [ecx+eax], 0x4e
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x2}
Opcode: 89 c1mov ecx, eax {0x2}
Opcode: 83 c1 01add ecx, 0x1 {0x3}
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 46mov byte [ecx+eax], 0x46
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x3}
Opcode: 89 45 f4mov dword [ebp-0xc {var_10}], eax
Opcode: e9 8e 06 00 00jmp 0x80525bd
Basic Block 13
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 45 f4mov dword [ebp-0xc {var_10}], eax
Opcode: e9 42 07 00 00jmp 0x80525bd
Basic Block 14
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 65mov byte [ecx+eax], 0x65
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 2bmov byte [ecx+eax], 0x2b
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Basic Block 15
Opcode: 0f b6 45 c7movzx eax, byte [ebp-0x39 {var_3d}]
Opcode: 0f b6 4d e7movzx ecx, byte [ebp-0x19 {var_1d}]
Opcode: 39 c8cmp eax, ecx
Opcode: 7d 1cjge 0x8051e0b
Basic Block 16
Opcode: f2 0f 10 05 78 45 05 08movsd xmm0, qword [data_8054578]
Opcode: f2 0f 10 4d e8movsd xmm1, qword [ebp-0x18] {var_1c}
Opcode: 66 0f 2e c8ucomisd xmm1, xmm0
Opcode: 72 09jb 0x8051f4f
Basic Block 17
Opcode: 0f 57 c0xorps xmm0, xmm0
Opcode: 66 0f 2e 45 e8ucomisd xmm0, qword [ebp-0x18] {var_1c}
Opcode: 76 21jbe 0x8051f7a
Basic Block 18
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: 83 c8 10or eax, 0x10
Opcode: 89 45 dcmov dword [ebp-0x24 {var_28}], eax
Basic Block 19
Opcode: f2 0f 10 05 58 45 05 08movsd xmm0, qword [data_8054558]
Opcode: f2 0f 10 4d e8movsd xmm1, qword [ebp-0x18] {var_1c}
Opcode: f2 0f 10 55 c8movsd xmm2, qword [ebp-0x38] {var_3c}
Opcode: f2 0f 59 d0mulsd xmm2, xmm0
Opcode: f2 0f 58 caaddsd xmm1, xmm2
Opcode: f2 0f 11 4d e8movsd qword [ebp-0x18], xmm1 {var_1c}
Basic Block 20
Opcode: f2 0f 10 05 58 45 05 08movsd xmm0, qword [data_8054558]
Opcode: f2 0f 10 4d e8movsd xmm1, qword [ebp-0x18] {var_1c}
Opcode: f2 0f 10 55 c8movsd xmm2, qword [ebp-0x38] {var_3c}
Opcode: f2 0f 59 d0mulsd xmm2, xmm0
Opcode: f2 0f 5c casubsd xmm1, xmm2
Opcode: f2 0f 11 4d e8movsd qword [ebp-0x18], xmm1 {var_1c}
Opcode: eb 1fjmp 0x8051f99
Basic Block 21
Opcode: 0f 57 c0xorps xmm0, xmm0
Opcode: 66 0f 2e 45 e8ucomisd xmm0, qword [ebp-0x18] {var_1c}
Opcode: 76 29jbe 0x80520a6
Basic Block 22
Opcode: b8 01 00 00 00mov eax, 0x1
Opcode: f2 0f 2a c0cvtsi2sd xmm0, eax
Opcode: 0f bf 45 c4movsx eax, word [ebp-0x3c {var_40}]
Opcode: 0f b6 4d e7movzx ecx, byte [ebp-0x19 {var_1d}]
Opcode: 29 c8sub eax, ecx
Opcode: 66 89 c2mov dx, ax
Opcode: 66 89 55 b6mov word [ebp-0x4a {var_4e}], dx
Opcode: 66 0f 2e 45 e8ucomisd xmm0, qword [ebp-0x18] {var_1c}
Opcode: 76 39jbe 0x805202b
Basic Block 23
Opcode: f2 0f 10 45 e8movsd xmm0, qword [ebp-0x18] {var_1c}
Opcode: 89 e0mov eax, esp
Opcode: f2 0f 11 00movsd qword [eax], xmm0 {var_ec}
Opcode: e8 c7 1e 00 00call sub_8053e70
Opcode: dd 9d 78 ff ff fffstp qword [ebp-0x88] {var_8c}
Opcode: f2 0f 10 85 78 ff ff ffmovsd xmm0, qword [ebp-0x88] {var_8c}
Opcode: f2 0f 2c c0cvttsd2si eax, xmm0
Opcode: 66 89 c1mov cx, ax
Opcode: 66 89 4d c4mov word [ebp-0x3c {var_40}], cx
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: 83 e0 10and eax, 0x10
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 84 a2 00 00 00je 0x8052073
Basic Block 24
Opcode: 66 c7 45 b4 00 00mov word [ebp-0x4c {var_50}], 0x0
Opcode: 66 c7 45 b2 00 00mov word [ebp-0x4e {var_52}], 0x0
Opcode: c6 45 b1 00mov byte [ebp-0x4f {var_53}], 0x0
Opcode: f2 0f 10 45 e8movsd xmm0, qword [ebp-0x18] {var_1c}
Opcode: f2 0f 10 4d c8movsd xmm1, qword [ebp-0x38] {var_3c}
Opcode: 66 0f 2e c8ucomisd xmm1, xmm0
Opcode: 76 2djbe 0x80520f3
Basic Block 25
Opcode: f2 0f 10 45 e8movsd xmm0, qword [ebp-0x18] {var_1c}
Opcode: f2 0f 10 0d 80 45 05 08movsd xmm1, qword [data_8054580]
Opcode: 66 0f 57 c1xorpd xmm0, xmm1
Opcode: f2 0f 11 45 e8movsd qword [ebp-0x18], xmm0 {var_1c}
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x0}
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 2dmov byte [ecx+eax], 0x2d
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}] {0x0}
Opcode: 83 c0 01add eax, 0x1
Opcode: 89 45 d8mov dword [ebp-0x28 {var_2c}], eax
Basic Block 26
Opcode: b8 0a 00 00 00mov eax, 0xa
Opcode: f2 0f 2a c0cvtsi2sd xmm0, eax
Opcode: 0f bf 45 b6movsx eax, word [ebp-0x4a {var_4e}]
Opcode: 66 89 c1mov cx, ax
Opcode: f2 0f 2a c8cvtsi2sd xmm1, eax
Opcode: f2 0f 11 04 24movsd qword [esp], xmm0 {var_ec}
Opcode: f2 0f 11 4c 24 08movsd qword [esp+0x8], xmm1 {var_e4}
Opcode: 66 89 8d 3e ff ff ffmov word [ebp-0xc2 {var_c6}], cx
Opcode: e8 da 1f 00 00call sub_8054030
Opcode: dd 9d 70 ff ff fffstp qword [ebp-0x90] {var_94}
Opcode: f2 0f 10 85 70 ff ff ffmovsd xmm0, qword [ebp-0x90] {var_94}
Opcode: f2 0f 11 45 b8movsd qword [ebp-0x48], xmm0 {var_4c}
Basic Block 27
Opcode: b8 0a 00 00 00mov eax, 0xa
Opcode: f2 0f 2a c0cvtsi2sd xmm0, eax
Opcode: 0f bf 45 b6movsx eax, word [ebp-0x4a {var_4e}]
Opcode: 83 e8 01sub eax, 0x1
Opcode: f2 0f 2a c8cvtsi2sd xmm1, eax
Opcode: f2 0f 11 04 24movsd qword [esp], xmm0 {var_ec}
Opcode: f2 0f 11 4c 24 08movsd qword [esp+0x8], xmm1 {var_e4}
Opcode: e8 1a 20 00 00call sub_8054030
Opcode: dd 9d 68 ff ff fffstp qword [ebp-0x98] {var_9c}
Opcode: f2 0f 10 85 68 ff ff ffmovsd xmm0, qword [ebp-0x98] {var_9c}
Opcode: f2 0f 11 45 b8movsd qword [ebp-0x48], xmm0 {var_4c}
Opcode: eb 3ejmp 0x8052069
Basic Block 28
Opcode: 0f bf 45 c4movsx eax, word [ebp-0x3c {var_40}]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 7d 7bjge 0x8052177
Basic Block 29
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 2emov byte [ecx+eax], 0x2e
Opcode: c6 45 b1 01mov byte [ebp-0x4f {var_53}], 0x1
Opcode: e9 86 00 00 00jmp 0x8052179
Basic Block 30
Opcode: f2 0f 10 45 b8movsd xmm0, qword [ebp-0x48] {var_4c}
Opcode: f2 0f 11 45 c8movsd qword [ebp-0x38], xmm0 {var_3c}
Basic Block 31
Opcode: eb 00jmp 0x8052179
Basic Block 32
Opcode: f2 0f 10 45 e8movsd xmm0, qword [ebp-0x18] {var_1c}
Opcode: 66 0f 2e 45 c8ucomisd xmm0, qword [ebp-0x38] {var_3c}
Opcode: 76 6fjbe 0x8052177
Basic Block 33
Opcode: eb 00jmp 0x805217b
Basic Block 34
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: 83 e0 10and eax, 0x10
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 75 64jne 0x8052177
Basic Block 35
Opcode: b0 01mov al, 0x1
Opcode: 0f bf 4d c4movsx ecx, word [ebp-0x3c {var_40}]
Opcode: 83 f9 00cmp ecx, 0x0
Opcode: 88 85 3d ff ff ffmov byte [ebp-0xc3 {var_c7}], al
Opcode: 7d 13jge 0x805219f
Basic Block 36
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 2emov byte [ecx+eax], 0x2e
Opcode: 66 8b 55 c4mov dx, word [ebp-0x3c {var_40}]
Opcode: 66 89 55 aemov word [ebp-0x52 {var_56}], dx
Basic Block 37
Opcode: 8a 85 3d ff ff ffmov al, byte [ebp-0xc3 {var_c7}]
Opcode: a8 01test al, 0x1
Opcode: 75 05jne 0x80521ae
Basic Block 38
Opcode: f2 0f 10 45 e8movsd xmm0, qword [ebp-0x18] {var_1c}
Opcode: 66 0f 2e 45 c8ucomisd xmm0, qword [ebp-0x38] {var_3c}
Opcode: 0f 97 c0seta al
Opcode: 88 85 3d ff ff ffmov byte [ebp-0xc3 {var_c7}], al
Basic Block 39
Opcode: c6 45 b1 01mov byte [ebp-0x4f {var_53}], 0x1
Basic Block 40
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 66 8b 55 b2mov dx, word [ebp-0x4e {var_52}]
Opcode: 66 83 c2 01add dx, 0x1
Opcode: 66 89 55 b2mov word [ebp-0x4e {var_52}], dx
Opcode: eb ccjmp 0x805213f
Basic Block 41
Opcode: b8 0a 00 00 00mov eax, 0xa
Opcode: f2 0f 2a c0cvtsi2sd xmm0, eax
Opcode: 0f bf 45 c4movsx eax, word [ebp-0x3c {var_40}]
Opcode: 66 89 c1mov cx, ax
Opcode: f2 0f 2a c8cvtsi2sd xmm1, eax
Opcode: f2 0f 11 04 24movsd qword [esp], xmm0 {var_ec}
Opcode: f2 0f 11 4c 24 08movsd qword [esp+0x8], xmm1 {var_e4}
Opcode: 66 89 8d 3a ff ff ffmov word [ebp-0xc6 {var_ca}], cx
Opcode: e8 57 1e 00 00call sub_8054030
Opcode: dd 9d 60 ff ff fffstp qword [ebp-0xa0] {var_a4}
Opcode: f2 0f 10 85 60 ff ff ffmovsd xmm0, qword [ebp-0xa0] {var_a4}
Opcode: 0f 57 c9xorps xmm1, xmm1
Opcode: f2 0f 11 45 a0movsd qword [ebp-0x60], xmm0 {var_64}
Opcode: f2 0f 10 45 a0movsd xmm0, qword [ebp-0x60] {var_64}
Opcode: 66 0f 2e c1ucomisd xmm0, xmm1
Opcode: 0f 86 58 01 00 00jbe 0x8052356
Basic Block 42
Opcode: e9 09 02 00 00jmp 0x80523b7
Basic Block 43
Opcode: 66 8b 45 aemov ax, word [ebp-0x52 {var_56}]
Opcode: 66 83 c0 01add ax, 0x1
Opcode: 66 89 45 aemov word [ebp-0x52 {var_56}], ax
Opcode: 0f bf c8movsx ecx, ax
Opcode: 83 f9 00cmp ecx, 0x0
Opcode: 7d 20jge 0x8052173
Basic Block 44
Opcode: 0f 57 c0xorps xmm0, xmm0
Opcode: 0f bf 45 c4movsx eax, word [ebp-0x3c {var_40}]
Opcode: f2 0f 2a c8cvtsi2sd xmm1, eax
Opcode: 66 0f 2e c8ucomisd xmm1, xmm0
Opcode: 75 31jne 0x8052398
Basic Block 45
Opcode: f2 0f 10 45 a0movsd xmm0, qword [ebp-0x60] {var_64}
Opcode: f2 0f 11 04 24movsd qword [esp], xmm0 {var_ec}
Opcode: e8 53 1d 00 00call sub_8053f60
Opcode: dd 9d 58 ff ff fffstp qword [ebp-0xa8] {var_ac}
Opcode: f2 0f 10 85 58 ff ff ffmovsd xmm0, qword [ebp-0xa8] {var_ac}
Opcode: f2 0f 10 0d 70 45 05 08movsd xmm1, qword [data_8054570]
Opcode: 66 0f 2e c1ucomisd xmm0, xmm1
Opcode: 75 07jne 0x8052230
Basic Block 46
Opcode: eb 00jmp 0x80523b9
Basic Block 47
Opcode: 0f b7 45 b2movzx eax, word [ebp-0x4e {var_52}]
Opcode: 0f b6 4d e7movzx ecx, byte [ebp-0x19 {var_1d}]
Opcode: 39 c8cmp eax, ecx
Opcode: 7c 02jl 0x80523a6
Basic Block 48
Opcode: 7a 2fjpe 0x8052398
Basic Block 49
Opcode: f2 0f 10 45 e8movsd xmm0, qword [ebp-0x18] {var_1c}
Opcode: f2 0f 10 4d a0movsd xmm1, qword [ebp-0x60] {var_64}
Opcode: f2 0f 5e c1divsd xmm0, xmm1
Opcode: 89 e0mov eax, esp
Opcode: f2 0f 11 00movsd qword [eax], xmm0 {var_ec}
Opcode: e8 d7 ea ff ffcall sub_8050d20
Opcode: dd 9d 50 ff ff fffstp qword [ebp-0xb0] {var_b4}
Opcode: f2 0f 2c 85 50 ff ff ffcvttsd2si eax, qword [ebp-0xb0] {var_b4}
Opcode: 88 c1mov cl, al
Opcode: 88 4d 9fmov byte [ebp-0x61 {var_65}], cl
Opcode: 0f b6 c1movzx eax, cl
Opcode: f2 0f 2a c0cvtsi2sd xmm0, eax
Opcode: f2 0f 59 45 a0mulsd xmm0, qword [ebp-0x60] {var_64}
Opcode: f2 0f 10 4d e8movsd xmm1, qword [ebp-0x18] {var_1c}
Opcode: f2 0f 5c c8subsd xmm1, xmm0
Opcode: f2 0f 11 4d e8movsd qword [ebp-0x18], xmm1 {var_1c}
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: 83 e0 10and eax, 0x10
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 74 63je 0x80522e4
Basic Block 50
Opcode: 7a 05jpe 0x8052230
Basic Block 51
Opcode: b0 00mov al, 0x0
Opcode: 0f be 4d b1movsx ecx, byte [ebp-0x4f {var_53}]
Opcode: 83 f9 00cmp ecx, 0x0
Opcode: 88 85 39 ff ff ffmov byte [ebp-0xc7 {var_cb}], al
Opcode: 74 13je 0x80523dd
Basic Block 52
Opcode: 66 8b 45 c4mov ax, word [ebp-0x3c {var_40}]
Opcode: 66 83 c0 ffadd ax, 0xffff
Opcode: 66 89 45 c4mov word [ebp-0x3c {var_40}], ax
Opcode: e9 c4 fd ff ffjmp 0x805217b
Basic Block 53
Opcode: eb 11jmp 0x80523b7
Basic Block 54
Opcode: 0f 57 c0xorps xmm0, xmm0
Opcode: f2 0f 10 4d e8movsd xmm1, qword [ebp-0x18] {var_1c}
Opcode: 66 0f 2e c8ucomisd xmm1, xmm0
Opcode: 76 21jbe 0x8052398
Basic Block 55
Opcode: 0f 57 c0xorps xmm0, xmm0
Opcode: 0f bf 45 c4movsx eax, word [ebp-0x3c {var_40}]
Opcode: f2 0f 2a c8cvtsi2sd xmm1, eax
Opcode: 66 0f 2e c1ucomisd xmm0, xmm1
Opcode: 76 31jbe 0x8052326
Basic Block 56
Opcode: 0f be 45 b1movsx eax, byte [ebp-0x4f {var_53}]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 75 5ajne 0x80522e4
Basic Block 57
Opcode: e9 26 01 00 00jmp 0x8052356
Basic Block 58
Opcode: 8a 85 39 ff ff ffmov al, byte [ebp-0xc7 {var_cb}]
Opcode: a8 01test al, 0x1
Opcode: 75 02jne 0x80523e9
Basic Block 59
Opcode: 0f b7 45 b2movzx eax, word [ebp-0x4e {var_52}]
Opcode: 0f b6 4d e7movzx ecx, byte [ebp-0x19 {var_1d}]
Opcode: 39 c8cmp eax, ecx
Opcode: 0f 9c c2setl dl
Opcode: 88 95 39 ff ff ffmov byte [ebp-0xc7 {var_cb}], dl
Basic Block 60
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: 83 e0 10and eax, 0x10
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 75 16jne 0x8052398
Basic Block 61
Opcode: 0f b6 45 9fmovzx eax, byte [ebp-0x61 {var_65}]
Opcode: 83 c0 30add eax, 0x30
Opcode: 88 c1mov cl, al
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c2mov edx, eax
Opcode: 83 c2 01add edx, 0x1
Opcode: 89 55 d8mov dword [ebp-0x28 {var_2c}], edx
Opcode: 8b 55 e0mov edx, dword [ebp-0x20 {var_24}]
Opcode: 88 0c 02mov byte [edx+eax], cl
Opcode: 80 7d b1 00cmp byte [ebp-0x4f {var_53}], 0x0
Opcode: 74 0cje 0x8052352
Basic Block 62
Opcode: 0f be 45 b1movsx eax, byte [ebp-0x4f {var_53}]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 75 28jne 0x8052326
Basic Block 63
Opcode: 0f bf 45 b4movsx eax, word [ebp-0x4c {var_50}]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 75 08jne 0x805229b
Basic Block 64
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 66 8b 55 b2mov dx, word [ebp-0x4e {var_52}]
Opcode: 66 83 c2 01add dx, 0x1
Opcode: 66 89 55 b2mov word [ebp-0x4e {var_52}], dx
Opcode: eb b0jmp 0x80523b9
Basic Block 65
Opcode: eb 20jmp 0x8052409
Basic Block 66
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 2emov byte [ecx+eax], 0x2e
Opcode: c6 45 b1 01mov byte [ebp-0x4f {var_53}], 0x1
Basic Block 67
Opcode: eb 00jmp 0x8052354
Basic Block 68
Opcode: 66 8b 45 b2mov ax, word [ebp-0x4e {var_52}]
Opcode: 66 83 c0 01add ax, 0x1
Opcode: 66 89 45 b2mov word [ebp-0x4e {var_52}], ax
Basic Block 69
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 2emov byte [ecx+eax], 0x2e
Opcode: c6 45 b1 01mov byte [ebp-0x4f {var_53}], 0x1
Basic Block 70
Opcode: 0f b6 45 9fmovzx eax, byte [ebp-0x61 {var_65}]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 75 0ejne 0x80522b2
Basic Block 71
Opcode: 66 8b 45 c4mov ax, word [ebp-0x3c {var_40}]
Opcode: 66 89 45 b4mov word [ebp-0x4c {var_50}], ax
Basic Block 72
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: 83 e0 10and eax, 0x10
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 84 9f 01 00 00je 0x80525b7
Basic Block 73
Opcode: eb 00jmp 0x8052356
Basic Block 74
Opcode: 0f b6 45 9fmovzx eax, byte [ebp-0x61 {var_65}]
Opcode: 83 c0 30add eax, 0x30
Opcode: 88 c1mov cl, al
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c2mov edx, eax
Opcode: 83 c2 01add edx, 0x1
Opcode: 89 55 d8mov dword [ebp-0x28 {var_2c}], edx
Opcode: 8b 55 e0mov edx, dword [ebp-0x20 {var_24}]
Opcode: 88 0c 02mov byte [edx+eax], cl
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c2mov edx, eax
Opcode: 83 c2 01add edx, 0x1
Opcode: 89 55 d8mov dword [ebp-0x28 {var_2c}], edx
Opcode: 8b 55 e0mov edx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 02 2emov byte [edx+eax], 0x2e
Opcode: c6 45 b1 01mov byte [ebp-0x4f {var_53}], 0x1
Basic Block 75
Opcode: 66 8b 45 b4mov ax, word [ebp-0x4c {var_50}]
Opcode: 66 83 c0 ffadd ax, 0xffff
Opcode: 66 89 45 b4mov word [ebp-0x4c {var_50}], ax
Opcode: eb 30jmp 0x80522e2
Basic Block 76
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 45 f4mov dword [ebp-0xc {var_10}], eax
Basic Block 77
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 65mov byte [ecx+eax], 0x65
Opcode: 0f bf 45 b4movsx eax, word [ebp-0x4c {var_50}]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 7d 26jge 0x8052459
Basic Block 78
Opcode: eb 70jmp 0x8052354
Basic Block 79
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 2bmov byte [ecx+eax], 0x2b
Basic Block 80
Opcode: b8 00 00 00 00mov eax, 0x0
Opcode: 0f bf 4d b4movsx ecx, word [ebp-0x4c {var_50}]
Opcode: 29 c8sub eax, ecx
Opcode: 66 89 c2mov dx, ax
Opcode: 66 89 55 b4mov word [ebp-0x4c {var_50}], dx
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 2dmov byte [ecx+eax], 0x2d
Opcode: eb 12jmp 0x805246b
Basic Block 81
Opcode: c6 45 9d 00mov byte [ebp-0x63 {var_67}], 0x0
Opcode: 0f bf 45 b4movsx eax, word [ebp-0x4c {var_50}]
Opcode: f2 0f 2a c0cvtsi2sd xmm0, eax
Opcode: 89 e0mov eax, esp
Opcode: f2 0f 11 00movsd qword [eax], xmm0 {var_ec}
Opcode: e8 b7 19 00 00call sub_8053e70
Opcode: dd 9d 48 ff ff fffstp qword [ebp-0xb8] {var_bc}
Opcode: f2 0f 2c 85 48 ff ff ffcvttsd2si eax, qword [ebp-0xb8] {var_bc}
Opcode: 66 89 c1mov cx, ax
Opcode: 66 89 4d 9amov word [ebp-0x66 {var_6a}], cx
Opcode: 66 8b 4d 9amov cx, word [ebp-0x66 {var_6a}]
Opcode: 88 camov dl, cl
Opcode: 88 55 99mov byte [ebp-0x67 {var_6b}], dl
Basic Block 82
Opcode: c6 45 9e 00mov byte [ebp-0x62 {var_66}], 0x0
Basic Block 83
Opcode: 0f bf 45 b4movsx eax, word [ebp-0x4c {var_50}]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 75 2ejne 0x80524a2
Basic Block 84
Opcode: eb 00jmp 0x8052507
Basic Block 85
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 8a 55 9dmov dl, byte [ebp-0x63 {var_67}]
Opcode: 80 c2 01add dl, 0x1
Opcode: 88 55 9dmov byte [ebp-0x63 {var_67}], dl
Opcode: 8a 45 99mov al, byte [ebp-0x67 {var_6b}]
Opcode: 04 01add al, 0x1
Opcode: 88 45 99mov byte [ebp-0x67 {var_6b}], al
Opcode: eb d2jmp 0x80524d7
Basic Block 86
Opcode: e9 13 01 00 00jmp 0x80525b5
Basic Block 87
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 01add ecx, 0x1
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: c6 04 01 30mov byte [ecx+eax], 0x30
Opcode: 8a 45 9emov al, byte [ebp-0x62 {var_66}]
Opcode: 04 01add al, 0x1
Opcode: 88 45 9emov byte [ebp-0x62 {var_66}], al
Opcode: eb dbjmp 0x8052478
Basic Block 88
Opcode: 8a 45 9dmov al, byte [ebp-0x63 {var_67}]
Opcode: 88 c1mov cl, al
Opcode: 80 c1 01add cl, 0x1
Opcode: 88 4d 9dmov byte [ebp-0x63 {var_67}], cl
Opcode: 0f b6 d0movzx edx, al
Opcode: 83 fa 03cmp edx, 0x3
Opcode: 0f 8d 95 00 00 00jge 0x80525b3
Basic Block 89
Opcode: 0f b6 45 99movzx eax, byte [ebp-0x67 {var_6b}]
Opcode: 83 f8 02cmp eax, 0x2
Opcode: 7d 25jge 0x8052505
Basic Block 90
Opcode: eb 00jmp 0x80525b7
Basic Block 91
Opcode: 0f b6 45 9emovzx eax, byte [ebp-0x62 {var_66}]
Opcode: 83 f8 03cmp eax, 0x3
Opcode: 7d 1cjge 0x805249d
Basic Block 92
Opcode: eb 00jmp 0x80525b5
Basic Block 93
Opcode: 0f b7 45 9amovzx eax, word [ebp-0x66 {var_6a}]
Opcode: f2 0f 2a c0cvtsi2sd xmm0, eax
Opcode: 89 e0mov eax, esp
Opcode: f2 0f 11 40 08movsd qword [eax+0x8], xmm0 {var_e4}
Opcode: c7 40 04 00 00 24 40mov dword [eax+0x4 {var_e8}], 0x40240000
Opcode: c7 00 00 00 00 00mov dword [eax {var_ec}], 0x0
Opcode: e8 f1 1a 00 00call sub_8054030
Opcode: dd 9d 40 ff ff fffstp qword [ebp-0xc0] {var_c4}
Opcode: f2 0f 2c 85 40 ff ff ffcvttsd2si eax, qword [ebp-0xc0] {var_c4}
Opcode: 66 89 c1mov cx, ax
Opcode: 66 89 4d 96mov word [ebp-0x6a {var_6e}], cx
Opcode: 0f bf 45 b4movsx eax, word [ebp-0x4c {var_50}]
Opcode: 0f b7 55 96movzx edx, word [ebp-0x6a {var_6e}]
Opcode: 89 95 34 ff ff ffmov dword [ebp-0xcc {var_d0}], edx
Opcode: 99cdq
Opcode: 8b b5 34 ff ff ffmov esi, dword [ebp-0xcc {var_d0}]
Opcode: f7 feidiv esi
Opcode: 88 c3mov bl, al
Opcode: 88 5d 95mov byte [ebp-0x6b {var_6f}], bl
Opcode: 0f b6 45 95movzx eax, byte [ebp-0x6b {var_6f}]
Opcode: 83 c0 30add eax, 0x30
Opcode: 88 c3mov bl, al
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 c2mov edx, eax
Opcode: 83 c2 01add edx, 0x1
Opcode: 89 55 d8mov dword [ebp-0x28 {var_2c}], edx
Opcode: 8b 55 e0mov edx, dword [ebp-0x20 {var_24}]
Opcode: 88 1c 02mov byte [edx+eax], bl
Opcode: 0f b6 45 95movzx eax, byte [ebp-0x6b {var_6f}]
Opcode: 0f b7 55 96movzx edx, word [ebp-0x6a {var_6e}]
Opcode: 0f af c2imul eax, edx
Opcode: 0f bf 55 b4movsx edx, word [ebp-0x4c {var_50}]
Opcode: 29 c2sub edx, eax
Opcode: 66 89 d1mov cx, dx
Opcode: 66 89 4d b4mov word [ebp-0x4c {var_50}], cx
Opcode: 66 8b 4d 9amov cx, word [ebp-0x66 {var_6a}]
Opcode: 66 83 c1 ffadd cx, 0xffff
Opcode: 66 89 4d 9amov word [ebp-0x66 {var_6a}], cx
Opcode: e9 54 ff ff ffjmp 0x8052507