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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x57942e
sub esp, 0x54
mov eax, dword [esp + 0x5c]
cmp eax, 4
jge 0x5793a8
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
test al, al
je 0x57937c
test ebx, ebx
je 0x57934a
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], ebp
mov byte [esp + 0x2f], al
mov eax, dword [0x6fcef0]
mov ecx, dword [0x6fcef4]
mov edx, dword [0x6fcef8]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0xffffffff
call fcn.004c9bd0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x44], ecx
lea edx, [0x5a5ba0]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.004451f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
test ecx, ecx
jle 0x579346
mov dword [esp + 0x50], eax
xor edx, edx
mov ebx, dword [esp + 0x44]
jmp 0x5792bd
mov ebp, dword [esp + 0x4c]
lea ebx, [ebp + 0xc]
mov edx, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x4c], ebx
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00448840
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
lea ebx, [edx + ecx*8 + 4]
mov ebp, dword [esp + 0x10]
mov dword [ebx], ebp
lea edi, [edx + ecx*8]
mov ebx, dword [0x71e9f0]
test ebx, ebx
jne 0x57933f
mov dword [edi], eax
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x30]
cmp ecx, eax
jg 0x5792b4
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x78], eax
movzx eax, byte [esp + 0x2f]
mov byte [esp + 0x7c], al
add esp, 0x54
ret
call fcn.0045e220
jmp 0x579303
mov edx, eax
jmp 0x57930e
mov ebx, dword [0x6fcf00]
mov esi, dword [0x6fcf04]
mov edi, dword [0x6fcf08]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
mov byte [esp + 0x7c], al
add esp, 0x54
ret
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
mov byte [esp + 0x7c], al
add esp, 0x54
ret
nop
mov ecx, dword [esp + 0x60]
lea edx, [ecx - 4]
mov dword [esp + 0x3c], edx
neg edx
sar edx, 0x1f
and edx, 4
mov ebp, dword [esp + 0x58]
add edx, ebp
lea esi, [eax - 4]
movzx edi, byte [ebp + 3]
movzx ebx, byte [ebp + 2]
shl ebx, 8
or edi, ebx
movzx ebx, byte [ebp + 1]
shl ebx, 0x10
or ebx, edi
movzx ebp, byte [ebp]
shl ebp, 0x18
or ebp, ebx
cmp ebp, esi
jbe 0x5793fb
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x579214
sub ecx, ebp
sub eax, ebp
add ecx, 0xfffffffc
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, ebp
add ecx, edx
add eax, 0xfffffffc
mov esi, dword [esp + 0x3c]
mov edi, edx
mov edx, eax
mov eax, 1
mov esi, ecx
mov ecx, ebx
mov ebx, ebp
mov ebp, esi
mov esi, dword [esp + 0x3c]
jmp 0x579214
call fcn.0045ccc0
jmp fcn.005791e0