Function Graph 0
Basic Block 0
Opcode: 55sub_80525d0:
Opcode: 55push ebp
Opcode: 89 e5mov ebp, esp
Opcode: 53push ebx
Opcode: 57push edi
Opcode: 56push esi
Opcode: 81 ec 8c 00 00 00sub esp, 0x8c {var_9c}
Opcode: 8b 45 24mov eax, dword [ebp+0x24 {arg_20}]
Opcode: 8b 4d 20mov ecx, dword [ebp+0x20 {arg_1c}]
Opcode: 8b 55 1cmov edx, dword [ebp+0x1c {arg_18}]
Opcode: f2 0f 10 45 14movsd xmm0, qword [ebp+0x14] {arg_10}
Opcode: 8b 75 10mov esi, dword [ebp+0x10 {arg_c}]
Opcode: 8b 7d 0cmov edi, dword [ebp+0xc {arg_8}]
Opcode: 8b 5d 08mov ebx, dword [ebp+0x8 {arg_4}]
Opcode: 0f 57 c9xorps xmm1, xmm1
Opcode: 89 5d f0mov dword [ebp-0x10 {var_14}], ebx
Opcode: 89 7d ecmov dword [ebp-0x14 {var_18}], edi
Opcode: 89 75 e8mov dword [ebp-0x18 {var_1c}], esi
Opcode: f2 0f 11 45 e0movsd qword [ebp-0x20], xmm0 {var_24}
Opcode: 89 55 dcmov dword [ebp-0x24 {var_28}], edx
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 89 45 d4mov dword [ebp-0x2c {var_30}], eax
Opcode: c7 45 d0 00 00 00 00mov dword [ebp-0x30 {var_34}], 0x0
Opcode: c7 45 cc 00 00 00 00mov dword [ebp-0x34 {var_38}], 0x0
Opcode: c6 45 cb 00mov byte [ebp-0x35 {var_39}], 0x0
Opcode: c7 45 c4 00 00 00 00mov dword [ebp-0x3c {var_40}], 0x0
Opcode: 66 0f 2e 4d e0ucomisd xmm1, qword [ebp-0x20] {var_24}
Opcode: 76 23jbe 0x8052650
Basic Block 1
Opcode: 83 7d d8 00cmp dword [ebp-0x28 {var_2c}], 0x0
Opcode: 75 32jne 0x8052688
Basic Block 2
Opcode: f2 0f 10 45 e0movsd xmm0, qword [ebp-0x20] {var_24}
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 e0movsd qword [ebp-0x20], xmm0 {var_24}
Opcode: c6 45 cb 01mov byte [ebp-0x35 {var_39}], 0x1
Opcode: 8b 45 d0mov eax, dword [ebp-0x30 {var_34}] {0x0}
Opcode: 83 c0 01add eax, 0x1
Opcode: 89 45 d0mov dword [ebp-0x30 {var_34}], eax
Basic Block 3
Opcode: 8d 45 a4lea eax, [ebp-0x5c] {var_60}
Opcode: f2 0f 10 45 e0movsd xmm0, qword [ebp-0x20] {var_24}
Opcode: 8b 4d d8mov ecx, dword [ebp-0x28 {var_2c}]
Opcode: 88 camov dl, cl
Opcode: 8b 4d d4mov ecx, dword [ebp-0x2c {var_30}]
Opcode: f2 0f 11 04 24movsd qword [esp], xmm0 {var_9c}
Opcode: 0f b6 f2movzx esi, dl
Opcode: 89 74 24 08mov dword [esp+0x8 {var_94}], esi
Opcode: 89 44 24 0cmov dword [esp+0xc {var_90}], eax
Opcode: 89 4c 24 10mov dword [esp+0x10 {var_8c}], ecx
Opcode: e8 8f f6 ff ffcall sub_8051d40
Opcode: 89 45 c4mov dword [ebp-0x3c {var_40}], eax
Basic Block 4
Opcode: b8 06 00 00 00mov eax, 0x6
Opcode: 8d 4d a4lea ecx, [ebp-0x5c] {var_60}
Opcode: f2 0f 10 45 e0movsd xmm0, qword [ebp-0x20] {var_24}
Opcode: 8b 55 d4mov edx, dword [ebp-0x2c {var_30}]
Opcode: f2 0f 11 04 24movsd qword [esp], xmm0 {var_9c}
Opcode: c7 44 24 08 06 00 00 00mov dword [esp+0x8 {var_94}], 0x6
Opcode: 89 4c 24 0cmov dword [esp+0xc {var_90}], ecx
Opcode: 89 54 24 10mov dword [esp+0x10 {var_8c}], edx
Opcode: 89 45 9cmov dword [ebp-0x64 {var_68}], eax
Opcode: e8 bd f6 ff ffcall sub_8051d40
Opcode: 89 45 c4mov dword [ebp-0x3c {var_40}], eax
Opcode: eb 2cjmp 0x80526b4
Basic Block 5
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 83 e0 01and eax, 0x1
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 85 b0 00 00 00jne 0x8052797
Basic Block 6
Opcode: 8b 45 d0mov eax, dword [ebp-0x30 {var_34}]
Opcode: 3b 45 dccmp eax, dword [ebp-0x24 {var_28}]
Opcode: 73 09jae 0x80526d6
Basic Block 7
Opcode: 8b 45 c4mov eax, dword [ebp-0x3c {var_40}]
Opcode: 8b 4d d0mov ecx, dword [ebp-0x30 {var_34}]
Opcode: 01 c1add ecx, eax
Opcode: 89 4d d0mov dword [ebp-0x30 {var_34}], ecx
Opcode: 83 7d dc 00cmp dword [ebp-0x24 {var_28}], 0x0
Opcode: 7e 13jle 0x80526d8
Basic Block 8
Opcode: 80 7d cb 00cmp byte [ebp-0x35 {var_39}], 0x0
Opcode: 74 29je 0x80527c6
Basic Block 9
Opcode: 0f be 45 cbmovsx eax, byte [ebp-0x35 {var_39}]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 74 3aje 0x805272a
Basic Block 10
Opcode: eb 00jmp 0x80526d8
Basic Block 11
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: 2b 45 d0sub eax, dword [ebp-0x30 {var_34}]
Opcode: 89 45 ccmov dword [ebp-0x34 {var_38}], eax
Basic Block 12
Opcode: c7 45 a0 00 00 00 00mov dword [ebp-0x60 {var_64}], 0x0
Basic Block 13
Opcode: b8 2d 00 00 00mov eax, 0x2d
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 2d 00 00 00mov dword [esp+0x4 {var_98}], 0x2d
Opcode: 89 74 24 08mov dword [esp+0x8 {var_94}], esi
Opcode: 89 45 8cmov dword [ebp-0x74 {var_78}], eax
Opcode: ff d1call ecx
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: c6 45 cb 00mov byte [ebp-0x35 {var_39}], 0x0
Basic Block 14
Opcode: eb 00jmp 0x805272c
Basic Block 15
Opcode: 83 7d cc 00cmp dword [ebp-0x34 {var_38}], 0x0
Opcode: 76 34jbe 0x805272a
Basic Block 16
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 83 e0 01and eax, 0x1
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 74 3bje 0x8052847
Basic Block 17
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 8b 4d f0mov ecx, dword [ebp-0x10 {var_14}]
Opcode: 8b 55 a0mov edx, dword [ebp-0x60 {var_64}]
Opcode: 0f be 54 15 a4movsx edx, byte [ebp+edx-0x5c] {var_4}
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 0c 24mov dword [esp {var_9c}], ecx
Opcode: 89 54 24 04mov dword [esp+0x4 {var_98}], edx
Opcode: 89 74 24 08mov dword [esp+0x8 {var_94}], esi
Opcode: ff d0call eax
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: 8b 45 a0mov eax, dword [ebp-0x60 {var_64}]
Opcode: 83 c0 01add eax, 0x1
Opcode: 89 45 a0mov dword [ebp-0x60 {var_64}], eax
Opcode: eb ccjmp 0x80527cd
Basic Block 18
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 ffadd ecx, 0xffffffff
Opcode: 89 4d ccmov dword [ebp-0x34 {var_38}], ecx
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 76 59jbe 0x8052795
Basic Block 19
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 83 e0 04and eax, 0x4
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 74 29je 0x805272a
Basic Block 20
Opcode: 8b 45 e8mov eax, dword [ebp-0x18 {var_1c}]
Opcode: 81 c4 8c 00 00 00add esp, 0x8c {var_10}
Opcode: 5epop esi
Opcode: 5fpop edi
Opcode: 5bpop ebx
Opcode: 5dpop ebp
Opcode: c3retn
Basic Block 21
Opcode: eb 00jmp 0x805280e
Basic Block 22
Opcode: 8b 45 a0mov eax, dword [ebp-0x60 {var_64}]
Opcode: 3b 45 c4cmp eax, dword [ebp-0x3c {var_40}]
Opcode: 73 2cjae 0x8052801
Basic Block 23
Opcode: eb 00jmp 0x8052797
Basic Block 24
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 83 e0 04and eax, 0x4
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 74 27je 0x805276e
Basic Block 25
Opcode: b8 2d 00 00 00mov eax, 0x2d
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 2d 00 00 00mov dword [esp+0x4 {var_98}], 0x2d
Opcode: 89 74 24 08mov dword [esp+0x8 {var_94}], esi
Opcode: 89 45 98mov dword [ebp-0x68 {var_6c}], eax
Opcode: ff d1call ecx
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: c6 45 cb 00mov byte [ebp-0x35 {var_39}], 0x0
Basic Block 26
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 ffadd ecx, 0xffffffff
Opcode: 89 4d ccmov dword [ebp-0x34 {var_38}], ecx
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 76 27jbe 0x8052845
Basic Block 27
Opcode: b8 20 00 00 00mov eax, 0x20
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 20 00 00 00mov dword [esp+0x4 {var_98}], 0x20
Opcode: 89 74 24 08mov dword [esp+0x8 {var_94}], esi
Opcode: 89 45 90mov dword [ebp-0x70 {var_74}], eax
Opcode: ff d1call ecx
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Basic Block 28
Opcode: b8 30 00 00 00mov eax, 0x30
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 30 00 00 00mov dword [esp+0x4 {var_98}], 0x30
Opcode: 89 74 24 08mov dword [esp+0x8 {var_94}], esi
Opcode: 89 45 94mov dword [ebp-0x6c {var_70}], eax
Opcode: ff d1call ecx
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: eb 25jmp 0x8052793
Basic Block 29
Opcode: eb 00jmp 0x8052847
Basic Block 30
Opcode: b8 20 00 00 00mov eax, 0x20
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 20 00 00 00mov dword [esp+0x4 {var_98}], 0x20
Opcode: 89 74 24 08mov dword [esp+0x8 {var_94}], esi
Opcode: 89 45 88mov dword [ebp-0x78 {var_7c}], eax
Opcode: ff d1call ecx
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: eb c9jmp 0x805280e
Basic Block 31
Opcode: eb 97jmp 0x805272c