Function at 0x585e20
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f8fc0
mov eax, dword fs:[0]
push eax
sub esp, 0x918
mov eax, dword [0x705200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x914], esi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x918], edi
mov ebx, dword [edi + 4]
mov dword [ebp - 0x920], ebx
test ebx, ebx
jne 0x585e73
xor eax, eax
jmp 0x588fac
push 0
call dword [0x5fdacc]
push ecx
push 0
push 1
mov edx, 0x694290
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 2
mov edx, 0x6942b8
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 3
mov edx, 0x694300
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 4
mov edx, 0x694340
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 5
mov edx, 0x694368
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 6
mov edx, 0x694388
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 7
mov edx, 0x6943ac
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 8
mov edx, 0x6943d0
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 9
mov edx, 0x694418
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 0xa
mov edx, 0x694470
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 0xb
mov edx, 0x694488
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 0xc
mov edx, 0x6944c8
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 0xd
mov edx, 0x694504
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 0xe
mov edx, 0x694544
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 0xf
mov edx, 0x69457c
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 0x10
mov edx, 0x6945b0
mov ecx, ebx
call fcn.00527db0
push ecx
push 0
push 0x11
mov edx, 0x6945e8
mov ecx, ebx
call fcn.00527db0
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x20]
movq qword [ebp - 0x20], xmm0
call fcn.00545530
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x34]
xorps xmm0, xmm0
mov dword [ebp - 0x2c], 0
movq qword [ebp - 0x34], xmm0
call fcn.00545530
xorps xmm0, xmm0
mov dword [ebp - 0xc8], 0
lea ecx, [ebp - 0xd0]
movq qword [ebp - 0xd0], xmm0
call fcn.00545530
push 0
push 5
lea ecx, [esi + 0x14c0]
mov byte [ebp - 4], 2
call fcn.00513e70
cmp dword [edi + 4], 0
je 0x5860df
mov ecx, 3
call fcn.004fbbd0
mov esi, eax
mov dword [ebp - 0x6c], esi
mov byte [ebp - 4], 3
cmp dword [esi], 0
mov dword [ebp - 0x44], 0
jbe 0x58609b
xor edx, edx
mov dword [ebp - 0x8fc], edx
mov ecx, dword [esi + 0xc]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
add ecx, edx
push 0x6549d8
call fcn.005450e0
push eax
push str.HKU_
lea ecx, [ebp - 0x20]
call fcn.00545150
push edi
push 0x10
lea ecx, [ebp - 0x20]
call fcn.005450e0
mov ecx, dword [ebp - 0x914]
push eax
call fcn.005856c0
cmp dword [edi + 4], 0
je 0x5860fb
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x8fc]
inc eax
add edx, 0xc
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x8fc], edx
cmp eax, dword [esi]
jb 0x586035
mov ecx, dword [ebp - 0x914]
push edi
push 0x10
push 0x694628
call fcn.005856c0
cmp dword [edi + 4], 0
je 0x5860fb
mov ecx, dword [ebp - 0x914]
push edi
push 0x10
push 0x6946a0
call fcn.005856c0
cmp dword [edi + 4], 0
je 0x5860fb
push ecx
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.004040a0
mov esi, dword [ebp - 0x914]
push 0
push 0xa
lea ecx, [esi + 0x14c0]
call fcn.00513e70
cmp dword [edi + 4], 0
jne 0x58610a
xor esi, esi
jmp 0x588f8f
push ecx
mov ecx, esi
call fcn.004040a0
xor esi, esi
jmp 0x588f8f
mov eax, dword [edi]
movsd xmm0, qword [eax + 8]
comisd xmm0, xmmword [0x6e42f0]
jbe 0x586131
push 0xffffffffffffffff
push 0x11
push 0
push dword [edi + 0x10]
mov ecx, esi
push dword [eax + 0x14b4]
call fcn.00571310
push 0
push 0xf
lea ecx, [esi + 0x14c0]
call fcn.00513e70
push 0
push 1
push 0x678e38
xor edx, edx
mov ecx, ebx
call fcn.00527e30
mov dword [ebp - 0x44], eax
call fcn.004ea2f0
push 0x38
lea eax, [ebp - 0xc4]
push 0
push eax
call fcn.004201e0
add esp, 8
lea ecx, [ebp - 0xc4]
push 0x6295f4
call fcn.004e6b70
push 0x63e878
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 4
call fcn.004e6970
test eax, eax
je 0x586350
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x586350
push 1
push 0x671da0
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
lea ecx, [ebp - 0x20]
call fcn.00545460
push 0x11
push 1
push 1
push 0
push 0x671db0
lea ecx, [ebp - 0x20]
call fcn.00543a40
test eax, eax
je 0x5861ea
push 0xa
lea ecx, [ebp - 0x20]
call fcn.00543d20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x671dd4
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x61e108
lea ecx, [ebp - 0x20]
call fcn.00543750
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x671e04
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x678e28
lea ecx, [ebp - 0x20]
call fcn.00543750
push 0
push 0x66b4d0
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
lea ecx, [ebp - 0x34]
call fcn.00545460
lea ecx, [ebp - 0x34]
call fcn.005452f0
test eax, eax
je 0x58629d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x61e108
jmp 0x5862cc
lea eax, [ebp - 0x34]
push eax
call fcn.004cf020
test eax, eax
je 0x5862d4
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x678e14
lea ecx, [ebp - 0x20]
call fcn.00543750
push ecx
push 0x671e30
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
lea ecx, [ebp - 0x34]
call fcn.00545460
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x69472c
lea ecx, [ebp - 0x20]
call fcn.00543750
lea ecx, [ebp - 0x20]
call fcn.005450e0
mov edx, dword [ebp - 0x44]
mov ecx, ebx
push eax
push 1
call fcn.00527a40
push 0
push 0x629f00
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
lea ecx, [ebp - 0xd0]
call fcn.00545460
jmp 0x586528
push 0
push 0x20019
push 0x628e80
lea ecx, [ebp - 0x8f8]
mov dword [ebp - 0x8f8], 0
call fcn.0053fa50
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 5
push eax
push 0x626cc8
lea ecx, [ebp - 0x8f8]
call fcn.0053f710
cmp byte [esi + 0x11], 0
mov ecx, 0x622238
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, 0x622268
cmove eax, ecx
lea ecx, [ebp - 0x20]
push 0
push eax
call fcn.00543750
lea eax, [ebp - 0x34]
push eax
push 0x634fec
lea ecx, [ebp - 0x8f8]
call fcn.0053f710
test al, al
jne 0x5863e9
lea eax, [ebp - 0x34]
push eax
push 0x628f30
lea ecx, [ebp - 0x8f8]
call fcn.0053f710
test al, al
je 0x586451
push 0xb
push 1
push 1
push 1
push 0x628f18
lea ecx, [ebp - 0x20]
call fcn.00543a40
test eax, eax
je 0x586427
lea ecx, [ebp - 0x34]
call fcn.00543fb0
cmp eax, 0x55f0
jb 0x586427
push 0
push 1
push 0x628f4c
push 0x628f18
lea ecx, [ebp - 0x20]
call fcn.00543260
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x678e28
lea ecx, [ebp - 0x20]
call fcn.00543750
lea eax, [ebp - 0x34]
push eax
call fcn.004cf020
test eax, eax
je 0x586488
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x678e14
lea ecx, [ebp - 0x20]
call fcn.00543750
lea eax, [ebp - 0x74]
xorps xmm0, xmm0
push eax
push 0x671e64
lea ecx, [ebp - 0x8f8]
movlpd qword [ebp - 0x74], xmm0
call fcn.0053f5f0
test al, al
je 0x5864ed
mov eax, dword [ebp - 0x74]
lea edx, [ebp - 0x34]
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x3c]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x38], eax
call fcn.00539500
test al, al
je 0x5864ed
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x69472c
lea ecx, [ebp - 0x20]
call fcn.00543750
lea ecx, [ebp - 0x20]
call fcn.005450e0
mov edx, dword [ebp - 0x44]
mov ecx, ebx
push eax
push 1
call fcn.00527a40
lea eax, [ebp - 0xd0]
push eax
push 0x694750
lea ecx, [ebp - 0x8f8]
call fcn.0053f710
lea ecx, [ebp - 0x8f8]
mov byte [ebp - 4], 4
call fcn.0053f9b0
cmp dword [edi + 4], 0
jne 0x586535
xor esi, esi
jmp 0x588f84
push 0
push 0x14
lea ecx, [esi + 0x14c0]
call fcn.00513e70
lea ecx, [ebp - 0x144]
call fcn.00402af0
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 6
call fcn.004e76f0
push 0
push 1
push 0x694764
mov edx, 1
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0x138]
mov esi, eax
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
lea eax, [ebp - 0xd4]
mov dword [ebp - 0x910], 0
push eax
lea eax, [ebp - 0x910]
push eax
push 0
call dword [0x5fd554]
mov ecx, dword [ebp - 0x914]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ecx + 0x1a0]
call fcn.005450e0
push eax
push 0x62b004
lea ecx, [ebp - 0x20]
call fcn.00545150
mov eax, dword [ebp - 0xd4]
cmp eax, 2
jne 0x58660b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x910]
push 0x694778
jmp 0x58662f
cmp eax, 3
jne 0x586637
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x910]
push 0x694798
lea ecx, [ebp - 0x20]
call fcn.00543750
mov eax, dword [ebp - 0x910]
test eax, eax
je 0x586648
push eax
call dword [0x5fd55c]
push 0
push 1
push 0x6947b4
mov edx, 2
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0x20]
mov esi, eax
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0
push 1
push 0x6947c4
mov edx, 3
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0x108]
mov esi, eax
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0
push 1
push 0x6947dc
mov edx, 4
mov ecx, ebx
call fcn.00527e30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x120]
mov esi, eax
call fcn.005450e0
push eax
push 0x628628
lea ecx, [ebp - 0x12c]
call fcn.005450e0
push eax
lea ecx, [ebp - 0x20]
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0
push 1
push 0x6947e8
mov edx, 5
mov ecx, ebx
call fcn.00527e30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x114]
mov esi, eax
mov edi, 6
call fcn.005450e0
push eax
push 0x628398
lea ecx, [ebp - 0x20]
call fcn.00545150
lea ecx, [ebp - 0xfc]
call fcn.005452f0
test eax, eax
je 0x586788
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0xfc]
call fcn.005450e0
push eax
push 0x628628
lea ecx, [ebp - 0x20]
call fcn.00543750
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0x694820
lea ecx, [ebp - 0xc4]
call fcn.004e6970
test eax, eax
je 0x586820
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x586820
push 0
push 0x6280e0
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
lea ecx, [ebp - 0x20]
call fcn.00545460
push 0
push 1
push 1
push 0
push 0x694864
lea ecx, [ebp - 0x20]
call fcn.00543a40
test eax, eax
je 0x5867b0
push 0
push 1
push 0x694874
mov edx, edi
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0x20]
mov esi, eax
mov edi, 7
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0x694898
lea ecx, [ebp - 0xc4]
call fcn.004e6970
test eax, eax
je 0x586923
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x586923
push 0x69490c
lea ecx, [ebp - 0xc4]
call fcn.004e64f0
lea ecx, [ebp - 0x20]
cmp eax, 1
jne 0x58686f
push 0x694928
call fcn.00545460
jmp 0x5868c9
cmp eax, 2
jne 0x586880
push 0x69493c
call fcn.00545460
jmp 0x5868c9
cmp eax, 4
jne 0x586891
push 0x69494c
call fcn.00545460
jmp 0x5868c9
cmp eax, 5
jne 0x5868a2
push 0x694978
call fcn.00545460
jmp 0x5868c9
cmp eax, 6
jne 0x5868b3
push 0x6949d0
call fcn.00545460
jmp 0x5868c9
cmp eax, 7
jne 0x5868c4
push 0x6949ec
call fcn.00545460
jmp 0x5868c9
call fcn.00545350
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694a14
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
lea ecx, [ebp - 0x20]
call fcn.00543750
push 0
push 1
push 0x694a2c
mov edx, edi
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0x20]
mov esi, eax
inc edi
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0
push 0x20019
push 0x628e80
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0
call fcn.0053fa50
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 7
push eax
push 0x694a48
lea ecx, [ebp - 0x44]
call fcn.0053f710
lea eax, [ebp - 0x34]
push eax
push 0x694a68
lea ecx, [ebp - 0x44]
call fcn.0053f710
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x694a98
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 0x694ac0
lea ecx, [ebp - 0x20]
call fcn.00545150
push 0
push 1
push 0x694ad0
mov edx, edi
mov ecx, ebx
call fcn.00527e30
mov esi, dword [ebp - 0x918]
lea ecx, [ebp - 0x20]
inc edi
mov dword [esi + 8], eax
call fcn.005450e0
mov edx, dword [esi + 8]
mov ecx, ebx
push eax
push 1
call fcn.00527a40
cmp dword [esi + 4], 0
je 0x588f6f
mov ecx, dword [ebp - 0x914]
push 0
push 0x19
lea ecx, [ecx + 0x14c0]
call fcn.00513e70
cmp dword [esi + 4], 0
je 0x588f6f
push edi
mov ecx, ebx
call fcn.004f2730
xorps xmm0, xmm0
mov dword [ebp - 0x5c], 0
lea ecx, [ebp - 0x64]
movq qword [ebp - 0x64], xmm0
mov edi, eax
call fcn.00545530
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x50]
movq qword [ebp - 0x50], xmm0
call fcn.00545530
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
lea ecx, [ebp - 0x80]
movq qword [ebp - 0x80], xmm0
call fcn.00545530
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
lea ecx, [ebp - 0x8c]
movq qword [ebp - 0x8c], xmm0
call fcn.00545530
xorps xmm0, xmm0
mov byte [ebp - 4], 0xb
push 0x1a
lea ecx, [ebp - 0x90c]
movlpd qword [ebp - 0x90c], xmm0
call fcn.004036c0
mov byte [ebp - 4], 0xc
mov edx, 3
mov esi, dword [ebp - 0x90c]
mov ecx, esi
push 2
call fcn.004f5c40
mov dword [ebp - 0x28], eax
test eax, eax
jle 0x586c05
mov dword [ebp - 0x8fc], esi
lea eax, [ebp - 0x8c]
mov ecx, esi
push eax
call fcn.005450e0
lea edx, [ebp - 0x64]
mov ecx, eax
call fcn.004f5ae0
test eax, eax
je 0x586bec
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x74]
push eax
push 0
call fcn.005450e0
push eax
call dword [0x5fd440]
test eax, eax
je 0x586bec
push ecx
push 0
push dword [ebp - 0x70]
lea ecx, [ebp - 0x50]
push dword [ebp - 0x74]
call fcn.00543e70
push ecx
push 0
push dword [ebp - 0x38]
lea ecx, [ebp - 0x80]
push dword [ebp - 0x3c]
call fcn.00543e70
lea ecx, [ebp - 0x64]
call fcn.00544e00
test al, al
je 0x586b1e
push 0x6343b0
call fcn.00545460
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x61d184
mov ecx, esi
call fcn.005450e0
push eax
push 0x6264ec
lea ecx, [ebp - 0x64]
call fcn.005450e0
push eax
lea ecx, [ebp - 0x20]
call fcn.00545150
push 0
push 2
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
mov ecx, dword [ebp - 0x8fc]
mov esi, eax
push 0
push 0
push 0
push 0
push 0x694aec
inc edi
call fcn.005450e0
push ecx
mov ecx, eax
call fcn.004f5e30
add esp, 4
mov ecx, 0x627c8c
test al, al
mov eax, 0x694b08
cmove ecx, eax
push ecx
push 0x694b14
lea ecx, [ebp - 0x8c]
call fcn.005450e0
push eax
push 0x694b2c
lea ecx, [ebp - 0x50]
call fcn.005450e0
push eax
push 0x6726dc
lea ecx, [ebp - 0x80]
call fcn.005450e0
push eax
lea ecx, [ebp - 0x20]
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
mov esi, dword [ebp - 0x8fc]
add esi, 0xc
sub dword [ebp - 0x28], 1
mov dword [ebp - 0x8fc], esi
jne 0x586aa6
mov esi, dword [ebp - 0x90c]
push 2
mov edx, 2
mov ecx, esi
call fcn.004f5c40
mov dword [ebp - 0x28], eax
test eax, eax
jle 0x586d56
mov dword [ebp - 0x8fc], esi
lea eax, [ebp - 0x8c]
mov ecx, esi
push eax
call fcn.005450e0
lea edx, [ebp - 0x64]
mov ecx, eax
call fcn.004f5ae0
test eax, eax
je 0x586d43
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x74]
push eax
push 0
call fcn.005450e0
push eax
call dword [0x5fd440]
test eax, eax
je 0x586d43
push ecx
push 0
push dword [ebp - 0x70]
lea ecx, [ebp - 0x50]
push dword [ebp - 0x74]
call fcn.00543e70
push ecx
push 0
push dword [ebp - 0x38]
lea ecx, [ebp - 0x80]
push dword [ebp - 0x3c]
call fcn.00543e70
lea ecx, [ebp - 0x64]
call fcn.00544e00
test al, al
je 0x586c9c
push 0x694b50
call fcn.00545460
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x61d184
mov ecx, esi
call fcn.005450e0
push eax
push 0x6264ec
lea ecx, [ebp - 0x64]
call fcn.005450e0
push eax
lea ecx, [ebp - 0x20]
call fcn.00545150
push 0
push 2
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694b7c
lea ecx, [ebp - 0x8c]
mov esi, eax
inc edi
call fcn.005450e0
push eax
push 0x694b2c
lea ecx, [ebp - 0x50]
call fcn.005450e0
push eax
push 0x6726dc
lea ecx, [ebp - 0x80]
call fcn.005450e0
push eax
lea ecx, [ebp - 0x20]
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
mov esi, dword [ebp - 0x8fc]
add esi, 0xc
sub dword [ebp - 0x28], 1
mov dword [ebp - 0x8fc], esi
jne 0x586c24
push 0x694bb0
lea ecx, [ebp - 0xc4]
call fcn.004e6970
test eax, eax
je 0x586e60
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x586e60
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x61d184
push 0
push 0x6347d8
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x694c18
lea ecx, [ebp - 0x20]
call fcn.00545150
push 0
push 2
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6280e0
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e65b0
push eax
push 0x62b004
lea ecx, [ebp - 0x20]
call fcn.00545150
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694c38
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x62a0a4
lea ecx, [ebp - 0x20]
call fcn.00543750
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
jne 0x586d81
mov eax, dword [ebp - 0x90c]
test eax, eax
je 0x586e96
push fcn.00545380
lea esi, [eax - 4]
mov byte [ebp - 4], 0xd
push dword [esi]
push 0xc
push eax
call fcn.0041e718
mov eax, dword [esi]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.0041e488
add esp, 8
lea ecx, [ebp - 0x8c]
call fcn.00545380
lea ecx, [ebp - 0x80]
call fcn.00545380
lea ecx, [ebp - 0x50]
call fcn.00545380
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 7
call fcn.00545380
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588f6f
mov ecx, dword [ebp - 0x914]
push 0
push 0x1e
lea ecx, [ecx + 0x14c0]
call fcn.00513e70
cmp dword [esi + 4], 0
je 0x588f6f
push 0
push 3
push 0x694c4c
mov edx, edi
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0x20]
mov esi, eax
call fcn.004e93a0
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0
push 3
push 0x694c80
lea edx, [edi + 1]
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0xd0]
mov esi, eax
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
push 0x66b468
lea ecx, [ebp - 0x50]
movq qword [ebp - 0x50], xmm0
call fcn.005454c0
push 0
push 3
push 0x694ca0
lea edx, [edi + 2]
mov byte [ebp - 4], 0xe
mov ecx, ebx
call fcn.00527e30
mov esi, eax
lea ecx, [ebp - 0x50]
lea eax, [ebp - 0x20]
push eax
call fcn.005450e0
mov edx, 0x670c0c
mov ecx, eax
call fcn.00458530
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0
push 3
push 0x694cc8
lea edx, [edi + 3]
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0x20]
mov esi, eax
call fcn.00545350
push eax
lea ecx, [ebp - 0x50]
call fcn.005450e0
mov edx, 0x670a18
mov ecx, eax
call fcn.00458530
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694cf4
lea ecx, [ebp - 0x50]
call fcn.00543750
push 0
push 3
push 0x694d1c
lea edx, [edi + 4]
mov ecx, ebx
call fcn.00527e30
mov esi, eax
lea ecx, [ebp - 0x50]
lea eax, [ebp - 0x20]
add edi, 5
push eax
call fcn.005450e0
mov edx, 0x670c0c
mov ecx, eax
call fcn.00458530
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 0
push 0
push 0x1f0
lea ecx, [ebp - 0x20]
call fcn.005448f0
mov ecx, eax
call fcn.004e7090
test eax, eax
jle 0x587085
push 0
push 3
push 0x694d54
mov edx, edi
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0x20]
mov esi, eax
inc edi
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
xorps xmm0, xmm0
mov dword [ebp - 0x6c], 0
movq qword [ebp - 0x74], xmm0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
movq qword [ebp - 0x64], xmm0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea edx, [ebp - 0x64]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x74]
call fcn.00457f70
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x8f8], ecx
test eax, eax
jle 0x587193
mov edx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x64]
sub esi, edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x908], esi
mov dword [ebp - 0x24], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x74], ecx
ja 0x587116
mov dword [ebp - 0x74], eax
jmp 0x58711c
mov dword [ebp - 0x8fc], eax
push 0
push 3
lea ecx, [esi + edx]
call fcn.005450e0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
mov ecx, dword [ebp - 0x28]
mov esi, eax
mov eax, dword [ebp - 0x24]
inc edi
cmp eax, dword [ebp - 0x8f8]
cmovbe eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x20]
push eax
call fcn.005450e0
mov edx, 0x670c0c
mov ecx, eax
call fcn.00458530
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x8fc]
add edx, 0xc
mov esi, dword [ebp - 0x908]
mov dword [ebp - 0x8f8], ecx
mov dword [ebp - 0x28], edx
cmp ecx, dword [ebp - 0x38]
jl 0x587103
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x5871c6
push fcn.00545380
lea esi, [eax - 4]
mov byte [ebp - 4], 0x11
push dword [esi]
push 0xc
push eax
call fcn.0041e718
mov eax, dword [esi]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.0041e488
add esp, 8
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x5871f9
push fcn.00545380
lea esi, [eax - 4]
mov byte [ebp - 4], 0x12
push dword [esi]
push 0xc
push eax
call fcn.0041e718
mov eax, dword [esi]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.0041e488
add esp, 8
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 7
call fcn.00545380
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588f6f
push edi
mov ecx, ebx
call fcn.004f1eb0
push 0x694d90
lea ecx, [ebp - 0xc4]
mov edi, eax
call fcn.004e6970
test eax, eax
je 0x5873d6
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x5873d6
nop word [eax + eax]
push 0
push 0x671da0
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
lea ecx, [ebp - 0x20]
call fcn.00545460
push 7
lea ecx, [ebp - 0x20]
call fcn.005430e0
push 0
push 5
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x672e14
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e65b0
push eax
push 0x672e30
lea ecx, [ebp - 0x20]
call fcn.00545150
push ecx
push 0
push 0x672dfc
lea ecx, [ebp - 0xc4]
call fcn.004e64b0
push 0
push eax
lea ecx, [ebp - 0x34]
call fcn.00543e70
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x694e9c
lea ecx, [ebp - 0x20]
call fcn.00543750
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694eb4
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x694ec4
lea ecx, [ebp - 0x20]
call fcn.00543750
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x672e54
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x694ee0
lea ecx, [ebp - 0x20]
call fcn.00543750
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694f04
push 0
push 0x672e8c
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x621880
lea ecx, [ebp - 0x20]
call fcn.00543750
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
jne 0x587250
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588f6f
mov ecx, dword [ebp - 0x914]
push 0
push 0x28
lea ecx, [ecx + 0x14c0]
call fcn.00513e70
cmp dword [esi + 4], 0
je 0x588f6f
push 0x344
lea eax, [ebp - 0x5a8]
mov dword [ebp - 0x8f8], 0
push 0
push eax
mov dword [ebp - 0x24], 0
call fcn.004201e0
add esp, 0xc
mov dword [ebp - 0x5ac], 0x348
lea eax, [ebp - 0x5ac]
push 1
push eax
push 0
push 0
call dword [0x5fd7f4]
test eax, eax
je 0x5877af
xor esi, esi
nop dword [eax]
test dword [ebp - 0x468], 5
je 0x58776b
xor esi, esi
lea eax, [ebp - 0x8f0]
push 0x344
push esi
push eax
mov dword [ebp - 0x40], esi
call fcn.004201e0
add esp, 0xc
mov dword [ebp - 0x8f4], 0x348
lea eax, [ebp - 0x8f4]
push 1
push eax
push esi
lea eax, [ebp - 0x5a8]
push eax
call dword [0x5fd7f4]
test eax, eax
je 0x587768
nop dword [eax]
nop word [eax + eax]
test dword [ebp - 0x7b0], 5
mov eax, dword [ebp - 0x8f8]
mov ecx, eax
je 0x587725
inc eax
mov dword [ebp - 0x8fc], 0
mov dword [ebp - 0x8f8], eax
lea edx, [ebp - 0x8fc]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0
xorps xmm0, xmm0
push eax
movsd qword [ebp - 0x74], xmm0
call fcn.004f1a60
test eax, eax
je 0x587539
mov ecx, dword [ebp - 0x28]
call fcn.00404510
mov ecx, dword [ebp - 0x8fc]
movsd qword [ebp - 0x74], xmm0
call fcn.00404510
addsd xmm0, qword [ebp - 0x74]
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x587527
sqrtsd xmm0, xmm0
jmp 0x58752c
call fcn.005e39e0
divsd xmm0, qword [0x6e4388]
movsd qword [ebp - 0x74], xmm0
push 1
lea eax, [ebp - 0x8b0]
push eax
lea ecx, [ebp - 0x20]
call fcn.005451b0
lea ecx, [ebp - 0x34]
call fcn.00545350
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
lea ecx, [ebp - 0x8c]
movq qword [ebp - 0x8c], xmm0
call fcn.00545530
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
lea ecx, [ebp - 0x80]
movq qword [ebp - 0x80], xmm0
call fcn.00545530
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x50]
movq qword [ebp - 0x50], xmm0
call fcn.00545530
mov byte [ebp - 4], 0x15
movsd xmm0, qword [ebp - 0x74]
ucomisd xmm0, qword [0x6e4260]
lahf
test ah, 0x44
jnp 0x58763b
movaps xmm1, xmm0
lea ecx, [ebp - 0x8c]
call fcn.005445e0
push 4
lea ecx, [ebp - 0x8c]
call fcn.00543dd0
mov ecx, dword [ebp - 0x8fc]
movsx eax, cx
lea ecx, [ebp - 0x80]
push eax
call fcn.00544270
mov ecx, dword [ebp - 0x28]
movsx eax, cx
lea ecx, [ebp - 0x50]
push eax
call fcn.00544270
push 0
push 0
push 0
push 0
push 0
push 0x694f10
lea ecx, [ebp - 0x50]
call fcn.005450e0
push eax
push 0x621880
lea ecx, [ebp - 0x80]
call fcn.005450e0
push eax
push 0x694f20
lea ecx, [ebp - 0x8c]
call fcn.005450e0
push eax
push 0x694f5c
lea ecx, [ebp - 0x34]
call fcn.00545150
push 0xdc
lea eax, [ebp - 0x264]
push 0
push eax
call fcn.004201e0
add esp, 0xc
mov eax, 0xdc
mov word [ebp - 0x220], ax
lea eax, [ebp - 0x264]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x5a8]
push eax
call dword [0x5fd7f0]
test eax, eax
je 0x5876ca
push dword [ebp - 0x1b8]
lea ecx, [ebp - 0x80]
call fcn.005441e0
push dword [ebp - 0x1b4]
lea ecx, [ebp - 0x50]
call fcn.005441e0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694f04
lea ecx, [ebp - 0x50]
call fcn.005450e0
push eax
push 0x621880
lea ecx, [ebp - 0x80]
call fcn.005450e0
push eax
push 0x694f70
lea ecx, [ebp - 0x34]
call fcn.00543750
lea ecx, [ebp - 0x34]
call fcn.005452f0
test eax, eax
je 0x587706
push 0
push 6
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
lea ecx, [ebp - 0x34]
mov esi, eax
inc edi
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
mov esi, dword [ebp - 0x40]
lea ecx, [ebp - 0x50]
call fcn.00545380
lea ecx, [ebp - 0x80]
call fcn.00545380
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 7
call fcn.00545380
push 0x344
lea eax, [ebp - 0x8f0]
inc esi
push 0
push eax
mov dword [ebp - 0x40], esi
call fcn.004201e0
add esp, 0xc
mov dword [ebp - 0x8f4], 0x348
lea eax, [ebp - 0x8f4]
push 1
push eax
push esi
lea eax, [ebp - 0x5a8]
push eax
call dword [0x5fd7f4]
test eax, eax
jne 0x5874b0
mov esi, dword [ebp - 0x24]
push 0x344
lea eax, [ebp - 0x5a8]
inc esi
push 0
push eax
mov dword [ebp - 0x24], esi
call fcn.004201e0
add esp, 0xc
mov dword [ebp - 0x5ac], 0x348
lea eax, [ebp - 0x5ac]
push 1
push eax
push esi
push 0
call dword [0x5fd7f4]
test eax, eax
jne 0x587450
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588f6f
push 0x694f90
lea ecx, [ebp - 0xc4]
call fcn.004e6970
test eax, eax
je 0x587897
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x587897
push 0
push 7
push 0
push 0x626cc8
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0x695018
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x38], eax
inc edi
call fcn.004e64f0
lea ecx, [ebp - 0x34]
cmp eax, 4
jne 0x587827
push 0x628e40
jmp 0x58782c
push 0x655294
call fcn.00545460
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x629e98
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x695030
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x695058
lea ecx, [ebp - 0x20]
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527a40
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
jne 0x5877e4
cmp dword [esi + 4], 0
je 0x588f6f
mov ecx, dword [ebp - 0x914]
push 0
push 0x32
lea ecx, [ecx + 0x14c0]
call fcn.00513e70
push edi
mov ecx, ebx
call fcn.004f2260
cmp dword [esi + 4], 0
mov edi, eax
je 0x588f6f
mov ecx, dword [ebp - 0x914]
push 0
push 0x3c
lea ecx, [ecx + 0x14c0]
call fcn.00513e70
cmp dword [esi + 4], 0
je 0x588f6f
push 0
push 9
push 0x695068
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0
push 0
mov esi, eax
call dword [0x5fd8ec]
test eax, eax
mov edx, 0x69509c
mov ecx, 0x62855c
cmove ecx, edx
mov edx, esi
push ecx
push 1
mov ecx, ebx
call fcn.00527a40
push 0
push 9
push 0x6950b8
lea edx, [edi + 1]
mov ecx, ebx
call fcn.00527e30
mov esi, dword [ebp - 0x918]
add edi, 2
cmp dword [esi + 4], 0
mov dword [esi + 0xc], eax
je 0x588f6f
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6728d8
push 0x6950e0
push 0x695128
lea ecx, [ebp - 0x20]
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6970
test eax, eax
je 0x587b1b
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x587b1b
mov esi, dword [ebp - 0x914]
nop dword [eax]
push 0
push 0xa
push 0
push 0x6280e0
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x672af0
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x38], eax
inc edi
call fcn.004e65b0
push eax
push 0x6951b0
lea ecx, [ebp - 0x20]
call fcn.00545150
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x672a1c
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x6951c0
lea ecx, [ebp - 0x20]
call fcn.00543750
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6951d8
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x69520c
lea ecx, [ebp - 0x20]
call fcn.00543750
movsd xmm0, qword [esi + 8]
comisd xmm0, xmmword [0x6e42c0]
jbe 0x587aed
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x695240
push 0
push 0x69524c
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x695270
lea ecx, [ebp - 0x20]
call fcn.00543750
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x695240
push 0
push 0x672a38
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
push 0x695298
lea ecx, [ebp - 0x20]
call fcn.00543750
lea ecx, [ebp - 0x20]
call fcn.005450e0
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527a40
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
jne 0x5879b0
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588f6f
mov ecx, dword [ebp - 0x914]
push 0
push 0x46
lea ecx, [ecx + 0x14c0]
call fcn.00513e70
push 0
push 0xb
push 0x6952b8
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push ecx
push 0
push dword [ebp - 0x140]
inc edi
lea ecx, [ebp - 0x20]
push dword [ebp - 0x144]
mov esi, eax
mov dword [ebp - 0x91c], edi
call fcn.00543e70
push dword [ebp - 0x140]
lea ecx, [ebp - 0x34]
push dword [ebp - 0x144]
call fcn.005444d0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6952e4
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x6264ec
lea ecx, [ebp - 0x20]
call fcn.00543750
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
xor esi, esi
cmp dword [ebp - 0x13c], esi
jle 0x587c62
mov dword [ebp - 0x8fc], esi
push esi
lea ecx, [ebp - 0x20]
call fcn.00544270
sub esp, 0xc
lea ecx, [ebp - 0x20]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6952f4
call fcn.005434e0
push 0
push 0xb
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
inc edi
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0xf0], esi
lea ecx, [esi + 1]
mov esi, ecx
ja 0x587c2b
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0x8fc]
add ecx, dword [ebp - 0xe8]
call fcn.005450e0
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527a40
add dword [ebp - 0x8fc], 0xc
cmp esi, dword [ebp - 0x13c]
jl 0x587bd5
mov dword [ebp - 0x91c], edi
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588f6f
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x908], eax
test eax, eax
je 0x587d28
xor esi, esi
test eax, eax
je 0x587d22
mov dword [ebp - 0x8fc], esi
sub esp, 0xc
lea ecx, [ebp - 0x20]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x695314
push esi
call fcn.005441e0
mov ecx, eax
call fcn.005434e0
push 0
push 0xb
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
inc edi
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0xe4], esi
lea ecx, [esi + 1]
mov esi, ecx
ja 0x587ceb
mov dword [ebp - 0xe4], ecx
mov ecx, dword [ebp - 0x8fc]
add ecx, dword [ebp - 0xdc]
call fcn.005450e0
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527a40
add dword [ebp - 0x8fc], 0xc
cmp esi, dword [ebp - 0x908]
jb 0x587c96
mov dword [ebp - 0x91c], edi
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588f6f
mov ecx, dword [ebp - 0x914]
push 0
push 0x50
lea ecx, [ecx + 0x14c0]
call fcn.00513e70
cmp dword [esi + 4], 0
je 0x588f6f
push 0x40
lea eax, [ebp - 0x184]
push 0
push eax
call fcn.004201e0
add esp, 0xc
mov dword [ebp - 0x184], 0x40
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x50]
movq qword [ebp - 0x50], xmm0
call fcn.00545530
xorps xmm0, xmm0
mov dword [ebp - 0x5c], 0
lea ecx, [ebp - 0x64]
movq qword [ebp - 0x64], xmm0
call fcn.00545530
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
lea ecx, [ebp - 0x8c]
movq qword [ebp - 0x8c], xmm0
call fcn.00545530
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
lea ecx, [ebp - 0x80]
movq qword [ebp - 0x80], xmm0
call fcn.00545530
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 0x19
push eax
call dword [0x5fd304]
test eax, eax
je 0x587ec5
push 0
push 0xc
push 0x695330
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push ecx
push 0
push dword [ebp - 0x168]
inc edi
lea ecx, [ebp - 0x50]
push dword [ebp - 0x16c]
mov esi, eax
mov dword [ebp - 0x91c], edi
call fcn.00543e70
push ecx
push 0
push dword [ebp - 0x160]
lea ecx, [ebp - 0x64]
push dword [ebp - 0x164]
call fcn.00543e70
mov eax, dword [ebp - 0x160]
mov ecx, 0x64
push dword [ebp - 0x168]
mul ecx
push dword [ebp - 0x16c]
mov ecx, eax
mov edx, 0x64
mov eax, dword [ebp - 0x164]
mul edx
add ecx, edx
push ecx
push eax
call fcn.005e2c50
push edx
push eax
lea ecx, [ebp - 0x34]
call fcn.005444d0
push 0
push 0
push 0
push 0
push 0
push 0x621d14
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x695350
lea ecx, [ebp - 0x64]
call fcn.005450e0
push eax
push 0x695368
lea ecx, [ebp - 0x50]
call fcn.005450e0
push eax
push 0x695380
lea ecx, [ebp - 0x20]
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
push 1
push 0x695390
lea ecx, [ebp - 0x20]
call fcn.005451b0
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6970
test eax, eax
je 0x587ffe
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x587ffe
push 0
push 0x6280e0
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
lea ecx, [ebp - 0x80]
call fcn.00545460
push 0
push 0xc
lea ecx, [ebp - 0x80]
call fcn.005450e0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push ecx
push 2
push 0x69540c
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e6570
push edx
push eax
lea ecx, [ebp - 0x34]
call fcn.00543e70
push ecx
push 2
push 0x695428
lea ecx, [ebp - 0xc4]
call fcn.004e6570
push edx
push eax
lea ecx, [ebp - 0x8c]
call fcn.00543e70
push ecx
push 0
lea ecx, [ebp - 0x80]
call fcn.005450e0
mov ecx, eax
call fcn.0052fb40
push edx
push eax
lea ecx, [ebp - 0x50]
call fcn.00543e70
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x50]
call fcn.005450e0
push eax
push 0x628374
lea ecx, [ebp - 0x8c]
call fcn.005450e0
push eax
push 0x69543c
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x695460
lea ecx, [ebp - 0x20]
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
jne 0x587f03
mov dword [ebp - 0x91c], edi
lea ecx, [ebp - 0x80]
call fcn.00545380
lea ecx, [ebp - 0x8c]
call fcn.00545380
lea ecx, [ebp - 0x64]
call fcn.00545380
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 7
call fcn.00545380
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588f6f
mov ecx, dword [ebp - 0x914]
push 0
push 0x55
add ecx, 0x14c0
call fcn.00513e70
cmp dword [esi + 4], 0
je 0x588f6f
mov eax, dword [ebp - 0x914]
push ecx
lea ecx, [ebp - 0xc4]
movsd xmm0, qword [eax + 8]
comisd xmm0, xmmword [0x6e42e0]
jb 0x588077
push 0x6720b4
jmp 0x58807c
push 0x6720e0
call fcn.004e69d0
push 1
push 0x672108
lea ecx, [ebp - 0x20]
call fcn.005451b0
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6970
test eax, eax
je 0x588162
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x588162
nop
push 0
push 0xd
push 0
push 0x6287f4
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0x672178
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e64b0
push 0
push 0
push 0
push 0
push 0
mov ecx, eax
mov edx, 0x695494
push 0
push 0
test cl, 0x10
mov eax, 0x695480
push 0
cmove eax, edx
test ecx, 0x1000
push 0
push eax
mov ecx, 0x6954b8
mov eax, 0x6954a4
cmove eax, ecx
lea ecx, [ebp - 0x20]
push eax
push 0x6954d0
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
jne 0x5880c0
jmp 0x588185
push 0
push 0xd
push 0x695518
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0x695560
push 1
mov edx, eax
mov ecx, ebx
inc edi
call fcn.00527a40
push 1
push 0x6955d8
lea ecx, [ebp - 0x20]
call fcn.005451b0
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6970
test eax, eax
je 0x588265
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x588265
push 0
push 0xd
push 0
push 0x6287f4
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0x672178
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e64b0
push 0
push 0
push 0
push 0
push 0
mov ecx, eax
mov edx, 0x695494
push 0
push 0
test cl, 0x10
mov eax, 0x695480
push 0
cmove eax, edx
test ecx, 0x1000
push 0
push eax
mov ecx, 0x6954b8
mov eax, 0x6954a4
cmove eax, ecx
lea ecx, [ebp - 0x20]
push eax
push 0x695650
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
jne 0x5881c3
jmp 0x588288
push 0
push 0xd
push 0x6956a0
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0x6956e8
push 1
mov edx, eax
mov ecx, ebx
inc edi
call fcn.00527a40
push 1
push 0x6721e0
lea ecx, [ebp - 0x20]
call fcn.005451b0
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6970
test eax, eax
je 0x588354
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x588354
push 0
push 0xd
push 0
push 0x6287f4
lea ecx, [ebp - 0xc4]
call fcn.004e65b0
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0x672178
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e64b0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
test eax, 0x1000
mov ecx, 0x628e40
push 0
mov eax, 0x655294
cmove eax, ecx
lea ecx, [ebp - 0x20]
push eax
push 0x695758
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
jne 0x5882c6
push 0
push 0xd
push 0x690488
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov esi, eax
inc edi
call fcn.0052baf0
test al, al
mov ecx, 0x655294
mov eax, 0x628e40
cmove ecx, eax
push ecx
push 0x695758
lea ecx, [ebp - 0x20]
call fcn.00545150
lea ecx, [ebp - 0x20]
call fcn.005450e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
mov eax, dword [ebp - 0x914]
movsd xmm0, qword [eax + 8]
comisd xmm0, xmmword [0x6e42e0]
jbe 0x58845f
push 0
push 0xd
push 0x6957a0
mov edx, edi
mov ecx, ebx
call fcn.00527e30
push 0
push 0x20019
push 0x6345f0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
mov esi, eax
inc edi
call fcn.0053fa50
lea eax, [ebp - 0x8fc]
mov dword [ebp - 0x8fc], 0
push eax
push 0x634670
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x28], 0
call fcn.0053f680
lea eax, [ebp - 0x28]
push eax
push 0x6346b8
lea ecx, [ebp - 0x24]
call fcn.0053f680
cmp dword [ebp - 0x8fc], 0
jbe 0x588446
cmp dword [ebp - 0x28], 0
mov eax, 0x6957d8
ja 0x58844b
mov eax, 0x6957f8
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527a40
lea ecx, [ebp - 0x24]
call fcn.0053f9b0
push 0
push 0xd
push 0x690284
mov edx, edi
mov ecx, ebx
call fcn.00527e30
mov ecx, dword [ebp - 0x914]
inc edi
mov esi, eax
mov dword [ebp - 0x91c], edi
lea ecx, [ecx + 0x1298]
call fcn.004b25e0
test eax, eax
mov edx, 0x6957d8
mov ecx, 0x6957f8
cmove ecx, edx
mov edx, esi
push ecx
push 1
mov ecx, ebx
call fcn.00527a40
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588f6f
mov ecx, dword [ebp - 0x914]
push 0
push 0x5a
lea ecx, [ecx + 0x14c0]
call fcn.00513e70
cmp dword [esi + 4], 0
je 0x588f6f
mov dword [ebp - 0x8f8], 0
lea eax, [ebp - 0x8f8]
mov byte [ebp - 4], 0x1a
push eax
push 0x6809cc
push 1
push 0
push 0x680a10
call dword [0x5fdad8]
test eax, eax
jns 0x58850b
mov byte [ebp - 4], 0x1b
jmp 0x588657
mov eax, dword [ebp - 0x8f8]
lea edx, [ebp - 0x8fc]
mov dword [ebp - 0x8fc], 0
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
push 0
push 0xe
push 0x695818
mov edx, edi
mov ecx, ebx
call fcn.00527e30
inc edi
mov edx, 0x628e40
cmp word [ebp - 0x8fc], 0
mov ecx, 0x655294
mov dword [ebp - 0x91c], edi
cmove ecx, edx
mov edx, eax
push ecx
push 1
mov ecx, ebx
call fcn.00527a40
mov dword [ebp - 0x24], 0
mov byte [ebp - 4], 0x1c
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0x8f8]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
test eax, eax
jns 0x58859b
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588592
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x1e
jmp 0x588657
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x28]
mov dword [ebp - 0x28], 0
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jns 0x5885cd
mov byte [ebp - 4], 0x1f
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x5885c4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x20
jmp 0x588657
push 0
push 0xe
push 0x695834
mov edx, edi
mov ecx, ebx
call fcn.00527e30
mov ecx, dword [ebp - 0x28]
inc edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x91c], edi
test ecx, ecx
jne 0x5885f7
push 0x695860
jmp 0x588625
cmp ecx, 1
jne 0x588603
push 0x6958ac
jmp 0x588625
cmp ecx, 2
jne 0x58860f
push 0x6958f0
jmp 0x588625
cmp ecx, 3
jne 0x58861b
push 0x695948
jmp 0x588625
cmp ecx, 4
jne 0x58862d
push 0x6959a8
lea ecx, [ebp - 0x20]
call fcn.00545460
lea ecx, [ebp - 0x20]
call fcn.005450e0
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527a40
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588653
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x22
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588667
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 7
cmp dword [esi + 4], 0
je 0x588f6f
mov edi, dword [ebp - 0x914]
push 0
push 0x5f
lea ecx, [edi + 0x14c0]
call fcn.00513e70
cmp dword [esi + 4], 0
je 0x588f6f
movsd xmm2, qword [edi + 8]
call fcn.004ed290
mov dword [ebp - 0x6c], eax
cmp eax, 4
jne 0x5886ba
movsd xmm3, qword [edi + 8]
lea edx, [eax - 1]
push 0xffffffffffffffff
mov ecx, 0x6355c8
call fcn.004ecfd0
mov dword [ebp - 0x904], 0
lea eax, [ebp - 0x904]
mov byte [ebp - 4], 0x23
push eax
push 0x6809bc
push 1
push 0
push 0x680764
call dword [0x5fdad8]
test eax, eax
jns 0x588704
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588f4f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x588f4f
mov eax, dword [ebp - 0x904]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x54]
movsd xmm0, qword [0x6e43c0]
comisd xmm0, xmmword [edi + 8]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x8fc], 4
mov dword [ebp - 0x8f8], 0
jbe 0x588bb5
mov byte [ebp - 4], 0x25
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0x904]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
test eax, eax
js 0x588b98
mov edx, dword [ebp - 0x40]
cmp edx, 1
jl 0x588b98
mov eax, dword [ebp - 0x904]
lea esi, [ebp - 0x8f8]
push esi
push edx
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x48]
mov esi, dword [ebp - 0x918]
test eax, eax
jns 0x5887a5
mov byte [ebp - 4], 0x28
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x58879c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x29
jmp 0x5886eb
cmp dword [esi + 4], 0
jne 0x5887c8
mov byte [ebp - 4], 0x2a
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x5887bf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x2b
jmp 0x5886eb
mov ecx, dword [ebp - 0x40]
xor edi, edi
mov dword [ebp - 0x908], edi
test ecx, ecx
jle 0x588b8f
mov esi, dword [ebp - 0x914]
add esi, 0x14c0
xor edx, edx
mov dword [ebp - 0x924], esi
mov dword [ebp - 0x38], edx
mov eax, edx
cdq
idiv ecx
push 0
add eax, 0x5f
mov ecx, esi
push eax
call fcn.00513e70
mov dword [ebp - 0x900], 0
mov byte [ebp - 4], 0x2c
lea edx, [ebp - 0x900]
mov eax, dword [ebp - 0x8f8]
push edx
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jns 0x588847
mov byte [ebp - 4], 0x2d
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x58883e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x25
jmp 0x588b74
mov eax, dword [ebp - 0x900]
lea edx, [ebp - 0x8fc]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
test eax, eax
jns 0x588864
mov byte [ebp - 4], 0x2e
jmp 0x58882e
mov eax, dword [ebp - 0x8fc]
cmp eax, 2
je 0x58887a
cmp eax, 3
je 0x58887a
mov byte [ebp - 4], 0x2f
jmp 0x58882e
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov byte [ebp - 4], 0x31
lea edx, [ebp - 0x64]
mov eax, dword [ebp - 0x900]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jns 0x5888a6
mov byte [ebp - 4], 0x32
jmp 0x58882e
mov eax, dword [ebp - 0x900]
lea ecx, [ebp - 0x28]
mov esi, dword [eax]
call fcn.00401b40
push eax
push dword [ebp - 0x900]
call dword [esi + 0x30]
test eax, eax
jns 0x588928
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x58890b
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x58890b
mov eax, dword [esi]
test eax, eax
je 0x5888e9
push eax
call dword [0x5fd580]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x588900
push eax
call fcn.0041e483
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.0041ea7e
add esp, 8
mov byte [ebp - 4], 0x33
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x58891f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x25
jmp 0x588b6e
lea ecx, [ebp - 0x24]
call fcn.00401b40
movsd xmm0, qword [ebp - 0x64]
push eax
push 0x80000000
push 0
sub esp, 8
movsd qword [esp], xmm0
call dword [0x5fd584]
mov edi, dword [ebp - 0x28]
test edi, edi
jne 0x58899a
push 0xc
call fcn.0041e693
mov edi, eax
add esp, 4
mov dword [ebp - 0x28], edi
test edi, edi
je 0x588989
xorps xmm0, xmm0
movq qword [edi], xmm0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 1
mov dword [edi], 0
jmp 0x58898b
xor edi, edi
mov byte [ebp - 4], 0x31
mov dword [ebp - 0x28], edi
test edi, edi
je 0x588fca
push dword [edi]
lea ecx, [ebp - 0x20]
call fcn.00545460
push ecx
push 8
lea eax, [ebp - 0x34]
push eax
push 0x695a1c
lea ecx, [ebp - 0x20]
call fcn.00542860
mov esi, dword [ebp - 0x24]
test al, al
je 0x588a3e
test esi, esi
jne 0x588a0f
push 0xc
call fcn.0041e693
mov esi, eax
add esp, 4
mov dword [ebp - 0x24], esi
test esi, esi
je 0x5889fe
xorps xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 1
mov dword [esi], 0
jmp 0x588a00
xor esi, esi
mov byte [ebp - 4], 0x31
mov dword [ebp - 0x24], esi
test esi, esi
je 0x588fca
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x61d184
lea ecx, [ebp - 0x34]
call fcn.005450e0
push eax
push 0x6264ec
push dword [esi]
lea ecx, [ebp - 0x34]
call fcn.00545150
jmp 0x588a94
test esi, esi
jne 0x588a8a
push 0xc
call fcn.0041e693
mov esi, eax
add esp, 4
mov dword [ebp - 0x24], esi
test esi, esi
je 0x588a79
xorps xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 1
mov dword [esi], 0
jmp 0x588a7b
xor esi, esi
mov byte [ebp - 4], 0x31
mov dword [ebp - 0x24], esi
test esi, esi
je 0x588fca
push dword [esi]
lea ecx, [ebp - 0x34]
call fcn.00545460
push 0
push 0xf
lea ecx, [ebp - 0x34]
call fcn.005450e0
mov edx, dword [ebp - 0x91c]
mov ecx, ebx
push eax
call fcn.00527e30
inc dword [ebp - 0x91c]
lea ecx, [ebp - 0x20]
mov ebx, eax
call fcn.005450e0
push eax
mov edx, ebx
mov ebx, dword [ebp - 0x920]
push 1
mov ecx, ebx
call fcn.00527a40
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x588b10
mov eax, dword [esi]
test eax, eax
je 0x588aee
push eax
call dword [0x5fd580]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x588b05
push eax
call fcn.0041e483
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.0041ea7e
add esp, 8
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
dec eax
jne 0x588b50
mov eax, dword [edi]
test eax, eax
je 0x588b2e
push eax
call dword [0x5fd580]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x588b45
push eax
call fcn.0041e483
add esp, 4
mov dword [edi + 4], 0
push 0xc
push edi
call fcn.0041ea7e
add esp, 8
mov byte [ebp - 4], 0x37
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588b64
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x25
mov edi, dword [ebp - 0x908]
mov esi, dword [ebp - 0x924]
mov edx, dword [ebp - 0x38]
inc edi
mov ecx, dword [ebp - 0x40]
add edx, 5
mov dword [ebp - 0x908], edi
mov dword [ebp - 0x38], edx
cmp edi, ecx
jl 0x5887f2
mov byte [ebp - 4], 0x38
jmp 0x588ef0
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588bac
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x27
jmp 0x5886eb
mov dword [ebp - 0x900], 0
push 0x6833e4
mov byte [ebp - 4], 0x3a
call dword [0x5fd57c]
mov ecx, dword [ebp - 0x904]
mov edi, eax
lea eax, [ebp - 0x8f8]
push eax
push edi
mov edx, dword [ecx]
push ecx
call dword [edx + 0x4c]
push edi
mov esi, eax
call dword [0x5fd580]
test esi, esi
jns 0x588c38
mov byte [ebp - 4], 0x3b
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588c05
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x3c
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588c19
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x3d
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588c2d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x914]
jmp 0x588f49
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
jne 0x588c8b
mov byte [ebp - 4], 0x3e
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588c58
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x3f
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588c6c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x40
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588c80
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x914]
jmp 0x588f4f
mov eax, dword [ebp - 0x8f8]
lea edx, [ebp - 0x8fc]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x8fc]
cmp eax, 2
je 0x588cf5
cmp eax, 3
je 0x588cf5
mov byte [ebp - 4], 0x41
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588cc2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x42
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588cd6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x43
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588c80
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x914]
jmp 0x588f4f
mov eax, dword [ebp - 0x8f8]
lea edx, [ebp - 0x900]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
test eax, eax
jns 0x588d57
mov byte [ebp - 4], 0x44
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588d20
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x45
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588d34
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x46
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588c80
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x914]
jmp 0x588f4f
mov eax, dword [ebp - 0x900]
lea edx, [ebp - 0x40]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
push dword [ebp - 0x40]
lea ecx, [ebp - 0x34]
call fcn.00544270
mov ecx, dword [ebp - 0x40]
xor edi, edi
test ecx, ecx
jle 0x588ed8
mov eax, dword [ebp - 0x914]
add eax, 0x14c0
mov dword [ebp - 0x920], eax
xor eax, eax
mov dword [ebp - 0x38], eax
cdq
idiv ecx
mov ecx, dword [ebp - 0x920]
push 0
add eax, 0x5f
push eax
call fcn.00513e70
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov byte [ebp - 4], 0x47
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0x900]
push edx
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jns 0x588dea
mov byte [ebp - 4], 0x48
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588eac
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x588eac
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x28]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jns 0x588e01
mov byte [ebp - 4], 0x49
jmp 0x588dd4
push dword [ebp - 0x28]
lea ecx, [ebp - 0x34]
call fcn.00545460
push ecx
push 8
lea eax, [ebp - 0x20]
push eax
push 0x695a1c
lea ecx, [ebp - 0x34]
call fcn.00542860
test al, al
jne 0x588e4c
sub esp, 0xc
lea ecx, [ebp - 0x20]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x695a28
push edi
call fcn.00544270
mov ecx, eax
call fcn.005434e0
cmp dword [esi + 4], 0
je 0x588ec7
push 0
push 0xf
lea ecx, [ebp - 0x20]
call fcn.005450e0
mov esi, dword [ebp - 0x91c]
mov ecx, ebx
push eax
mov edx, esi
call fcn.00527e30
push dword [ebp - 0x28]
inc esi
mov edx, eax
push 1
mov ecx, ebx
mov dword [ebp - 0x91c], esi
call fcn.00527a40
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x588e95
push eax
call dword [0x5fd580]
mov byte [ebp - 4], 0x4b
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588ea6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x918]
mov byte [ebp - 4], 0x3a
inc edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x40]
add eax, 5
mov dword [ebp - 0x38], eax
cmp edi, ecx
jl 0x588d95
jmp 0x588ed8
mov byte [ebp - 4], 0x4a
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588ed8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x4c
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588eec
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x4d
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588f00
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x914]
mov byte [ebp - 4], 0x23
cmp dword [ebp - 0x6c], 4
jne 0x588f35
push ecx
push 1
push 0x6355c8
mov ecx, edi
call fcn.0045fc60
movsd xmm3, qword [edi + 8]
mov edx, 4
push 0xffffffffffffffff
mov ecx, 0x6355c8
call fcn.004ecfd0
mov byte [ebp - 4], 0x4e
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588f49
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x918]
mov byte [ebp - 4], 7
cmp dword [esi + 4], 0
je 0x588f6f
push 0
push 0x64
lea ecx, [edi + 0x14c0]
call fcn.00513e70
mov esi, 1
jmp 0x588f71
xor esi, esi
lea ecx, [ebp - 0x44]
call fcn.0053f9b0
lea ecx, [ebp - 0x144]
call fcn.00402b60
lea ecx, [ebp - 0xc4]
call fcn.004e6bf0
lea ecx, [ebp - 0xd0]
call fcn.00545380
lea ecx, [ebp - 0x34]
call fcn.00545380
lea ecx, [ebp - 0x20]
call fcn.00545380
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041e475
mov esp, ebp
pop ebp
ret 4
push 0x8007000e
call fcn.0041e110
int3