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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x578e26
sub esp, 0x7c
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
test ecx, ecx
je 0x578a57
movzx eax, word [edx + ecx*2 - 2]
mov dword [esp + 0x50], eax
lea ecx, [0x6bd840]
mov dword [esp], ecx
lea ecx, [eax + 1]
mov dword [esp + 0x2c], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0044bce0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x80]
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x20], ecx
mov ebx, dword [0x1eaa9f0]
test ebx, ebx
jne 0x578a33
mov dword [edx + 0x18], eax
jmp 0x578a3b
lea edi, [edx + 0x18]
call fcn.00465d80
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x84]
xor eax, eax
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x578a99
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
add esp, 0x7c
ret
inc eax
mov edi, dword [esp + 0x44]
add edi, ebx
mov ebx, dword [esp + 0x40]
add ebx, esi
mov esi, dword [esp + 0x88]
mov esi, ebp
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x84]
cmp eax, ecx
jge 0x578c50
cmp ebx, esi
jle 0x578c17
jbe 0x578e1c
mov dword [esp + 0x44], edi
movzx edi, byte [ebp + esi]
mov ebp, dword [edx + 0x1c]
mov ebx, dword [edx + 0x18]
cmp eax, ebp
jae 0x578e15
lea ebp, [eax + eax*2]
lea ebx, [ebx + ebp*2]
xchg edi, eax
mov byte [ebx], al
xchg edi, eax
xchg edi, eax
test al, 2
xchg edi, eax
je 0x578ade
mov ebx, 1
jmp 0x578aee
xchg edi, eax
test al, 0x10
xchg edi, eax
jne 0x578aec
mov ebx, 2
jmp 0x578aee
xor ebx, ebx
xchg edi, eax
test al, 4
xchg edi, eax
je 0x578b08
mov dword [esp + 0x54], eax
mov eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x54]
jmp 0x578b30
xchg edi, eax
test al, 0x20
xchg edi, eax
jne 0x578b22
mov dword [esp + 0x5c], eax
mov eax, 2
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
jmp 0x578b30
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x4c], ebp
lea ebp, [esi + 1]
xchg edi, eax
test al, 8
xchg edi, eax
je 0x578bd5
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x88]
cmp ebx, ebp
jle 0x578bde
jbe 0x578e0c
mov ebp, dword [esp + 0x84]
movzx ebp, byte [esi + ebp + 1]
lea ebx, [eax + ebp + 1]
cmp ebx, ecx
jle 0x578b79
mov ebp, dword [esp + 0x50]
mov ebx, ebp
sub ebp, eax
jmp 0x578b7d
mov ebx, dword [esp + 0x50]
xchg edi, eax
mov byte [esp + 0x27], al
xchg edi, eax
mov dword [esp + 0x3c], esi
mov ebx, dword [edx + 0x20]
mov esi, dword [edx + 0x18]
lea edi, [ebp + eax]
mov dword [esp + 0x48], edi
lea edi, [ebp + eax + 1]
cmp ebx, edi
jb 0x578e03
mov dword [esp + 0x28], ebp
lea ebp, [eax + 1]
cmp edi, ebp
jb 0x578dfa
mov ebp, dword [esp + 0x4c]
shl ebp, 1
sub ebx, eax
dec ebx
neg ebx
add ebp, 6
sar ebx, 0x1f
and ebx, ebp
add ebx, esi
movzx ebp, byte [esp + 0x27]
mov esi, dword [esp + 0x28]
xor eax, eax
jmp 0x578dc6
mov esi, dword [esp + 0x30]
jmp 0x578a71
lea eax, [0x6a9700]
mov dword [esp], eax
call fcn.0040be50
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x25
lea ecx, [0x6fe823]
mov dword [eax], ecx
lea ecx, [0x785138]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
add esp, 0x7c
ret
lea eax, [0x6a9700]
mov dword [esp], eax
call fcn.0040be50
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x25
lea ecx, [0x6fe823]
mov dword [eax], ecx
lea ecx, [0x785138]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
add esp, 0x7c
ret
cmp ebx, esi
jb 0x578db2
mov eax, edi
mov edi, dword [esp + 0x8c]
sub edi, esi
sub ebx, esi
mov ecx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and esi, edi
add ebp, esi
mov esi, dword [esp + 0x40]
lea edi, [eax + esi]
cmp ebx, edi
jl 0x578cf5
cmp eax, ecx
ja 0x578da9
cmp ecx, edi
jb 0x578da0
cmp eax, edi
ja 0x578d99
mov ebx, dword [edx + 0x18]
mov edi, dword [edx + 0x1c]
mov edx, dword [edx + 0x20]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
sub ecx, eax
mov dword [esp + 0x38], ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
add eax, ebp
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edx
call fcn.00578e30
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
add esp, 0x7c
ret
mov dword [esp + 0x50], ebx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp], edi
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b600]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b600]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
lea eax, [0x6fc70f]
mov dword [esp], eax
mov dword [esp + 4], 0x20
lea eax, [esp + 0x6c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004cde70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
add esp, 0x7c
ret
mov ecx, edi
call fcn.00465e60
mov edx, ecx
mov ecx, edi
call fcn.00465e40
mov edx, ecx
mov ecx, eax
call fcn.00465e40
mov eax, esi
mov ecx, ebx
call fcn.00465e60
lea edi, [eax + eax*2]
lea edi, [ebx + edi*2]
xchg ebp, eax
mov byte [edi], al
xchg ebp, eax
inc eax
cmp eax, esi
jge 0x578dce
jb 0x578dbb
jmp 0x578df3
mov edi, dword [esp + 0x3c]
lea ebp, [edi + 2]
mov edi, dword [esp + 0x34]
mov eax, edi
imul edi, esi
lea ebx, [eax + edi]
mov edi, dword [esp + 0x30]
imul esi, edi
add esi, edi
mov eax, dword [esp + 0x48]
jmp 0x578a71
mov ecx, esi
call fcn.00465e00
mov eax, ebp
mov ecx, edi
call fcn.00465e60
mov ecx, edi
mov edx, ebx
call fcn.00465e40
mov eax, ebp
mov ecx, ebx
call fcn.00465e00
mov ecx, ebp
call fcn.00465e00
mov eax, esi
mov ecx, ebx
call fcn.00465e00
nop
call fcn.004649b0
jmp fcn.005789c0