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

Disassembly:
mov ecx, dword [0x98cddc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4f5e33
sub esp, 0x74
lea edi, [esp + 0x7c]
xor eax, eax
call fcn.00471d49
lea edi, [esp + 0x38]
call fcn.00471d49
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx + 8]
mov dword [esp + 0x38], edx
mov edx, dword [ecx + 8]
cmp edx, 1
je 0x4f5c25
lea ebx, [edx - 2]
cmp ebx, 2
ja 0x4f5c1d
mov dword [esp], ecx
call fcn.004f5910
mov eax, dword [esp + 4]
mov dword [esp + 0x54], eax
movzx ecx, byte [esp + 0x10]
mov edx, dword [esp + 8]
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x2c], ebx
jmp 0x4f5c74
lea eax, [edx - 5]
cmp eax, 1
ja 0x4f5c49
mov dword [esp], ecx
call fcn.004f5740
mov dword [esp], 0
call fcn.0046d270
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
lea edi, [esp + 0x7c]
lea esi, [esp + 0x38]
call fcn.0047221a
add esp, 0x74
ret
lea esi, [esp + 0x5c]
call fcn.00472224
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x23]
test cl, cl
je 0x4f5d97
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.004f59f0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x24], ebp
movzx esi, byte [esp + 0x1c]
xchg esi, eax
mov byte [esp + 0x23], al
xchg esi, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.004e3050
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
lea edi, [esp + 0x5c]
mov edx, eax
xor eax, eax
call fcn.00471d4a
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x68], ecx
mov dword [esp], 0
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 8], ecx
call fcn.0046d270
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
inc ecx
mov edx, dword [esp + 0x48]
cmp eax, ecx
jae 0x4f5d57
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6fbde0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
mov eax, dword [0x98d0b8]
lea ecx, [ecx + ecx*2]
lea edi, [edx + ecx*8 - 0x18]
test eax, eax
je 0x4f5c5a
mov dword [esp + 0x58], edi
lea eax, [0x6fbde0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.0040eba0
mov edi, dword [esp + 0x58]
jmp 0x4f5c5a
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.004e2e90
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4f5df2
mov edx, eax
shr edx, 8
mov ebx, eax
and eax, 0xff
lea ecx, [eax + edx]
cmp ecx, 0x72a
jbe 0x4f5dcc
xor eax, eax
xor ecx, ecx
jmp 0x4f5de1
cmp edx, ecx
ja 0x4f5e2b
mov ecx, eax
neg ecx
sar ecx, 0x1f
and edx, ecx
lea ecx, [0x747ccc]
add ecx, edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
jmp 0x4f5c49
mov dword [esp + 0x3c], 0
mov dword [esp], 0
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
call fcn.0046d270
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
jmp 0x4f5c49
mov eax, edx
call fcn.00471ba0
nop
call fcn.004706b0
jmp fcn.004f5bb0