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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4fa59f
sub esp, 0x64
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov byte [esp + 8], 0x2f
call fcn.00402900
mov ecx, dword [esp + 0xc]
test ecx, ecx
jl 0x4fa4f8
mov edx, dword [esp + 0x6c]
cmp ecx, edx
ja 0x4fa599
lea eax, [ecx + 1]
cmp eax, edx
ja 0x4fa592
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004f97a0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x40]
sub eax, ecx
dec eax
mov ebx, eax
neg eax
sar eax, 0x1f
mov ebp, dword [esp + 0x48]
and ebp, eax
mov eax, dword [esp + 0x68]
add ebp, eax
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test esi, esi
je 0x4fa4c2
mov ecx, 4
mov dword [esp + 0x34], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x4c]
jmp 0x4fa22b
inc edx
mov edi, dword [esp + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
cmp ebx, edx
jle 0x4fa4a5
jbe 0x4fa589
movzx edi, byte [ebp + edx]
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jb 0x4fa4a5
xchg edi, eax
cmp al, 0x39
xchg edi, eax
ja 0x4fa4a5
mov esi, dword [esp + 0x28]
lea esi, [esi + esi*4]
add edi, 0xffffffd0
xchg edi, eax
movzx eax, al
xchg edi, eax
lea esi, [edi + esi*2]
cmp esi, 0xffffff
jl 0x4fa216
mov ebp, 0xffffff
xor esi, esi
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x4fa422
xchg esi, eax
test al, al
xchg esi, eax
je 0x4fa422
cmp ebx, edx
jne 0x4fa422
test ebp, ebp
jl 0x4fa422
shl ecx, 3
cmp ebp, ecx
jg 0x4fa422
mov dword [esp + 0x24], ebp
cmp ecx, 0x20
je 0x4fa2bf
cmp ecx, 0x80
jne 0x4fa419
lea eax, [0x5bec80]
mov dword [esp], eax
sar ecx, 3
mov dword [esp + 0x2c], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00444f30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
xor ebx, ebx
jmp 0x4fa2ed
inc ebx
cmp ecx, ebx
jle 0x4fa32f
cmp edx, 8
jb 0x4fa307
cmp ecx, ebx
jbe 0x4fa582
mov byte [eax + ebx], 0xff
add edx, 0xfffffff8
jmp 0x4fa2ec
cmp ecx, ebx
jbe 0x4fa57b
mov ebp, ecx
mov ecx, edx
mov esi, 0xffffffff
xchg esi, eax
shr al, cl
xchg esi, eax
xchg esi, ebx
not ebx
xchg esi, ebx
xchg esi, ecx
mov byte [eax + ebx], cl
xchg esi, ecx
mov ecx, ebp
xor edx, edx
jmp 0x4fa2ec
mov dword [esp + 0x58], eax
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
mov ebx, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x38]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
call fcn.004f7b80
mov eax, dword [esp + 0x18]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
lea ebx, [0x5ca2e0]
mov dword [esp], ebx
call fcn.0040b8e0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x48]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x44]
mov dword [edi + 8], eax
mov eax, dword [0x770e60]
test eax, eax
jne 0x4fa40e
mov ecx, dword [esp + 0x60]
mov dword [edi], ecx
mov ecx, dword [esp + 0x30]
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], ecx
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x4fa3f8
mov eax, dword [esp + 0x58]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x5c]
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
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
add esp, 0x64
ret
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0x58]
call fcn.0045df70
mov edi, edx
jmp 0x4fa3c2
mov eax, dword [esp + 0x60]
call fcn.0045df70
jmp 0x4fa3a7
xor ecx, ecx
xor eax, eax
jmp 0x4fa32f
lea eax, [0x5ca340]
mov dword [esp], eax
call fcn.0040b8e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xc
lea ecx, [0x5ed579]
mov dword [eax], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x4fa493
mov ecx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea ecx, [0x63a0a8]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
add esp, 0x64
ret
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x68]
call fcn.0045df70
mov eax, ecx
jmp 0x4fa45b
test edx, edx
jne 0x4fa4b4
xor ebp, ebp
xor esi, esi
xor edx, edx
jmp 0x4fa279
mov ebp, dword [esp + 0x28]
mov esi, 1
jmp 0x4fa279
mov dword [esp + 0x48], ebx
mov dword [esp + 0x54], ebp
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004f9a90
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x54]
mov ecx, 0x10
jmp 0x4fa1f4
lea eax, [0x5ca340]
mov dword [esp], eax
call fcn.0040b8e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xc
lea ecx, [0x5ed579]
mov dword [eax], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x4fa569
mov ecx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea ecx, [0x63a0a8]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
add esp, 0x64
ret
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x68]
call fcn.0045df70
mov eax, ecx
jmp 0x4fa531
mov eax, ebx
call fcn.0045dff0
mov eax, ebx
call fcn.0045dff0
mov eax, edx
mov ecx, ebx
call fcn.0045dff0
mov ecx, edx
call fcn.0045e050
call fcn.0045e010
nop
call fcn.0045ca10
jmp fcn.004fa150