Function at 0x585cb0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f8ad0
mov eax, dword fs:[0]
push eax
sub esp, 0x918
mov eax, dword [0x704200]
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 0x585d03
xor eax, eax
jmp 0x588e3c
push 0
call dword [0x5fdac8]
push ecx
push 0
push 1
mov edx, 0x693c78
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 2
mov edx, 0x693ca0
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 3
mov edx, 0x693ce8
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 4
mov edx, 0x693d28
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 5
mov edx, 0x693d50
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 6
mov edx, 0x693d70
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 7
mov edx, 0x693d94
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 8
mov edx, 0x693db8
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 9
mov edx, 0x693e00
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 0xa
mov edx, 0x693e58
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 0xb
mov edx, 0x693e70
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 0xc
mov edx, 0x693eb0
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 0xd
mov edx, 0x693eec
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 0xe
mov edx, 0x693f2c
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 0xf
mov edx, 0x693f64
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 0x10
mov edx, 0x693f98
mov ecx, ebx
call fcn.00527bd0
push ecx
push 0
push 0x11
mov edx, 0x693fd0
mov ecx, ebx
call fcn.00527bd0
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x20]
movq qword [ebp - 0x20], xmm0
call fcn.005453c0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x34]
xorps xmm0, xmm0
mov dword [ebp - 0x2c], 0
movq qword [ebp - 0x34], xmm0
call fcn.005453c0
xorps xmm0, xmm0
mov dword [ebp - 0xc8], 0
lea ecx, [ebp - 0xd0]
movq qword [ebp - 0xd0], xmm0
call fcn.005453c0
push 0
push 5
lea ecx, [esi + 0x14c0]
mov byte [ebp - 4], 2
call fcn.00513c80
cmp dword [edi + 4], 0
je 0x585f6f
mov ecx, 3
call fcn.004fba70
mov esi, eax
mov dword [ebp - 0x6c], esi
mov byte [ebp - 4], 3
cmp dword [esi], 0
mov dword [ebp - 0x44], 0
jbe 0x585f2b
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 0x6549b0
call fcn.00544f70
push eax
push str.HKU_
lea ecx, [ebp - 0x20]
call fcn.00544fe0
push edi
push 0x10
lea ecx, [ebp - 0x20]
call fcn.00544f70
mov ecx, dword [ebp - 0x914]
push eax
call fcn.00585550
cmp dword [edi + 4], 0
je 0x585f8b
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 0x585ec5
mov ecx, dword [ebp - 0x914]
push edi
push 0x10
push 0x694010
call fcn.00585550
cmp dword [edi + 4], 0
je 0x585f8b
mov ecx, dword [ebp - 0x914]
push edi
push 0x10
push 0x694088
call fcn.00585550
cmp dword [edi + 4], 0
je 0x585f8b
push ecx
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00404090
mov esi, dword [ebp - 0x914]
push 0
push 0xa
lea ecx, [esi + 0x14c0]
call fcn.00513c80
cmp dword [edi + 4], 0
jne 0x585f9a
xor esi, esi
jmp 0x588e1f
push ecx
mov ecx, esi
call fcn.00404090
xor esi, esi
jmp 0x588e1f
mov eax, dword [edi]
movsd xmm0, qword [eax + 8]
comisd xmm0, xmmword [0x6e3268]
jbe 0x585fc1
push 0xffffffffffffffff
push 0x11
push 0
push dword [edi + 0x10]
mov ecx, esi
push dword [eax + 0x14b4]
call fcn.005711a0
push 0
push 0xf
lea ecx, [esi + 0x14c0]
call fcn.00513c80
push 0
push 1
push 0x678850
xor edx, edx
mov ecx, ebx
call fcn.00527c50
mov dword [ebp - 0x44], eax
call fcn.004ea1a0
push 0x38
lea eax, [ebp - 0xc4]
push 0
push eax
call fcn.004201d0
add esp, 8
lea ecx, [ebp - 0xc4]
push 0x6295d4
call fcn.004e6a20
push 0x63e8a8
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 4
call fcn.004e6820
test eax, eax
je 0x5861e0
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x5861e0
push 1
push 0x671a20
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
lea ecx, [ebp - 0x20]
call fcn.005452f0
push 0x11
push 1
push 1
push 0
push 0x671a30
lea ecx, [ebp - 0x20]
call fcn.005438b0
test eax, eax
je 0x58607a
push 0xa
lea ecx, [ebp - 0x20]
call fcn.00543b90
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x671a54
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x61e0e4
lea ecx, [ebp - 0x20]
call fcn.005435c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x671a84
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x678840
lea ecx, [ebp - 0x20]
call fcn.005435c0
push 0
push 0x66b380
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
lea ecx, [ebp - 0x34]
call fcn.005452f0
lea ecx, [ebp - 0x34]
call fcn.00545180
test eax, eax
je 0x58612d
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.00544f70
push eax
push 0x61e0e4
jmp 0x58615c
lea eax, [ebp - 0x34]
push eax
call fcn.004cf1a0
test eax, eax
je 0x586164
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.00544f70
push eax
push 0x67882c
lea ecx, [ebp - 0x20]
call fcn.005435c0
push ecx
push 0x671ab0
lea ecx, [ebp - 0xc4]
call fcn.004e6310
push eax
lea ecx, [ebp - 0x34]
call fcn.005452f0
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.00544f70
push eax
push 0x694114
lea ecx, [ebp - 0x20]
call fcn.005435c0
lea ecx, [ebp - 0x20]
call fcn.00544f70
mov edx, dword [ebp - 0x44]
mov ecx, ebx
push eax
push 1
call fcn.00527860
push 0
push 0x629ee0
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
lea ecx, [ebp - 0xd0]
call fcn.005452f0
jmp 0x5863b8
push 0
push 0x20019
push 0x628e60
lea ecx, [ebp - 0x8f8]
mov dword [ebp - 0x8f8], 0
call fcn.0053f8c0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 5
push eax
push 0x626ca8
lea ecx, [ebp - 0x8f8]
call fcn.0053f580
cmp byte [esi + 0x11], 0
mov ecx, 0x622218
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, 0x622248
cmove eax, ecx
lea ecx, [ebp - 0x20]
push 0
push eax
call fcn.005435c0
lea eax, [ebp - 0x34]
push eax
push 0x634f9c
lea ecx, [ebp - 0x8f8]
call fcn.0053f580
test al, al
jne 0x586279
lea eax, [ebp - 0x34]
push eax
push 0x628f10
lea ecx, [ebp - 0x8f8]
call fcn.0053f580
test al, al
je 0x5862e1
push 0xb
push 1
push 1
push 1
push 0x628ef8
lea ecx, [ebp - 0x20]
call fcn.005438b0
test eax, eax
je 0x5862b7
lea ecx, [ebp - 0x34]
call fcn.00543e20
cmp eax, 0x55f0
jb 0x5862b7
push 0
push 1
push 0x628f2c
push 0x628ef8
lea ecx, [ebp - 0x20]
call fcn.005430c0
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.00544f70
push eax
push 0x678840
lea ecx, [ebp - 0x20]
call fcn.005435c0
lea eax, [ebp - 0x34]
push eax
call fcn.004cf1a0
test eax, eax
je 0x586318
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.00544f70
push eax
push 0x67882c
lea ecx, [ebp - 0x20]
call fcn.005435c0
lea eax, [ebp - 0x74]
xorps xmm0, xmm0
push eax
push 0x671ae4
lea ecx, [ebp - 0x8f8]
movlpd qword [ebp - 0x74], xmm0
call fcn.0053f460
test al, al
je 0x58637d
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.00539370
test al, al
je 0x58637d
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.00544f70
push eax
push 0x694114
lea ecx, [ebp - 0x20]
call fcn.005435c0
lea ecx, [ebp - 0x20]
call fcn.00544f70
mov edx, dword [ebp - 0x44]
mov ecx, ebx
push eax
push 1
call fcn.00527860
lea eax, [ebp - 0xd0]
push eax
push 0x694138
lea ecx, [ebp - 0x8f8]
call fcn.0053f580
lea ecx, [ebp - 0x8f8]
mov byte [ebp - 4], 4
call fcn.0053f820
cmp dword [edi + 4], 0
jne 0x5863c5
xor esi, esi
jmp 0x588e14
push 0
push 0x14
lea ecx, [esi + 0x14c0]
call fcn.00513c80
lea ecx, [ebp - 0x144]
call fcn.00402af0
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 6
call fcn.004e75a0
push 0
push 1
push 0x69414c
mov edx, 1
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0x138]
mov esi, eax
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
lea eax, [ebp - 0xd4]
mov dword [ebp - 0x910], 0
push eax
lea eax, [ebp - 0x910]
push eax
push 0
call dword [0x5fd550]
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.00544f70
push eax
push 0x62afe4
lea ecx, [ebp - 0x20]
call fcn.00544fe0
mov eax, dword [ebp - 0xd4]
cmp eax, 2
jne 0x58649b
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 0x694160
jmp 0x5864bf
cmp eax, 3
jne 0x5864c7
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 0x694180
lea ecx, [ebp - 0x20]
call fcn.005435c0
mov eax, dword [ebp - 0x910]
test eax, eax
je 0x5864d8
push eax
call dword [0x5fd558]
push 0
push 1
push 0x69419c
mov edx, 2
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0x20]
mov esi, eax
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0
push 1
push 0x6941ac
mov edx, 3
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0x108]
mov esi, eax
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0
push 1
push 0x6941c4
mov edx, 4
mov ecx, ebx
call fcn.00527c50
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.00544f70
push eax
push 0x628608
lea ecx, [ebp - 0x12c]
call fcn.00544f70
push eax
lea ecx, [ebp - 0x20]
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0
push 1
push 0x6941d0
mov edx, 5
mov ecx, ebx
call fcn.00527c50
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.00544f70
push eax
push 0x628378
lea ecx, [ebp - 0x20]
call fcn.00544fe0
lea ecx, [ebp - 0xfc]
call fcn.00545180
test eax, eax
je 0x586618
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.00544f70
push eax
push 0x628608
lea ecx, [ebp - 0x20]
call fcn.005435c0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0x694208
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x5866b0
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x5866b0
push 0
push 0x6280c0
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
lea ecx, [ebp - 0x20]
call fcn.005452f0
push 0
push 1
push 1
push 0
push 0x69424c
lea ecx, [ebp - 0x20]
call fcn.005438b0
test eax, eax
je 0x586640
push 0
push 1
push 0x69425c
mov edx, edi
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0x20]
mov esi, eax
mov edi, 7
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0x694280
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x5867b3
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x5867b3
push 0x6942f4
lea ecx, [ebp - 0xc4]
call fcn.004e63a0
lea ecx, [ebp - 0x20]
cmp eax, 1
jne 0x5866ff
push 0x694310
call fcn.005452f0
jmp 0x586759
cmp eax, 2
jne 0x586710
push 0x694324
call fcn.005452f0
jmp 0x586759
cmp eax, 4
jne 0x586721
push 0x694334
call fcn.005452f0
jmp 0x586759
cmp eax, 5
jne 0x586732
push 0x694360
call fcn.005452f0
jmp 0x586759
cmp eax, 6
jne 0x586743
push 0x6943b8
call fcn.005452f0
jmp 0x586759
cmp eax, 7
jne 0x586754
push 0x6943d4
call fcn.005452f0
jmp 0x586759
call fcn.005451e0
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 0x6943fc
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
lea ecx, [ebp - 0x20]
call fcn.005435c0
push 0
push 1
push 0x694414
mov edx, edi
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0x20]
mov esi, eax
inc edi
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0
push 0x20019
push 0x628e60
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0
call fcn.0053f8c0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 7
push eax
push 0x694430
lea ecx, [ebp - 0x44]
call fcn.0053f580
lea eax, [ebp - 0x34]
push eax
push 0x694450
lea ecx, [ebp - 0x44]
call fcn.0053f580
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x34]
call fcn.00544f70
push eax
push 0x694480
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 0x6944a8
lea ecx, [ebp - 0x20]
call fcn.00544fe0
push 0
push 1
push 0x6944b8
mov edx, edi
mov ecx, ebx
call fcn.00527c50
mov esi, dword [ebp - 0x918]
lea ecx, [ebp - 0x20]
inc edi
mov dword [esi + 8], eax
call fcn.00544f70
mov edx, dword [esi + 8]
mov ecx, ebx
push eax
push 1
call fcn.00527860
cmp dword [esi + 4], 0
je 0x588dff
mov ecx, dword [ebp - 0x914]
push 0
push 0x19
lea ecx, [ecx + 0x14c0]
call fcn.00513c80
cmp dword [esi + 4], 0
je 0x588dff
push edi
mov ecx, ebx
call fcn.004f25e0
xorps xmm0, xmm0
mov dword [ebp - 0x5c], 0
lea ecx, [ebp - 0x64]
movq qword [ebp - 0x64], xmm0
mov edi, eax
call fcn.005453c0
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x50]
movq qword [ebp - 0x50], xmm0
call fcn.005453c0
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
lea ecx, [ebp - 0x80]
movq qword [ebp - 0x80], xmm0
call fcn.005453c0
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
lea ecx, [ebp - 0x8c]
movq qword [ebp - 0x8c], xmm0
call fcn.005453c0
xorps xmm0, xmm0
mov byte [ebp - 4], 0xb
push 0x1a
lea ecx, [ebp - 0x90c]
movlpd qword [ebp - 0x90c], xmm0
call fcn.004036b0
mov byte [ebp - 4], 0xc
mov edx, 3
mov esi, dword [ebp - 0x90c]
mov ecx, esi
push 2
call fcn.004f5af0
mov dword [ebp - 0x28], eax
test eax, eax
jle 0x586a95
mov dword [ebp - 0x8fc], esi
lea eax, [ebp - 0x8c]
mov ecx, esi
push eax
call fcn.00544f70
lea edx, [ebp - 0x64]
mov ecx, eax
call fcn.004f5990
test eax, eax
je 0x586a7c
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x74]
push eax
push 0
call fcn.00544f70
push eax
call dword [0x5fd43c]
test eax, eax
je 0x586a7c
push ecx
push 0
push dword [ebp - 0x70]
lea ecx, [ebp - 0x50]
push dword [ebp - 0x74]
call fcn.00543ce0
push ecx
push 0
push dword [ebp - 0x38]
lea ecx, [ebp - 0x80]
push dword [ebp - 0x3c]
call fcn.00543ce0
lea ecx, [ebp - 0x64]
call fcn.00544c70
test al, al
je 0x5869ae
push 0x634360
call fcn.005452f0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x61d160
mov ecx, esi
call fcn.00544f70
push eax
push 0x6264cc
lea ecx, [ebp - 0x64]
call fcn.00544f70
push eax
lea ecx, [ebp - 0x20]
call fcn.00544fe0
push 0
push 2
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
mov ecx, dword [ebp - 0x8fc]
mov esi, eax
push 0
push 0
push 0
push 0
push 0x6944d4
inc edi
call fcn.00544f70
push ecx
mov ecx, eax
call fcn.004f5ce0
add esp, 4
mov ecx, 0x627c6c
test al, al
mov eax, 0x6944f0
cmove ecx, eax
push ecx
push 0x6944fc
lea ecx, [ebp - 0x8c]
call fcn.00544f70
push eax
push 0x694514
lea ecx, [ebp - 0x50]
call fcn.00544f70
push eax
push 0x67235c
lea ecx, [ebp - 0x80]
call fcn.00544f70
push eax
lea ecx, [ebp - 0x20]
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
mov esi, dword [ebp - 0x8fc]
add esi, 0xc
sub dword [ebp - 0x28], 1
mov dword [ebp - 0x8fc], esi
jne 0x586936
mov esi, dword [ebp - 0x90c]
push 2
mov edx, 2
mov ecx, esi
call fcn.004f5af0
mov dword [ebp - 0x28], eax
test eax, eax
jle 0x586be6
mov dword [ebp - 0x8fc], esi
lea eax, [ebp - 0x8c]
mov ecx, esi
push eax
call fcn.00544f70
lea edx, [ebp - 0x64]
mov ecx, eax
call fcn.004f5990
test eax, eax
je 0x586bd3
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x74]
push eax
push 0
call fcn.00544f70
push eax
call dword [0x5fd43c]
test eax, eax
je 0x586bd3
push ecx
push 0
push dword [ebp - 0x70]
lea ecx, [ebp - 0x50]
push dword [ebp - 0x74]
call fcn.00543ce0
push ecx
push 0
push dword [ebp - 0x38]
lea ecx, [ebp - 0x80]
push dword [ebp - 0x3c]
call fcn.00543ce0
lea ecx, [ebp - 0x64]
call fcn.00544c70
test al, al
je 0x586b2c
push 0x694538
call fcn.005452f0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x61d160
mov ecx, esi
call fcn.00544f70
push eax
push 0x6264cc
lea ecx, [ebp - 0x64]
call fcn.00544f70
push eax
lea ecx, [ebp - 0x20]
call fcn.00544fe0
push 0
push 2
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694564
lea ecx, [ebp - 0x8c]
mov esi, eax
inc edi
call fcn.00544f70
push eax
push 0x694514
lea ecx, [ebp - 0x50]
call fcn.00544f70
push eax
push 0x67235c
lea ecx, [ebp - 0x80]
call fcn.00544f70
push eax
lea ecx, [ebp - 0x20]
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
mov esi, dword [ebp - 0x8fc]
add esi, 0xc
sub dword [ebp - 0x28], 1
mov dword [ebp - 0x8fc], esi
jne 0x586ab4
push 0x694598
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x586cf0
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x586cf0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x61d160
push 0
push 0x634788
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x694600
lea ecx, [ebp - 0x20]
call fcn.00544fe0
push 0
push 2
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6280c0
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e6460
push eax
push 0x62afe4
lea ecx, [ebp - 0x20]
call fcn.00544fe0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694620
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x62a084
lea ecx, [ebp - 0x20]
call fcn.005435c0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
jne 0x586c11
mov eax, dword [ebp - 0x90c]
test eax, eax
je 0x586d26
push fcn.00545210
lea esi, [eax - 4]
mov byte [ebp - 4], 0xd
push dword [esi]
push 0xc
push eax
call fcn.0041e708
mov eax, dword [esi]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.0041e478
add esp, 8
lea ecx, [ebp - 0x8c]
call fcn.00545210
lea ecx, [ebp - 0x80]
call fcn.00545210
lea ecx, [ebp - 0x50]
call fcn.00545210
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 7
call fcn.00545210
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588dff
mov ecx, dword [ebp - 0x914]
push 0
push 0x1e
lea ecx, [ecx + 0x14c0]
call fcn.00513c80
cmp dword [esi + 4], 0
je 0x588dff
push 0
push 3
push 0x694634
mov edx, edi
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0x20]
mov esi, eax
call fcn.004e9250
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0
push 3
push 0x694668
lea edx, [edi + 1]
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0xd0]
mov esi, eax
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
push 0x66b318
lea ecx, [ebp - 0x50]
movq qword [ebp - 0x50], xmm0
call fcn.00545350
push 0
push 3
push 0x694688
lea edx, [edi + 2]
mov byte [ebp - 4], 0xe
mov ecx, ebx
call fcn.00527c50
mov esi, eax
lea ecx, [ebp - 0x50]
lea eax, [ebp - 0x20]
push eax
call fcn.00544f70
mov edx, 0x6708ac
mov ecx, eax
call fcn.00458a20
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0
push 3
push 0x6946b0
lea edx, [edi + 3]
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0x20]
mov esi, eax
call fcn.005451e0
push eax
lea ecx, [ebp - 0x50]
call fcn.00544f70
mov edx, 0x6706c0
mov ecx, eax
call fcn.00458a20
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6946dc
lea ecx, [ebp - 0x50]
call fcn.005435c0
push 0
push 3
push 0x694704
lea edx, [edi + 4]
mov ecx, ebx
call fcn.00527c50
mov esi, eax
lea ecx, [ebp - 0x50]
lea eax, [ebp - 0x20]
add edi, 5
push eax
call fcn.00544f70
mov edx, 0x6708ac
mov ecx, eax
call fcn.00458a20
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 0
push 0
push 0x1f0
lea ecx, [ebp - 0x20]
call fcn.00544760
mov ecx, eax
call fcn.004e6f40
test eax, eax
jle 0x586f15
push 0
push 3
push 0x69473c
mov edx, edi
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0x20]
mov esi, eax
inc edi
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
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.00458460
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x8f8], ecx
test eax, eax
jle 0x587023
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 0x586fa6
mov dword [ebp - 0x74], eax
jmp 0x586fac
mov dword [ebp - 0x8fc], eax
push 0
push 3
lea ecx, [esi + edx]
call fcn.00544f70
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
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.00544f70
mov edx, 0x6708ac
mov ecx, eax
call fcn.00458a20
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
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 0x586f93
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x587056
push fcn.00545210
lea esi, [eax - 4]
mov byte [ebp - 4], 0x11
push dword [esi]
push 0xc
push eax
call fcn.0041e708
mov eax, dword [esi]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.0041e478
add esp, 8
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x587089
push fcn.00545210
lea esi, [eax - 4]
mov byte [ebp - 4], 0x12
push dword [esi]
push 0xc
push eax
call fcn.0041e708
mov eax, dword [esi]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.0041e478
add esp, 8
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 7
call fcn.00545210
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588dff
push edi
mov ecx, ebx
call fcn.004f1d60
push 0x694778
lea ecx, [ebp - 0xc4]
mov edi, eax
call fcn.004e6820
test eax, eax
je 0x587266
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x587266
nop word [eax + eax]
push 0
push 0x671a20
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
lea ecx, [ebp - 0x20]
call fcn.005452f0
push 7
lea ecx, [ebp - 0x20]
call fcn.00542f40
push 0
push 5
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x672a94
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e6460
push eax
push 0x672ab0
lea ecx, [ebp - 0x20]
call fcn.00544fe0
push ecx
push 0
push 0x672a7c
lea ecx, [ebp - 0xc4]
call fcn.004e6360
push 0
push eax
lea ecx, [ebp - 0x34]
call fcn.00543ce0
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.00544f70
push eax
push 0x694884
lea ecx, [ebp - 0x20]
call fcn.005435c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x69489c
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x6948ac
lea ecx, [ebp - 0x20]
call fcn.005435c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x672ad4
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x6948c8
lea ecx, [ebp - 0x20]
call fcn.005435c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6948ec
push 0
push 0x672b0c
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x621860
lea ecx, [ebp - 0x20]
call fcn.005435c0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
jne 0x5870e0
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588dff
mov ecx, dword [ebp - 0x914]
push 0
push 0x28
lea ecx, [ecx + 0x14c0]
call fcn.00513c80
cmp dword [esi + 4], 0
je 0x588dff
push 0x344
lea eax, [ebp - 0x5a8]
mov dword [ebp - 0x8f8], 0
push 0
push eax
mov dword [ebp - 0x24], 0
call fcn.004201d0
add esp, 0xc
mov dword [ebp - 0x5ac], 0x348
lea eax, [ebp - 0x5ac]
push 1
push eax
push 0
push 0
call dword [0x5fd7f0]
test eax, eax
je 0x58763f
xor esi, esi
nop dword [eax]
test dword [ebp - 0x468], 5
je 0x5875fb
xor esi, esi
lea eax, [ebp - 0x8f0]
push 0x344
push esi
push eax
mov dword [ebp - 0x40], esi
call fcn.004201d0
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 [0x5fd7f0]
test eax, eax
je 0x5875f8
nop dword [eax]
nop word [eax + eax]
test dword [ebp - 0x7b0], 5
mov eax, dword [ebp - 0x8f8]
mov ecx, eax
je 0x5875b5
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.004f1910
test eax, eax
je 0x5873c9
mov ecx, dword [ebp - 0x28]
call fcn.00404500
mov ecx, dword [ebp - 0x8fc]
movsd qword [ebp - 0x74], xmm0
call fcn.00404500
addsd xmm0, qword [ebp - 0x74]
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x5873b7
sqrtsd xmm0, xmm0
jmp 0x5873bc
call fcn.005e3540
divsd xmm0, qword [0x6e3300]
movsd qword [ebp - 0x74], xmm0
push 1
lea eax, [ebp - 0x8b0]
push eax
lea ecx, [ebp - 0x20]
call fcn.00545040
lea ecx, [ebp - 0x34]
call fcn.005451e0
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
lea ecx, [ebp - 0x8c]
movq qword [ebp - 0x8c], xmm0
call fcn.005453c0
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
lea ecx, [ebp - 0x80]
movq qword [ebp - 0x80], xmm0
call fcn.005453c0
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x50]
movq qword [ebp - 0x50], xmm0
call fcn.005453c0
mov byte [ebp - 4], 0x15
movsd xmm0, qword [ebp - 0x74]
ucomisd xmm0, qword [0x6e31d8]
lahf
test ah, 0x44
jnp 0x5874cb
movaps xmm1, xmm0
lea ecx, [ebp - 0x8c]
call fcn.00544450
push 4
lea ecx, [ebp - 0x8c]
call fcn.00543c40
mov ecx, dword [ebp - 0x8fc]
movsx eax, cx
lea ecx, [ebp - 0x80]
push eax
call fcn.005440e0
mov ecx, dword [ebp - 0x28]
movsx eax, cx
lea ecx, [ebp - 0x50]
push eax
call fcn.005440e0
push 0
push 0
push 0
push 0
push 0
push 0x6948f8
lea ecx, [ebp - 0x50]
call fcn.00544f70
push eax
push 0x621860
lea ecx, [ebp - 0x80]
call fcn.00544f70
push eax
push 0x694908
lea ecx, [ebp - 0x8c]
call fcn.00544f70
push eax
push 0x694944
lea ecx, [ebp - 0x34]
call fcn.00544fe0
push 0xdc
lea eax, [ebp - 0x264]
push 0
push eax
call fcn.004201d0
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 [0x5fd7ec]
test eax, eax
je 0x58755a
push dword [ebp - 0x1b8]
lea ecx, [ebp - 0x80]
call fcn.00544050
push dword [ebp - 0x1b4]
lea ecx, [ebp - 0x50]
call fcn.00544050
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6948ec
lea ecx, [ebp - 0x50]
call fcn.00544f70
push eax
push 0x621860
lea ecx, [ebp - 0x80]
call fcn.00544f70
push eax
push 0x694958
lea ecx, [ebp - 0x34]
call fcn.005435c0
lea ecx, [ebp - 0x34]
call fcn.00545180
test eax, eax
je 0x587596
push 0
push 6
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
lea ecx, [ebp - 0x34]
mov esi, eax
inc edi
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
mov esi, dword [ebp - 0x40]
lea ecx, [ebp - 0x50]
call fcn.00545210
lea ecx, [ebp - 0x80]
call fcn.00545210
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 7
call fcn.00545210
push 0x344
lea eax, [ebp - 0x8f0]
inc esi
push 0
push eax
mov dword [ebp - 0x40], esi
call fcn.004201d0
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 [0x5fd7f0]
test eax, eax
jne 0x587340
mov esi, dword [ebp - 0x24]
push 0x344
lea eax, [ebp - 0x5a8]
inc esi
push 0
push eax
mov dword [ebp - 0x24], esi
call fcn.004201d0
add esp, 0xc
mov dword [ebp - 0x5ac], 0x348
lea eax, [ebp - 0x5ac]
push 1
push eax
push esi
push 0
call dword [0x5fd7f0]
test eax, eax
jne 0x5872e0
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588dff
push 0x694978
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x587727
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x587727
push 0
push 7
push 0
push 0x626ca8
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0x694a00
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x38], eax
inc edi
call fcn.004e63a0
lea ecx, [ebp - 0x34]
cmp eax, 4
jne 0x5876b7
push 0x628e20
jmp 0x5876bc
push 0x65526c
call fcn.005452f0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x629e78
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x694a18
lea ecx, [ebp - 0x34]
call fcn.00544f70
push eax
push 0x694a40
lea ecx, [ebp - 0x20]
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527860
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
jne 0x587674
cmp dword [esi + 4], 0
je 0x588dff
mov ecx, dword [ebp - 0x914]
push 0
push 0x32
lea ecx, [ecx + 0x14c0]
call fcn.00513c80
push edi
mov ecx, ebx
call fcn.004f2110
cmp dword [esi + 4], 0
mov edi, eax
je 0x588dff
mov ecx, dword [ebp - 0x914]
push 0
push 0x3c
lea ecx, [ecx + 0x14c0]
call fcn.00513c80
cmp dword [esi + 4], 0
je 0x588dff
push 0
push 9
push 0x694a50
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0
push 0
mov esi, eax
call dword [0x5fd8e8]
test eax, eax
mov edx, 0x694a84
mov ecx, 0x62853c
cmove ecx, edx
mov edx, esi
push ecx
push 1
mov ecx, ebx
call fcn.00527860
push 0
push 9
push 0x694aa0
lea edx, [edi + 1]
mov ecx, ebx
call fcn.00527c50
mov esi, dword [ebp - 0x918]
add edi, 2
cmp dword [esi + 4], 0
mov dword [esi + 0xc], eax
je 0x588dff
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x672558
push 0x694ac8
push 0x694b10
lea ecx, [ebp - 0x20]
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x5879ab
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x5879ab
mov esi, dword [ebp - 0x914]
nop dword [eax]
push 0
push 0xa
push 0
push 0x6280c0
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x672770
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x38], eax
inc edi
call fcn.004e6460
push eax
push 0x694b98
lea ecx, [ebp - 0x20]
call fcn.00544fe0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x67269c
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x694ba8
lea ecx, [ebp - 0x20]
call fcn.005435c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694bc0
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x694bf4
lea ecx, [ebp - 0x20]
call fcn.005435c0
movsd xmm0, qword [esi + 8]
comisd xmm0, xmmword [0x6e3238]
jbe 0x58797d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694c28
push 0
push 0x694c34
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x694c58
lea ecx, [ebp - 0x20]
call fcn.005435c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694c28
push 0
push 0x6726b8
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
push 0x694c80
lea ecx, [ebp - 0x20]
call fcn.005435c0
lea ecx, [ebp - 0x20]
call fcn.00544f70
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527860
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
jne 0x587840
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588dff
mov ecx, dword [ebp - 0x914]
push 0
push 0x46
lea ecx, [ecx + 0x14c0]
call fcn.00513c80
push 0
push 0xb
push 0x694ca0
mov edx, edi
mov ecx, ebx
call fcn.00527c50
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.00543ce0
push dword [ebp - 0x140]
lea ecx, [ebp - 0x34]
push dword [ebp - 0x144]
call fcn.00544340
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694ccc
lea ecx, [ebp - 0x34]
call fcn.00544f70
push eax
push 0x6264cc
lea ecx, [ebp - 0x20]
call fcn.005435c0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
xor esi, esi
cmp dword [ebp - 0x13c], esi
jle 0x587af2
mov dword [ebp - 0x8fc], esi
push esi
lea ecx, [ebp - 0x20]
call fcn.005440e0
sub esp, 0xc
lea ecx, [ebp - 0x20]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x694cdc
call fcn.00543350
push 0
push 0xb
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
inc edi
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0xf0], esi
lea ecx, [esi + 1]
mov esi, ecx
ja 0x587abb
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0x8fc]
add ecx, dword [ebp - 0xe8]
call fcn.00544f70
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527860
add dword [ebp - 0x8fc], 0xc
cmp esi, dword [ebp - 0x13c]
jl 0x587a65
mov dword [ebp - 0x91c], edi
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588dff
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x908], eax
test eax, eax
je 0x587bb8
xor esi, esi
test eax, eax
je 0x587bb2
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 0x694cfc
push esi
call fcn.00544050
mov ecx, eax
call fcn.00543350
push 0
push 0xb
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
inc edi
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0xe4], esi
lea ecx, [esi + 1]
mov esi, ecx
ja 0x587b7b
mov dword [ebp - 0xe4], ecx
mov ecx, dword [ebp - 0x8fc]
add ecx, dword [ebp - 0xdc]
call fcn.00544f70
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527860
add dword [ebp - 0x8fc], 0xc
cmp esi, dword [ebp - 0x908]
jb 0x587b26
mov dword [ebp - 0x91c], edi
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588dff
mov ecx, dword [ebp - 0x914]
push 0
push 0x50
lea ecx, [ecx + 0x14c0]
call fcn.00513c80
cmp dword [esi + 4], 0
je 0x588dff
push 0x40
lea eax, [ebp - 0x184]
push 0
push eax
call fcn.004201d0
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.005453c0
xorps xmm0, xmm0
mov dword [ebp - 0x5c], 0
lea ecx, [ebp - 0x64]
movq qword [ebp - 0x64], xmm0
call fcn.005453c0
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
lea ecx, [ebp - 0x8c]
movq qword [ebp - 0x8c], xmm0
call fcn.005453c0
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
lea ecx, [ebp - 0x80]
movq qword [ebp - 0x80], xmm0
call fcn.005453c0
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 0x19
push eax
call dword [0x5fd304]
test eax, eax
je 0x587d55
push 0
push 0xc
push 0x694d18
mov edx, edi
mov ecx, ebx
call fcn.00527c50
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.00543ce0
push ecx
push 0
push dword [ebp - 0x160]
lea ecx, [ebp - 0x64]
push dword [ebp - 0x164]
call fcn.00543ce0
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.005e27b0
push edx
push eax
lea ecx, [ebp - 0x34]
call fcn.00544340
push 0
push 0
push 0
push 0
push 0
push 0x621cf4
lea ecx, [ebp - 0x34]
call fcn.00544f70
push eax
push 0x694d38
lea ecx, [ebp - 0x64]
call fcn.00544f70
push eax
push 0x694d50
lea ecx, [ebp - 0x50]
call fcn.00544f70
push eax
push 0x694d68
lea ecx, [ebp - 0x20]
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
push 1
push 0x694d78
lea ecx, [ebp - 0x20]
call fcn.00545040
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x587e8e
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x587e8e
push 0
push 0x6280c0
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
lea ecx, [ebp - 0x80]
call fcn.005452f0
push 0
push 0xc
lea ecx, [ebp - 0x80]
call fcn.00544f70
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push ecx
push 2
push 0x694df4
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e6420
push edx
push eax
lea ecx, [ebp - 0x34]
call fcn.00543ce0
push ecx
push 2
push 0x694e10
lea ecx, [ebp - 0xc4]
call fcn.004e6420
push edx
push eax
lea ecx, [ebp - 0x8c]
call fcn.00543ce0
push ecx
push 0
lea ecx, [ebp - 0x80]
call fcn.00544f70
mov ecx, eax
call fcn.0052f960
push edx
push eax
lea ecx, [ebp - 0x50]
call fcn.00543ce0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x50]
call fcn.00544f70
push eax
push 0x628354
lea ecx, [ebp - 0x8c]
call fcn.00544f70
push eax
push 0x694e24
lea ecx, [ebp - 0x34]
call fcn.00544f70
push eax
push 0x694e48
lea ecx, [ebp - 0x20]
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
jne 0x587d93
mov dword [ebp - 0x91c], edi
lea ecx, [ebp - 0x80]
call fcn.00545210
lea ecx, [ebp - 0x8c]
call fcn.00545210
lea ecx, [ebp - 0x64]
call fcn.00545210
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 7
call fcn.00545210
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588dff
mov ecx, dword [ebp - 0x914]
push 0
push 0x55
add ecx, 0x14c0
call fcn.00513c80
cmp dword [esi + 4], 0
je 0x588dff
mov eax, dword [ebp - 0x914]
push ecx
lea ecx, [ebp - 0xc4]
movsd xmm0, qword [eax + 8]
comisd xmm0, xmmword [0x6e3258]
jb 0x587f07
push 0x671d34
jmp 0x587f0c
push 0x671d60
call fcn.004e6880
push 1
push 0x671d88
lea ecx, [ebp - 0x20]
call fcn.00545040
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x587ff2
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x587ff2
nop
push 0
push 0xd
push 0
push 0x6287d4
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0x671df8
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e6360
push 0
push 0
push 0
push 0
push 0
mov ecx, eax
mov edx, 0x694e7c
push 0
push 0
test cl, 0x10
mov eax, 0x694e68
push 0
cmove eax, edx
test ecx, 0x1000
push 0
push eax
mov ecx, 0x694ea0
mov eax, 0x694e8c
cmove eax, ecx
lea ecx, [ebp - 0x20]
push eax
push 0x694eb8
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
jne 0x587f50
jmp 0x588015
push 0
push 0xd
push 0x694f00
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0x694f48
push 1
mov edx, eax
mov ecx, ebx
inc edi
call fcn.00527860
push 1
push 0x694fc0
lea ecx, [ebp - 0x20]
call fcn.00545040
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x5880f5
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x5880f5
push 0
push 0xd
push 0
push 0x6287d4
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0x671df8
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e6360
push 0
push 0
push 0
push 0
push 0
mov ecx, eax
mov edx, 0x694e7c
push 0
push 0
test cl, 0x10
mov eax, 0x694e68
push 0
cmove eax, edx
test ecx, 0x1000
push 0
push eax
mov ecx, 0x694ea0
mov eax, 0x694e8c
cmove eax, ecx
lea ecx, [ebp - 0x20]
push eax
push 0x695038
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
jne 0x588053
jmp 0x588118
push 0
push 0xd
push 0x695088
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0x6950d0
push 1
mov edx, eax
mov ecx, ebx
inc edi
call fcn.00527860
push 1
push 0x671e60
lea ecx, [ebp - 0x20]
call fcn.00545040
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
lea ecx, [ebp - 0xc4]
call fcn.004e6820
test eax, eax
je 0x5881e4
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
je 0x5881e4
push 0
push 0xd
push 0
push 0x6287d4
lea ecx, [ebp - 0xc4]
call fcn.004e6460
push eax
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0x671df8
lea ecx, [ebp - 0xc4]
mov esi, eax
inc edi
call fcn.004e6360
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
test eax, 0x1000
mov ecx, 0x628e20
push 0
mov eax, 0x65526c
cmove eax, ecx
lea ecx, [ebp - 0x20]
push eax
push 0x695140
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
lea ecx, [ebp - 0xc4]
call fcn.004e66d0
test eax, eax
jne 0x588156
push 0
push 0xd
push 0x68fe70
mov edx, edi
mov ecx, ebx
call fcn.00527c50
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.0052b910
test al, al
mov ecx, 0x65526c
mov eax, 0x628e20
cmove ecx, eax
push ecx
push 0x695140
lea ecx, [ebp - 0x20]
call fcn.00544fe0
lea ecx, [ebp - 0x20]
call fcn.00544f70
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
mov eax, dword [ebp - 0x914]
movsd xmm0, qword [eax + 8]
comisd xmm0, xmmword [0x6e3258]
jbe 0x5882ef
push 0
push 0xd
push 0x695188
mov edx, edi
mov ecx, ebx
call fcn.00527c50
push 0
push 0x20019
push 0x6345a0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
mov esi, eax
inc edi
call fcn.0053f8c0
lea eax, [ebp - 0x8fc]
mov dword [ebp - 0x8fc], 0
push eax
push 0x634620
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x28], 0
call fcn.0053f4f0
lea eax, [ebp - 0x28]
push eax
push 0x634668
lea ecx, [ebp - 0x24]
call fcn.0053f4f0
cmp dword [ebp - 0x8fc], 0
jbe 0x5882d6
cmp dword [ebp - 0x28], 0
mov eax, 0x6951c0
ja 0x5882db
mov eax, 0x6951e0
push eax
push 1
mov edx, esi
mov ecx, ebx
call fcn.00527860
lea ecx, [ebp - 0x24]
call fcn.0053f820
push 0
push 0xd
push 0x68fc6c
mov edx, edi
mov ecx, ebx
call fcn.00527c50
mov ecx, dword [ebp - 0x914]
inc edi
mov esi, eax
mov dword [ebp - 0x91c], edi
lea ecx, [ecx + 0x1298]
call fcn.004b27e0
test eax, eax
mov edx, 0x6951c0
mov ecx, 0x6951e0
cmove ecx, edx
mov edx, esi
push ecx
push 1
mov ecx, ebx
call fcn.00527860
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
je 0x588dff
mov ecx, dword [ebp - 0x914]
push 0
push 0x5a
lea ecx, [ecx + 0x14c0]
call fcn.00513c80
cmp dword [esi + 4], 0
je 0x588dff
mov dword [ebp - 0x8f8], 0
lea eax, [ebp - 0x8f8]
mov byte [ebp - 4], 0x1a
push eax
push 0x6803ec
push 1
push 0
push 0x680430
call dword [0x5fdad4]
test eax, eax
jns 0x58839b
mov byte [ebp - 4], 0x1b
jmp 0x5884e7
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 0x695200
mov edx, edi
mov ecx, ebx
call fcn.00527c50
inc edi
mov edx, 0x628e20
cmp word [ebp - 0x8fc], 0
mov ecx, 0x65526c
mov dword [ebp - 0x91c], edi
cmove ecx, edx
mov edx, eax
push ecx
push 1
mov ecx, ebx
call fcn.00527860
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 0x58842b
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588422
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x1e
jmp 0x5884e7
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 0x58845d
mov byte [ebp - 4], 0x1f
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588454
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x20
jmp 0x5884e7
push 0
push 0xe
push 0x69521c
mov edx, edi
mov ecx, ebx
call fcn.00527c50
mov ecx, dword [ebp - 0x28]
inc edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x91c], edi
test ecx, ecx
jne 0x588487
push 0x695248
jmp 0x5884b5
cmp ecx, 1
jne 0x588493
push 0x695294
jmp 0x5884b5
cmp ecx, 2
jne 0x58849f
push 0x6952d8
jmp 0x5884b5
cmp ecx, 3
jne 0x5884ab
push 0x695330
jmp 0x5884b5
cmp ecx, 4
jne 0x5884bd
push 0x695390
lea ecx, [ebp - 0x20]
call fcn.005452f0
lea ecx, [ebp - 0x20]
call fcn.00544f70
mov edx, dword [ebp - 0x38]
mov ecx, ebx
push eax
push 1
call fcn.00527860
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x5884e3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x22
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x5884f7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 7
cmp dword [esi + 4], 0
je 0x588dff
mov edi, dword [ebp - 0x914]
push 0
push 0x5f
lea ecx, [edi + 0x14c0]
call fcn.00513c80
cmp dword [esi + 4], 0
je 0x588dff
movsd xmm2, qword [edi + 8]
call fcn.004ed140
mov dword [ebp - 0x6c], eax
cmp eax, 4
jne 0x58854a
movsd xmm3, qword [edi + 8]
lea edx, [eax - 1]
push 0xffffffffffffffff
mov ecx, 0x635578
call fcn.004ece80
mov dword [ebp - 0x904], 0
lea eax, [ebp - 0x904]
mov byte [ebp - 4], 0x23
push eax
push 0x6803dc
push 1
push 0
push 0x680184
call dword [0x5fdad4]
test eax, eax
jns 0x588594
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588ddf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x588ddf
mov eax, dword [ebp - 0x904]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x54]
movsd xmm0, qword [0x6e3338]
comisd xmm0, xmmword [edi + 8]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x8fc], 4
mov dword [ebp - 0x8f8], 0
jbe 0x588a45
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 0x588a28
mov edx, dword [ebp - 0x40]
cmp edx, 1
jl 0x588a28
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 0x588635
mov byte [ebp - 4], 0x28
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x58862c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x29
jmp 0x58857b
cmp dword [esi + 4], 0
jne 0x588658
mov byte [ebp - 4], 0x2a
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x58864f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x2b
jmp 0x58857b
mov ecx, dword [ebp - 0x40]
xor edi, edi
mov dword [ebp - 0x908], edi
test ecx, ecx
jle 0x588a1f
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.00513c80
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 0x5886d7
mov byte [ebp - 4], 0x2d
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x5886ce
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x25
jmp 0x588a04
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 0x5886f4
mov byte [ebp - 4], 0x2e
jmp 0x5886be
mov eax, dword [ebp - 0x8fc]
cmp eax, 2
je 0x58870a
cmp eax, 3
je 0x58870a
mov byte [ebp - 4], 0x2f
jmp 0x5886be
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 0x588736
mov byte [ebp - 4], 0x32
jmp 0x5886be
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 0x5887b8
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x58879b
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x58879b
mov eax, dword [esi]
test eax, eax
je 0x588779
push eax
call dword [0x5fd57c]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x588790
push eax
call fcn.0041e473
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.0041ea6e
add esp, 8
mov byte [ebp - 4], 0x33
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x5887af
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x25
jmp 0x5889fe
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 [0x5fd580]
mov edi, dword [ebp - 0x28]
test edi, edi
jne 0x58882a
push 0xc
call fcn.0041e683
mov edi, eax
add esp, 4
mov dword [ebp - 0x28], edi
test edi, edi
je 0x588819
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 0x58881b
xor edi, edi
mov byte [ebp - 4], 0x31
mov dword [ebp - 0x28], edi
test edi, edi
je 0x588e5a
push dword [edi]
lea ecx, [ebp - 0x20]
call fcn.005452f0
push ecx
push 8
lea eax, [ebp - 0x34]
push eax
push 0x695404
lea ecx, [ebp - 0x20]
call fcn.005426c0
mov esi, dword [ebp - 0x24]
test al, al
je 0x5888ce
test esi, esi
jne 0x58889f
push 0xc
call fcn.0041e683
mov esi, eax
add esp, 4
mov dword [ebp - 0x24], esi
test esi, esi
je 0x58888e
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 0x588890
xor esi, esi
mov byte [ebp - 4], 0x31
mov dword [ebp - 0x24], esi
test esi, esi
je 0x588e5a
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x61d160
lea ecx, [ebp - 0x34]
call fcn.00544f70
push eax
push 0x6264cc
push dword [esi]
lea ecx, [ebp - 0x34]
call fcn.00544fe0
jmp 0x588924
test esi, esi
jne 0x58891a
push 0xc
call fcn.0041e683
mov esi, eax
add esp, 4
mov dword [ebp - 0x24], esi
test esi, esi
je 0x588909
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 0x58890b
xor esi, esi
mov byte [ebp - 4], 0x31
mov dword [ebp - 0x24], esi
test esi, esi
je 0x588e5a
push dword [esi]
lea ecx, [ebp - 0x34]
call fcn.005452f0
push 0
push 0xf
lea ecx, [ebp - 0x34]
call fcn.00544f70
mov edx, dword [ebp - 0x91c]
mov ecx, ebx
push eax
call fcn.00527c50
inc dword [ebp - 0x91c]
lea ecx, [ebp - 0x20]
mov ebx, eax
call fcn.00544f70
push eax
mov edx, ebx
mov ebx, dword [ebp - 0x920]
push 1
mov ecx, ebx
call fcn.00527860
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x5889a0
mov eax, dword [esi]
test eax, eax
je 0x58897e
push eax
call dword [0x5fd57c]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x588995
push eax
call fcn.0041e473
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.0041ea6e
add esp, 8
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
dec eax
jne 0x5889e0
mov eax, dword [edi]
test eax, eax
je 0x5889be
push eax
call dword [0x5fd57c]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x5889d5
push eax
call fcn.0041e473
add esp, 4
mov dword [edi + 4], 0
push 0xc
push edi
call fcn.0041ea6e
add esp, 8
mov byte [ebp - 4], 0x37
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x5889f4
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 0x588682
mov byte [ebp - 4], 0x38
jmp 0x588d80
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588a3c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x27
jmp 0x58857b
mov dword [ebp - 0x900], 0
push 0x682dec
mov byte [ebp - 4], 0x3a
call dword [0x5fd578]
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 [0x5fd57c]
test esi, esi
jns 0x588ac8
mov byte [ebp - 4], 0x3b
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588a95
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x3c
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588aa9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x3d
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588abd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x914]
jmp 0x588dd9
mov esi, dword [ebp - 0x918]
cmp dword [esi + 4], 0
jne 0x588b1b
mov byte [ebp - 4], 0x3e
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588ae8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x3f
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588afc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x40
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588b10
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x914]
jmp 0x588ddf
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 0x588b85
cmp eax, 3
je 0x588b85
mov byte [ebp - 4], 0x41
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588b52
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x42
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588b66
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x43
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588b10
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x914]
jmp 0x588ddf
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 0x588be7
mov byte [ebp - 4], 0x44
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588bb0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x45
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588bc4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x46
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588b10
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp - 0x914]
jmp 0x588ddf
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.005440e0
mov ecx, dword [ebp - 0x40]
xor edi, edi
test ecx, ecx
jle 0x588d68
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.00513c80
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 0x588c7a
mov byte [ebp - 4], 0x48
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588d3c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x588d3c
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 0x588c91
mov byte [ebp - 4], 0x49
jmp 0x588c64
push dword [ebp - 0x28]
lea ecx, [ebp - 0x34]
call fcn.005452f0
push ecx
push 8
lea eax, [ebp - 0x20]
push eax
push 0x695404
lea ecx, [ebp - 0x34]
call fcn.005426c0
test al, al
jne 0x588cdc
sub esp, 0xc
lea ecx, [ebp - 0x20]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x695410
push edi
call fcn.005440e0
mov ecx, eax
call fcn.00543350
cmp dword [esi + 4], 0
je 0x588d57
push 0
push 0xf
lea ecx, [ebp - 0x20]
call fcn.00544f70
mov esi, dword [ebp - 0x91c]
mov ecx, ebx
push eax
mov edx, esi
call fcn.00527c50
push dword [ebp - 0x28]
inc esi
mov edx, eax
push 1
mov ecx, ebx
mov dword [ebp - 0x91c], esi
call fcn.00527860
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x588d25
push eax
call dword [0x5fd57c]
mov byte [ebp - 4], 0x4b
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588d36
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 0x588c25
jmp 0x588d68
mov byte [ebp - 4], 0x4a
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x588d68
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x4c
mov eax, dword [ebp - 0x900]
test eax, eax
je 0x588d7c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x4d
mov eax, dword [ebp - 0x8f8]
test eax, eax
je 0x588d90
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 0x588dc5
push ecx
push 1
push 0x635578
mov ecx, edi
call fcn.00460150
movsd xmm3, qword [edi + 8]
mov edx, 4
push 0xffffffffffffffff
mov ecx, 0x635578
call fcn.004ece80
mov byte [ebp - 4], 0x4e
mov eax, dword [ebp - 0x904]
test eax, eax
je 0x588dd9
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 0x588dff
push 0
push 0x64
lea ecx, [edi + 0x14c0]
call fcn.00513c80
mov esi, 1
jmp 0x588e01
xor esi, esi
lea ecx, [ebp - 0x44]
call fcn.0053f820
lea ecx, [ebp - 0x144]
call fcn.00402b60
lea ecx, [ebp - 0xc4]
call fcn.004e6aa0
lea ecx, [ebp - 0xd0]
call fcn.00545210
lea ecx, [ebp - 0x34]
call fcn.00545210
lea ecx, [ebp - 0x20]
call fcn.00545210
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.0041e465
mov esp, ebp
pop ebp
ret 4
push 0x8007000e
call fcn.0041e100
int3