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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x4c]
cmp eax, dword [ecx + 8]
jbe 0x5f7e86
sub esp, 0xcc
mov eax, 0
mov dword [esp + 0xc8], eax
mov byte [esp + 0x37], 0
mov byte [esp + 0xd8], 0
mov eax, dword [esp + 0xd0]
movzx ecx, byte [eax + 0x68]
test cl, cl
jne 0x5f794c
mov dword [esp], eax
call fcn.00470550
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea eax, [0x5f7ed0]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x54]
mov dword [esp + 0xc8], ecx
mov byte [esp + 0x37], 1
mov byte [eax + 8], 0
mov ecx, dword [esp + 0xd4]
test ecx, ecx
je 0x5f792d
lea edi, [esp + 0x70]
mov edx, eax
xor eax, eax
call fcn.0045f63b
mov ecx, dword [edx + 0x78]
test ecx, ecx
seta cl
mov ebx, dword [edx + 0x7c]
test ebx, ebx
setg bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ecx, ebp
or ebx, ecx
test bl, bl
je 0x5f78e0
call fcn.004a28d0
lea edi, [esp + 0x98]
lea esi, [esp]
call fcn.0045fb1e
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x44], ecx
xor edx, edx
sub edx, ecx
mov ebx, dword [eax + 0x7c]
lea edi, [esp]
lea esi, [esp + 0x98]
call fcn.0045fb1e
xor ecx, ecx
mov ebp, dword [esp + 0x44]
sub ecx, ebp
mov ecx, 0
sbb ecx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
call fcn.004a1cb0
lea edi, [esp + 0x70]
lea esi, [esp + 0x1c]
call fcn.0045fb1e
mov edx, dword [esp + 0xd0]
mov eax, dword [edx + 0xc]
lea ecx, [0x635740]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xd4]
lea ebx, [eax + 0x18]
mov dword [esp + 0x50], ebx
mov dword [esp + 8], ebx
call fcn.0040c4e0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
movzx edx, byte [esp + 0x10]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
test dl, dl
je 0x5f795b
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], ecx
xor edx, edx
xor ebp, ebp
jmp 0x5f7ae8
mov byte [esp + 0xd8], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xc8]
mov eax, dword [edx]
call eax
add esp, 0xcc
ret
mov byte [esp + 0xd8], 0
add esp, 0xcc
ret
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x5f799a
call fcn.0040bf40
mov eax, dword [0x84d450]
mov ecx, dword [esp]
test eax, eax
jne 0x5f7987
mov eax, dword [esp + 0xd0]
mov dword [eax + 0x10], ecx
jmp 0x5f799a
mov edx, dword [esp + 0xd0]
lea edi, [edx + 0x10]
mov eax, ecx
call fcn.0045f3a0
mov eax, edx
mov ecx, dword [eax + 0x10]
lea edx, [0x6357c0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0040c310
mov esi, dword [esp + 0xc]
lea edi, [esp + 0xac]
call fcn.0045fb0a
lea eax, [esp + 0xac]
mov dword [esp], eax
call fcn.005f8a20
nop
mov eax, dword [esp + 0xc0]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc4]
cmp ebx, ecx
jae 0x5f7a2b
lea ebp, [0x646500]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.004484a0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xbc], edx
lea ecx, [eax + 1]
mov dword [esp + 0xc0], ecx
mov ecx, dword [0x84d450]
lea edi, [edx + eax*4]
test ecx, ecx
jne 0x5f7a4e
mov ecx, dword [esp + 0xd4]
mov dword [edx + eax*4], ecx
jmp 0x5f7a5a
mov eax, dword [esp + 0xd4]
call fcn.0045f3a0
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 0x10]
lea ecx, [0x6357c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.0040c860
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x84d450]
test eax, eax
jne 0x5f7a9c
lea esi, [esp + 0xac]
call fcn.0045fb0a
jmp 0x5f7ab9
lea eax, [0x647d00]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xac]
mov dword [esp + 8], eax
call fcn.00410a60
mov byte [esp + 0xd8], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xc8]
mov eax, dword [edx]
call eax
add esp, 0xcc
ret
mov ebx, dword [esp + 0x4c]
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
mov byte [esp + 0x34], dl
test ebx, ebx
je 0x5f7e26
mov dword [esp + 0x38], ebx
test dl, dl
jne 0x5f7dcf
mov eax, dword [ecx + ebx*4 - 4]
lea edi, [esp + 0x5c]
lea esi, [esp + 0x70]
call fcn.0045fb1e
mov ecx, dword [esp + 0x5c]
mov esi, edx
mov edx, dword [esp + 0x60]
test edx, 0x80000000
je 0x5f7b62
shl edx, 1
mov edi, ecx
shr ecx, 0x1f
or edx, ecx
mov dword [esp + 0x44], edx
mov ecx, edi
shl edi, 1
shl edx, 1
shr edi, 0x1f
or edi, edx
mov edx, edi
add edi, 0xd7b17f80
mov ebp, dword [esp + 0x44]
shr ebp, 0x1f
add edx, 0xd7b17f80
adc ebp, 0xd
mov edx, ebp
movzx ebp, byte [esp + 0x35]
jmp 0x5f7b6a
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x48], eax
test edx, edx
sete dl
test edi, edi
mov edi, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edx, ebp
test dl, dl
je 0x5f7b90
test ecx, 0x3fffffff
jne 0x5f7b90
xor ecx, ecx
jmp 0x5f7c0f
test byte [eax], al
lea esi, [eax + 0x64]
lea edi, [esp + 0x84]
call fcn.0045fb1e
lea edi, [esp]
lea esi, [esp + 0x84]
call fcn.0045fb1e
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
call fcn.004a3c50
lea edi, [esp + 0x98]
lea esi, [esp + 0x1c]
call fcn.0045fb1e
lea edi, [esp]
lea esi, [esp + 0x98]
call fcn.0045fb1e
lea edi, [esp + 0x14]
lea esi, [esp + 0x70]
call fcn.0045fb1e
call fcn.004a0970
movzx eax, byte [esp + 0x28]
mov ebx, dword [esp + 0x38]
movzx esi, byte [esp + 0x34]
movzx edi, byte [esp + 0x35]
mov ecx, eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x33], cl
test cl, cl
je 0x5f7c60
lea eax, [0x63b4a0]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
lea ecx, [0x5f7e90]
mov dword [eax], ecx
mov edx, dword [0x84d450]
test edx, edx
jne 0x5f7c44
mov edx, dword [esp + 0x48]
mov dword [eax + 4], edx
jmp 0x5f7c54
lea edi, [eax + 4]
mov edx, eax
mov eax, dword [esp + 0x48]
call fcn.0045f3a0
mov eax, edx
mov dword [esp], eax
call fcn.0043f4c0
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.005fcef0
mov eax, dword [esp + 0x38]
lea ecx, [eax - 1]
movzx edx, byte [esp + 4]
test dl, dl
jne 0x5f7c81
movzx edx, byte [esp + 0x33]
test dl, dl
je 0x5f7c90
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x35]
jmp 0x5f7ad8
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.005f87c0
movzx eax, byte [esp + 0x10]
test al, al
je 0x5f7dc1
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
test edx, edx
je 0x5f7cdb
mov ecx, dword [esp + 0x38]
jmp 0x5f7dc5
mov byte [esp + 0x36], al
nop
mov eax, dword [esp + 0xd0]
mov edx, dword [eax + 0x18]
lea ebp, [0x6353c0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0040e070
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x5f7db6
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx + 0x14]
cmp dword [eax + 8], edx
jne 0x5f7d99
mov edi, dword [eax + 4]
test byte [edi], al
nop
mov ebx, dword [0x84d450]
mov ebp, dword [eax]
test ebx, ebx
jne 0x5f7d38
mov dword [edi], ebp
jmp 0x5f7d43
mov ebx, eax
mov eax, ebp
call fcn.0045f3a0
mov eax, ebx
mov ebx, dword [eax]
test byte [ebx], al
mov ebp, dword [0x84d450]
mov esi, dword [eax + 4]
test ebp, ebp
jne 0x5f7d6d
mov dword [ebx + 4], esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x5f7d96
lea edi, [ebx + 4]
mov ebx, eax
mov eax, esi
call fcn.0045f3a0
mov edi, ebx
xor eax, eax
call fcn.0045f3a0
lea ebp, [ebx + 4]
mov edi, ebp
call fcn.0045f3a0
lea edi, [ebx + 8]
xor eax, eax
call fcn.0045f3a0
dec dword [edx + 0x14]
mov eax, dword [esp + 0x48]
mov edx, dword [ecx + 0x18]
lea ebx, [0x6353c0]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0040e7a0
movzx eax, byte [esp + 0x36]
mov ecx, dword [esp + 0x40]
jmp 0x5f7dc5
mov ecx, dword [esp + 0x38]
mov edx, 1
jmp 0x5f7ad8
test ebx, ebx
je 0x5f7e26
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0xc]
lea edx, [0x635740]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0040c860
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [edi + 8], eax
mov eax, dword [0x84d450]
test eax, eax
jne 0x5f7e1b
mov eax, dword [esp + 0x4c]
mov dword [edi], eax
jmp 0x5f7e4a
mov eax, dword [esp + 0x4c]
call fcn.0045f3a0
jmp 0x5f7e4a
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0xc]
lea edx, [0x635740]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0040cd40
movzx eax, byte [esp + 0x34]
test al, al
je 0x5f795b
movzx eax, byte [esp + 0x35]
mov byte [esp + 0xd8], al
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xc8]
mov eax, dword [edx]
call eax
add esp, 0xcc
ret
call fcn.0045df90
jmp fcn.005f77b0