Function at 0x5eee38
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc64
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x394], ebx
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
test esi, esi
js 0x5eee5d
mov edi, dword [ebx + esi*4]
dec esi
push edi
jns 0x5eee56
mov dword [ebp + 0x14], esp
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov esi, eax
xor eax, eax
push ebp
push 0x5f0232
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x8e6998]
mov edx, dword [eax]
mov dword [ebp - 0x38], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [0x8e6f64]
mov eax, dword [eax]
call eax
pop ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0x28]
mov ecx, dword [0x8e6998]
cmp edx, dword [ecx + 4]
jne 0x5eeeca
cmp eax, dword [ecx]
jne 0x5eeeca
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x30]
mov dword [eax + 0x28], ecx
mov ecx, dword [edx + 0x34]
mov dword [eax + 0x2c], ecx
cmp dword [ebp + 8], 0
jne 0x5eeef6
lea eax, [ebp - 0x210]
push eax
mov eax, dword [0x8e6c54]
mov eax, dword [eax]
call eax
pop ecx
xor eax, eax
mov dword [ebp - 0x200], eax
xor eax, eax
mov dword [ebp - 0x1fc], eax
jmp 0x5eefb9
mov eax, dword [ebp + 8]
push esi
mov esi, eax
lea edi, [ebp - 0x210]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov ecx, dword [0x8e6998]
cmp edx, dword [ecx + 4]
jne 0x5eef20
cmp eax, dword [ecx]
je 0x5eef68
mov eax, dword [0x8e6438]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [ebp + 8]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x30]
mov dword [eax + 0x28], ecx
mov ecx, dword [edx + 0x34]
mov dword [eax + 0x2c], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [0x8e6998]
cmp edx, dword [ecx + 4]
jne 0x5eef7d
cmp eax, dword [ecx]
je 0x5eefaf
mov eax, dword [0x8e6438]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [ebp + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x5efe4e
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x28]
mov dword [eax + 0x30], ecx
mov ecx, dword [edx + 0x2c]
mov dword [eax + 0x34], ecx
cmp dword [ebp - 0x1fc], 0
je 0x5ef04b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
cmp eax, dword [ebp - 0x1fc]
je 0x5ef04b
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3c], 0
jne 0x5eeff4
cmp dword [esi + 0x268], 0
jg 0x5eeffd
cmp dword [esi + 0x268], 1
jle 0x5ef04b
lea eax, [ebp - 0x394]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x39c], eax
mov byte [ebp - 0x398], 0
lea edx, [ebp - 0x39c]
xor ecx, ecx
mov eax, 0x5f0260
call fcn.00418808
mov eax, dword [ebp - 0x394]
push eax
call fcn.005b042c
mov ecx, 3
mov edx, esi
call fcn.005b1078
mov eax, dword [ebp - 4]
mov dword [eax + 0x3c], 1
xor eax, eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x200]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0
je 0x5ef451
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xd0]
sub eax, 1
jb 0x5ef23c
je 0x5ef0a1
sub eax, 2
je 0x5ef3e8
jmp 0x5ef445
cmp dword [ebp + 8], 0
je 0x5ef140
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
add eax, eax
cmp eax, 0x2ee00
jle 0x5ef102
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
add eax, eax
cmp eax, dword [esi + 0x2d8]
jle 0x5ef140
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
add eax, eax
mov dword [esi + 0x2d8], eax
mov eax, dword [esi + 0x2d4]
push eax
mov eax, dword [0x8e6cd0]
mov eax, dword [eax]
call eax
pop ecx
mov eax, dword [esi + 0x2d8]
push eax
mov eax, dword [0x8e6dd0]
mov eax, dword [eax]
call eax
pop ecx
mov dword [esi + 0x2d4], eax
jmp 0x5ef140
cmp dword [esi + 0x2d8], 0x2ee00
jae 0x5ef140
mov dword [esi + 0x2d8], 0x2ee00
mov eax, dword [esi + 0x2d4]
push eax
mov eax, dword [0x8e6cd0]
mov eax, dword [eax]
call eax
pop ecx
mov eax, dword [esi + 0x2d8]
push eax
mov eax, dword [0x8e6dd0]
mov eax, dword [eax]
call eax
pop ecx
mov dword [esi + 0x2d4], eax
mov eax, dword [esi + 0x2d8]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x28]
push eax
mov eax, dword [esi + 0x2d4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
push eax
mov eax, dword [0x8e70c4]
mov eax, dword [eax]
call eax
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jge 0x5ef186
mov dword [ebp - 0xc], 0xffffffff
jmp 0x5f0219
cmp dword [ebp - 0x14], 0
jne 0x5ef1b6
mov eax, dword [ebp - 0x28]
cmp eax, dword [esi + 0x2d8]
jne 0x5ef1b6
push 0x5f02c4
call fcn.005b042c
mov ecx, 4
mov edx, esi
call fcn.005b1078
mov eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x200], eax
mov eax, dword [ebp - 0x14]
sub dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
setg al
and eax, 0x7f
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x5efe4e
mov eax, dword [esi + 0x2d4]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 4]
mov edx, dword [edx + 8]
imul dword [edx + 0x40]
cdq
push edx
push eax
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
mov eax, dword [ebp - 0x48]
cdq
push edx
push eax
mov eax, dword [0x8e6d78]
mov edx, dword [eax + 4]
mov eax, dword [eax]
call fcn.00409410
call fcn.004093c8
call fcn.00409410
mov ecx, dword [ebp - 4]
add dword [ecx + 0x28], eax
adc dword [ecx + 0x2c], edx
jmp 0x5ef541
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 4]
mov edx, dword [edx + 8]
imul dword [edx + 0x2c]
lea eax, [eax + eax*2]
sar eax, 1
jns 0x5ef25e
adc eax, 0
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x1a8]
push eax
mov eax, dword [0x8e6a3c]
mov eax, dword [eax]
call eax
pop ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x30]
mov dword [ebp - 0x208], edx
mov edx, dword [eax + 0x34]
mov dword [ebp - 0x204], edx
mov eax, dword [0x8e6998]
mov edx, dword [eax]
mov dword [ebp - 0x38], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x34], edx
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1a8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
push eax
mov eax, dword [0x8e6f68]
mov eax, dword [eax]
call eax
add esp, 0x10
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x160]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
fstp dword [eax + 0x4c]
wait
cmp dword [ebp - 0x14], 0
jge 0x5ef2f6
mov dword [ebp - 0xc], 0xffffffff
jmp 0x5f0219
cmp dword [ebp - 0x2c], 0
je 0x5efe6b
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xb8]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0xb4]
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x30]
mov dword [eax + 0x28], ecx
mov ecx, dword [edx + 0x34]
mov dword [eax + 0x2c], ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0x20], 0
je 0x5ef3b5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
cmp dword [eax + 0x64], 0
je 0x5ef357
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x64]
mov eax, dword [eax + 0x24]
inc eax
mov dword [ebp - 0x84], eax
jmp 0x5ef36c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x354]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x24]
cdq
push edx
push eax
mov eax, dword [ebp - 0x84]
cdq
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x20]
cdq
push edx
push eax
mov eax, dword [0x8e6d78]
mov edx, dword [eax + 4]
mov eax, dword [eax]
call fcn.004093c8
call fcn.004093c8
call fcn.00409410
mov ecx, dword [ebp - 4]
add dword [ecx + 0x28], eax
adc dword [ecx + 0x2c], edx
xor eax, eax
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 0
jne 0x5ef541
lea ecx, [ebp - 0x1a8]
mov edx, dword [ebp - 4]
mov eax, esi
call fcn.005ec9f8
jmp 0x5ef541
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
push eax
mov eax, dword [0x8e62a0]
mov eax, dword [eax]
call eax
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jge 0x5ef425
mov dword [ebp - 0xc], 0xffffffff
jmp 0x5f0219
cmp dword [ebp - 0x2c], 0
je 0x5efe6b
lea eax, [ebp - 0x1c8]
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x1fc], eax
jmp 0x5ef541
mov dword [ebp - 0xc], 0xffffffff
jmp 0x5f0219
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xd0]
sub eax, 1
jb 0x5ef4ab
jne 0x5ef539
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x3c]
cdq
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x48]
cdq
push edx
push eax
mov eax, dword [0x8e6d78]
mov edx, dword [eax + 4]
mov eax, dword [eax]
call fcn.004093c8
call fcn.00409410
mov ecx, dword [ebp - 4]
add dword [ecx + 0x28], eax
adc dword [ecx + 0x2c], edx
jmp 0x5ef539
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0x20], 0
je 0x5ef539
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
cmp dword [eax + 0x64], 0
je 0x5ef4db
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x64]
mov eax, dword [eax + 0x24]
inc eax
mov dword [ebp - 0x84], eax
jmp 0x5ef4f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x354]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x24]
cdq
push edx
push eax
mov eax, dword [ebp - 0x84]
cdq
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x20]
cdq
push edx
push eax
mov eax, dword [0x8e6d78]
mov edx, dword [eax + 4]
mov eax, dword [eax]
call fcn.004093c8
call fcn.004093c8
call fcn.00409410
mov ecx, dword [ebp - 4]
add dword [ecx + 0x28], eax
adc dword [ecx + 0x2c], edx
xor eax, eax
mov dword [ebp - 0x1fc], eax
cmp byte [esi + 0xd8], 0
je 0x5ef637
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 0
jne 0x5ef637
cmp dword [esi + 0x1f4], 0
jne 0x5ef574
cmp dword [esi + 0x1f0], 0
je 0x5ef59b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
cmp edx, dword [esi + 0x1f4]
jne 0x5ef595
cmp eax, dword [esi + 0x1f0]
jb 0x5ef637
jmp 0x5ef59b
jl 0x5ef637
mov eax, dword [ebp + 0xc]
dec eax
test eax, eax
jl 0x5ef637
inc eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax]
cmp dword [ebx + 0x1a0], 0
je 0x5ef628
mov eax, dword [ebx + 8]
cmp eax, dword [ebp - 8]
jne 0x5ef628
cmp dword [ebp - 0xa8], 0
jne 0x5ef5f7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x130]
mov dword [ebp - 0xa8], edx
mov edx, dword [eax + 0x134]
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x30]
mov dword [ebp - 0x170], edx
mov edx, dword [eax + 0x34]
mov dword [ebp - 0x16c], edx
push 1
lea eax, [ebp - 0x1a8]
push eax
mov eax, dword [ebx + 0x1a0]
push eax
mov eax, dword [0x8e706c]
mov eax, dword [eax]
call eax
add esp, 0xc
add dword [ebp - 0x8c], 4
dec dword [ebp - 0x88]
jne 0x5ef5b7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 1
jne 0x5ef732
cmp word [esi + 0x3aa], 0
je 0x5ef69f
mov eax, dword [ebp - 4]
push dword [eax + 0x34]
push dword [eax + 0x30]
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x44]
push eax
mov ecx, dword [esi + 0x2d4]
mov edx, esi
mov eax, dword [esi + 0x3ac]
call dword [esi + 0x3a8]
cmp dword [esi + 0x258], 0x100
je 0x5ef732
mov eax, dword [esi + 0x2d4]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x28]
sar eax, 1
jns 0x5ef6c2
adc eax, 0
dec eax
test eax, eax
jl 0x5ef732
inc eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x4c]
movsx eax, word [eax]
imul dword [esi + 0x258]
add eax, 0x80
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
jge 0x5ef6f8
mov eax, dword [ebp - 0x50]
shr eax, 8
or eax, 0xff000000
mov dword [ebp - 0x50], eax
jmp 0x5ef6fc
shr dword [ebp - 0x50], 8
cmp dword [ebp - 0x50], 0xffff8000
jge 0x5ef70c
mov dword [ebp - 0x50], 0xffff8000
cmp dword [ebp - 0x50], 0x7fff
jle 0x5ef71c
mov dword [ebp - 0x50], 0x7fff
mov eax, dword [ebp - 0x4c]
movzx edx, word [ebp - 0x50]
mov word [eax], dx
add dword [ebp - 0x4c], 2
dec dword [ebp - 0x88]
jne 0x5ef6ce
cmp byte [esi + 0x24c], 0
je 0x5ef7b9
mov eax, dword [0x8e6d78]
push dword [eax + 4]
push dword [eax]
push 0
push 0xf4240
mov eax, dword [ebp - 4]
push dword [eax + 0x34]
push dword [eax + 0x30]
mov eax, dword [0x8e7030]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov eax, dword [0x8e6b78]
mov eax, dword [eax]
call eax
mov ecx, dword [ebp - 4]
sub eax, dword [ecx + 0x20]
sbb edx, dword [ecx + 0x24]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
sub eax, dword [ebp - 0x60]
sbb edx, dword [ebp - 0x5c]
cmp edx, 0
jne 0x5ef799
cmp eax, 0x3e8
jbe 0x5ef7b9
jmp 0x5ef79b
jle 0x5ef7b9
push 0
push 0x3e8
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
sub eax, dword [ebp - 0x60]
sbb edx, dword [ebp - 0x5c]
call fcn.00409410
push eax
call fcn.0041f244
cmp dword [esi + 0x1f4], 0
jne 0x5ef7c9
cmp dword [esi + 0x1f0], 0
je 0x5ef7f0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
cmp edx, dword [esi + 0x1f4]
jne 0x5ef7ea
cmp eax, dword [esi + 0x1f0]
jb 0x5efe3a
jmp 0x5ef7f0
jl 0x5efe3a
mov eax, dword [ebp + 0xc]
dec eax
test eax, eax
jl 0x5efe3a
inc eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax]
mov eax, dword [ebx + 8]
cmp eax, dword [ebp - 8]
jne 0x5efe27
cmp byte [esi + 0xd8], 0
je 0x5ef862
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 0
jne 0x5ef862
cmp dword [ebx + 0x19c], 0
je 0x5ef862
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
push eax
mov eax, dword [0x8e6d28]
mov eax, dword [eax]
call eax
pop ecx
test eax, eax
jne 0x5ef862
xor eax, eax
jmp 0x5ef864
mov al, 1
mov byte [ebp - 0x39], al
jmp 0x5efe1d
cmp byte [esi + 0xd8], 0
je 0x5ef92b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 0
jne 0x5ef92b
cmp dword [ebx + 0x19c], 0
je 0x5ef92b
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov edx, dword [eax + 0x58]
mov dword [ebp - 0x44], edx
mov edx, dword [eax + 0x5c]
mov dword [ebp - 0x40], edx
push 0
lea eax, [ebx + 0x1a4]
push eax
mov eax, dword [ebx + 0x19c]
push eax
mov eax, dword [0x8e63e8]
mov eax, dword [eax]
call eax
add esp, 0xc
test eax, eax
jl 0x5efdbc
cmp dword [ebx + 0x1a4], 0
je 0x5ef92b
mov eax, dword [ebx + 0x1a4]
push eax
lea eax, [ebp - 0x1a8]
push eax
mov eax, dword [0x8e6400]
mov eax, dword [eax]
call eax
add esp, 8
mov eax, dword [0x8e6438]
push dword [eax + 4]
push dword [eax]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
mov eax, dword [ebx + 0x1a4]
push dword [eax + 0x4c]
push dword [eax + 0x48]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
mov eax, dword [esi + 0x2c]
mov edx, dword [ebx]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x10], eax
cmp dword [ebx + 0x10], 0
je 0x5efa69
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0
jne 0x5ef95d
mov ecx, 0xcd9
mov edx, 0x5f0348
mov eax, 0x5f03ac
call fcn.00406b48
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xd0]
sub eax, 1
jb 0x5ef99b
je 0x5ef97e
sub eax, 2
je 0x5efa2a
jmp 0x5efa4e
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov ecx, ebx
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.005eb328
jmp 0x5efdbc
cmp byte [esi + 0xd8], 0
je 0x5ef9e3
mov eax, dword [ebx + 0x1a4]
cmp dword [eax + 0x60], 0
je 0x5ef9e3
fld dword [ebx + 0x168]
fcomp dword [0x5f03d0]
wait
fnstsw ax
sahf
jne 0x5ef9e3
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov edx, dword [ebx + 0x1a4]
mov edx, dword [edx + 0x60]
mov ecx, dword [edx + 8]
mov dword [eax + 0x17c], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0x180], ecx
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x1a8]
push eax
lea eax, [ebp - 0x64]
push eax
mov ecx, ebx
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.005ed3a0
cmp dword [esi + 0x23c], 0
je 0x5efdbc
cmp dword [ebp - 0x64], 0
je 0x5efdbc
mov eax, dword [ebp - 0x64]
push eax
mov ecx, ebx
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.005edf1c
jmp 0x5efdbc
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x1c8]
push eax
mov eax, dword [ebp + 8]
push dword [eax + 4]
push dword [eax]
mov ecx, ebx
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.005ecc98
jmp 0x5efdbc
mov ecx, 0x5f03e0
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
jmp 0x5efdbc
mov eax, dword [ebx + 0xc]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [0x8e6438]
push dword [eax + 4]
push dword [eax]
push dword [esi + 0x1f4]
push dword [esi + 0x1f0]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
lea eax, [ebp - 0x370]
push eax
mov eax, dword [0x8e6c54]
mov eax, dword [eax]
call eax
pop ecx
cmp dword [ebx + 0x14], 0
jne 0x5efad5
mov eax, dword [ebp + 8]
test byte [eax + 0x1c], 1
jne 0x5efad5
cmp dword [esi + 0x248], 0
jne 0x5efad5
cmp byte [esi + 0xd8], 0
jne 0x5efdbc
jmp 0x5efe1d
lea eax, [ebp - 0x328]
push eax
mov eax, dword [0x8e6a3c]
mov eax, dword [eax]
call eax
pop ecx
lea eax, [ebp - 0x328]
mov edx, dword [ebx + 0xc]
mov edx, dword [edx + 8]
mov dword [edx + 0x184], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
and eax, 1
mov dword [ebp - 0x2f8], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 1
jne 0x5efb28
mov eax, dword [ebp - 0x24]
cdq
add dword [esi + 0x280], eax
adc dword [esi + 0x284], edx
jmp 0x5efb4f
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 0
jne 0x5efb4f
mov eax, dword [ebp - 0x24]
cdq
add dword [esi + 0x278], eax
adc dword [esi + 0x27c], edx
add dword [ebx + 0x20], 1
adc dword [ebx + 0x24], 0
mov eax, dword [ebx + 4]
mov dword [ebp - 0x358], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [0x8e6998]
cmp edx, dword [ecx + 4]
jne 0x5efb6d
cmp eax, dword [ecx]
je 0x5efbac
mov eax, dword [ebx + 0xc]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [ebp + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
sub eax, dword [ebp - 0x70]
sbb edx, dword [ebp - 0x6c]
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x36c], edx
jmp 0x5efbc2
mov eax, dword [0x8e6998]
mov edx, dword [eax]
mov dword [ebp - 0x370], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x36c], edx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov ecx, dword [0x8e6998]
cmp edx, dword [ecx + 4]
jne 0x5efbd8
cmp eax, dword [ecx]
je 0x5efc12
mov eax, dword [ebx + 0xc]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [ebp + 8]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0x368], eax
mov dword [ebp - 0x364], edx
jmp 0x5efc46
mov eax, dword [ebx + 0xc]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [0x8e6438]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 4]
push dword [eax + 0x34]
push dword [eax + 0x30]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0x368], eax
mov dword [ebp - 0x364], edx
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
sub dword [ebp - 0x368], eax
sbb dword [ebp - 0x364], edx
mov eax, dword [ebx + 0xc]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
cdq
push edx
push eax
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0x348], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd4], 0x1c
je 0x5efd11
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd4], 1
je 0x5efd11
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd4], 2
je 0x5efd11
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
and eax, 1
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x1c]
push eax
lea eax, [ebp - 0x35c]
push eax
lea eax, [ebp - 0x360]
push eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x64]
push eax
mov eax, dword [0x8e68dc]
mov eax, dword [eax]
call eax
add esp, 0x1c
test eax, eax
je 0x5efd23
mov eax, dword [0x8e68e0]
mov eax, dword [eax]
mov dword [ebp - 0x344], eax
jmp 0x5efd23
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x360], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x35c], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
test byte [eax + 0x28], 0x20
je 0x5efd84
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x2c]
push eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x28]
push eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x34]
push eax
mov eax, dword [ebp - 0x360]
push eax
lea eax, [ebp - 0x390]
push eax
mov eax, dword [0x8e6eb0]
mov eax, dword [eax]
call eax
add esp, 0x14
lea eax, [ebp - 0x390]
mov dword [ebp - 0x360], eax
mov dword [ebp - 0x35c], 0x20
or dword [ebp - 0x354], 1
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebx + 0x28]
push eax
lea ecx, [ebp - 0x370]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.005eb08c
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
inc dword [eax + 0x4c]
inc dword [ebx + 0x14]
lea eax, [ebp - 0x370]
push eax
mov eax, dword [0x8e689c]
mov eax, dword [eax]
call eax
pop ecx
cmp byte [esi + 0xd8], 0
je 0x5efdfa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 0
jne 0x5efdfa
cmp dword [ebx + 0x19c], 0
je 0x5efdfa
mov eax, dword [ebx + 0x19c]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
push eax
mov eax, dword [0x8e6d28]
mov eax, dword [eax]
call eax
pop ecx
test eax, eax
jne 0x5efdfe
xor eax, eax
jmp 0x5efe00
mov al, 1
mov byte [ebp - 0x39], al
cmp byte [esi + 0xd8], 0
je 0x5efe1d
mov eax, dword [ebx + 0x1a4]
push eax
mov eax, dword [0x8e7058]
mov eax, dword [eax]
call eax
pop ecx
cmp byte [ebp - 0x39], 0
jne 0x5ef86c
add dword [ebp - 0x8c], 4
dec dword [ebp - 0x88]
jne 0x5ef80c
cmp dword [ebp - 0x30], 0
je 0x5efe4e
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [0x8e6b68]
mov eax, dword [eax]
call eax
pop ecx
cmp dword [ebp - 0x1fc], 0
jg 0x5eefb9
cmp dword [ebp + 8], 0
jne 0x5efe6b
cmp dword [ebp - 0x2c], 0
jne 0x5eefb9
cmp dword [ebp + 8], 0
jne 0x5f0214
mov eax, dword [ebp + 0xc]
dec eax
test eax, eax
jl 0x5f0214
inc eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax]
mov eax, dword [ebx + 8]
cmp eax, dword [ebp - 8]
jne 0x5f0201
mov eax, dword [ebx + 0xc]
mov edi, dword [eax + 8]
mov eax, dword [esi + 0x2c]
mov edx, dword [ebx]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 1
jne 0x5efecf
cmp dword [edi + 0x48], 1
jle 0x5f0201
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
cmp dword [eax + 0xd0], 0
jne 0x5efeee
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
test byte [eax + 0x28], 0x20
jne 0x5f0201
cmp dword [ebx + 0x10], 0
je 0x5f0201
lea eax, [ebp - 0x370]
push eax
mov eax, dword [0x8e6c54]
mov eax, dword [eax]
call eax
pop ecx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x358], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xd0]
sub eax, 1
jb 0x5f00bf
jne 0x5f015a
mov eax, dword [ebx + 0x194]
push eax
mov eax, dword [0x8e639c]
mov eax, dword [eax]
call eax
pop ecx
mov dword [ebp - 0x74], eax
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x74], 0
jle 0x5f0061
mov eax, dword [edi + 0x44]
push eax
mov eax, dword [0x8e6f64]
mov eax, dword [eax]
call eax
pop ecx
mov dword [ebp - 0x78], eax
mov eax, dword [edi + 0x48]
mov dword [ebp - 0x7c], eax
push 0
mov eax, dword [ebp - 0x74]
push eax
mov eax, dword [esi + 0x2c0]
push eax
mov eax, dword [ebx + 0x194]
push eax
mov eax, dword [0x8e6eac]
mov eax, dword [eax]
call eax
add esp, 0x10
mov eax, dword [edi + 0x78]
test byte [eax + 0x20], 0x40
je 0x5effa5
mov eax, dword [edi + 0x40]
imul dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x74]
pop edx
mov ecx, edx
cdq
idiv ecx
mov dword [edi + 0x48], eax
jmp 0x5f0009
mov eax, dword [edi + 0x48]
imul dword [ebp - 0x78]
imul dword [edi + 0x40]
mov dword [ebp - 0x80], eax
mov eax, dword [esi + 0x2cc]
cmp eax, dword [ebp - 0x80]
jge 0x5effd2
mov ecx, 0x5f0414
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
cmp dword [edi + 0x44], 0
jne 0x5efff3
mov edx, dword [ebp - 0x80]
sub edx, dword [ebp - 0x74]
mov eax, dword [esi + 0x2c0]
add eax, dword [ebp - 0x74]
mov ecx, 0x80
call fcn.00404d90
jmp 0x5f0009
mov edx, dword [ebp - 0x80]
sub edx, dword [ebp - 0x74]
mov eax, dword [esi + 0x2c0]
add eax, dword [ebp - 0x74]
xor ecx, ecx
call fcn.00404d90
mov eax, dword [esi + 0x2c0]
push eax
mov eax, dword [esi + 0x2f0]
push eax
mov eax, dword [esi + 0x2f4]
push eax
push edi
mov eax, dword [0x8e67f8]
mov eax, dword [eax]
call eax
add esp, 0x10
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 0x3c]
cdq
push edx
push eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x38]
cdq
push edx
push eax
mov eax, dword [edi + 0x48]
mov edx, dword [ebx + 0xc]
imul dword [edx + 0x3c]
cdq
push edx
push eax
mov eax, dword [0x8e7030]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0x348], eax
mov eax, dword [ebp - 0x7c]
mov dword [edi + 0x48], eax
cmp dword [ebp - 0x14], 0
jg 0x5f0087
push 0
mov eax, dword [esi + 0x2f0]
push eax
mov eax, dword [esi + 0x2f4]
push eax
push edi
mov eax, dword [0x8e67f8]
mov eax, dword [eax]
call eax
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jge 0x5f00a3
mov ecx, 0x5f044c
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
mov eax, dword [ebp - 0x14]
cdq
add dword [esi + 0x280], eax
adc dword [esi + 0x284], edx
or dword [ebp - 0x354], 1
jmp 0x5f0161
push 0
mov eax, dword [esi + 0x2f0]
push eax
mov eax, dword [esi + 0x2f4]
push eax
push edi
mov eax, dword [0x8e7148]
mov eax, dword [eax]
call eax
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jge 0x5f00fb
mov ecx, 0x5f0484
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
mov eax, dword [ebp - 0x14]
cdq
add dword [esi + 0x278], eax
adc dword [esi + 0x27c], edx
cmp dword [edi + 0x184], 0
je 0x5f0127
mov eax, dword [edi + 0x184]
cmp dword [eax + 0x30], 0
je 0x5f0127
or dword [ebp - 0x354], 1
cmp dword [ebx + 0x198], 0
je 0x5f0161
cmp dword [edi + 0x10c], 0
je 0x5f0161
mov eax, dword [edi + 0x10c]
push eax
push 0x5f04b0
mov eax, dword [ebx + 0x198]
push eax
mov eax, dword [0x8e6280]
mov eax, dword [eax]
call eax
add esp, 0xc
jmp 0x5f0161
mov dword [ebp - 0x14], 0xffffffff
cmp dword [ebp - 0x14], 0
jle 0x5f0201
mov eax, dword [esi + 0x2f4]
mov dword [ebp - 0x360], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x35c], eax
cmp dword [edi + 0x184], 0
je 0x5f01e1
mov eax, dword [edi + 0x184]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
push edx
push eax
mov eax, dword [0x8e6998]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, dword [esp + 4]
jne 0x5f01aa
cmp eax, dword [esp]
pop edx
pop eax
je 0x5f01e1
mov eax, dword [ebx + 0xc]
push dword [eax + 0x3c]
push dword [eax + 0x38]
push dword [edi + 0x24]
push dword [edi + 0x20]
mov eax, dword [edi + 0x184]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x36c], edx
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebx + 0x28]
push eax
lea ecx, [ebp - 0x370]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.005eb08c
jmp 0x5efef8
add dword [ebp - 0x8c], 4
dec dword [ebp - 0x88]
jne 0x5efe91
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5f0239
lea eax, [ebp - 0x394]
call fcn.00407ddc
ret