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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x4f48ee
sub esp, 0xd0
mov eax, 0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov byte [esp + 0x42], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov eax, dword [esp + 0xd8]
test eax, eax
je 0x4f48c9
call fcn.00481a70
lea edi, [esp + 0xb4]
lea esi, [esp]
call fcn.0045e97e
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov ecx, dword [esp + 0xd8]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xdc]
mov dword [esp + 8], edx
lea edi, [esp + 0xc]
lea esi, [esp + 0xb4]
call fcn.0045e97e
call fcn.004f27e0
lea edi, [esp + 0x8c]
lea esi, [esp + 0x20]
call fcn.0045e97e
lea edi, [esp + 0x78]
lea esi, [esp + 0x8c]
call fcn.0045e97e
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
test ecx, 0x80000000
je 0x4f48b4
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or ecx, eax
mov ebx, edx
shl edx, 1
mov ebp, ecx
shl ecx, 1
shr edx, 0x1f
or edx, ecx
mov ecx, edx
add edx, 0xd7b17f80
shr ebp, 0x1f
add ecx, 0xd7b17f80
adc ebp, 0xd
test edx, edx
sete cl
test ebp, ebp
sete dl
and edx, ecx
test dl, dl
je 0x4f47c4
test ebx, 0x3fffffff
jne 0x4f47c4
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
xor edx, edx
mov ebx, dword [esp + 0xd4]
mov ebp, dword [ebx + 0x3c]
test ebp, ebp
jne 0x4f4735
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd8], eax
mov byte [esp + 0x43], dl
mov ebx, dword [eax + 0x1c]
mov dword [esp], ecx
lea ebp, [0x5a7f80]
mov dword [esp + 4], ebp
lea esi, [0x71e864]
mov dword [esp + 8], esi
call ebx
mov eax, dword [esp + 0x10]
lea ecx, [0x599880]
cmp dword [esp + 0xc], ecx
jne 0x4f472e
test eax, eax
jne 0x4f465f
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xd4]
mov ebx, dword [edx + 0x38]
test ebx, ebx
je 0x4f4654
mov ebp, dword [edx + 0x1c]
mov esi, dword [edx + 0x20]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
lea eax, [0x5d00a0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 4
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0xe8]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0xec]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], esi
call fcn.004f2fc0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
test eax, eax
je 0x4f429f
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], edx
lea eax, [0x5bce60]
mov dword [esp], eax
call fcn.0040b910
mov eax, dword [esp + 4]
mov dword [eax + 4], 4
lea ecx, [0x5d00a0]
mov dword [eax], ecx
mov ecx, dword [esp + 0xe4]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x71e9f0]
test ecx, ecx
jne 0x4f4287
mov ecx, dword [esp + 0xe0]
mov dword [eax + 8], ecx
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x20], ecx
mov ecx, dword [0x71e9f0]
test ecx, ecx
jne 0x4f4272
mov ecx, dword [esp + 0x74]
mov dword [eax + 0x24], ecx
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
lea ecx, [0x610a54]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xfc], eax
movzx eax, byte [esp + 0x43]
test al, 2
jne 0x4f4255
test al, 1
jne 0x4f4241
add esp, 0xd0
ret
and eax, 0xfffffffe
mov byte [esp + 0x42], al
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
call eax
jmp 0x4f423a
and eax, 0xfffffffd
mov byte [esp + 0x43], al
mov byte [esp + 0x42], al
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x43]
jmp 0x4f4235
lea edi, [eax + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x74]
call fcn.0045e220
mov eax, ecx
jmp 0x4f4201
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0xe0]
call fcn.0045e220
mov eax, ecx
jmp 0x4f41cd
mov dword [esp + 0x44], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x48], ebx
lea eax, [0x5b74c0]
mov dword [esp], eax
call fcn.0040b910
mov edi, dword [esp + 4]
mov dword [esp + 0x60], edi
mov eax, dword [0x71e9f0]
test eax, eax
jne 0x4f4632
mov esi, dword [esp + 0xd4]
call fcn.0045e906
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x60]
mov dword [edx + 0x48], ecx
mov ebx, dword [0x71e9f0]
test ebx, ebx
jne 0x4f461c
mov ebx, dword [esp + 0xe0]
mov dword [edx + 0x44], ebx
mov ebp, dword [esp + 0xec]
mov dword [edx + 0x50], ebp
mov ebp, dword [0x71e9f0]
test ebp, ebp
jne 0x4f4608
mov eax, dword [esp + 0xe8]
mov dword [edx + 0x4c], eax
mov eax, dword [esp + 0xd4]
mov ebp, dword [eax + 0x2c]
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
and ebp, 1
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x4f435e
cmp ecx, 3
jne 0x4f435e
cmp word [ebx], 0x6374
jne 0x4f435e
cmp byte [ebx + 2], 0x70
je 0x4f45b6
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x64], ecx
xor ecx, ecx
test ecx, ecx
jle 0x4f4573
mov dword [esp], edx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebx
call fcn.004f4900
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
test eax, eax
je 0x4f4437
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], ecx
movzx eax, byte [esp + 0x43]
test al, 2
jne 0x4f441a
test al, 1
jne 0x4f4406
add esp, 0xd0
ret
and eax, 0xfffffffe
mov byte [esp + 0x42], al
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
call eax
jmp 0x4f43ff
and eax, 0xfffffffd
mov byte [esp + 0x43], al
mov byte [esp + 0x42], al
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x43]
jmp 0x4f43fa
lea eax, [0x61292c]
cmp edx, eax
jne 0x4f4567
mov eax, ebx
jne 0x4f446e
mov ecx, dword [esp + 0xd4]
mov ebp, dword [ecx + 0x34]
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
and ebp, 1
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4f44d9
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
movzx eax, byte [esp + 0x43]
test al, 2
jne 0x4f44bc
test al, 1
jne 0x4f44a8
add esp, 0xd0
ret
and eax, 0xfffffffe
mov byte [esp + 0x42], al
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
call eax
jmp 0x4f44a1
and eax, 0xfffffffd
mov byte [esp + 0x43], al
mov byte [esp + 0x42], al
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x43]
jmp 0x4f449c
mov dword [esp + 0x74], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x5c], ebx
mov eax, dword [ebx]
mov dword [esp], eax
mov byte [esp + 4], 1
call fcn.00501d60
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x34]
test ecx, ecx
sete dl
mov eax, dword [eax + 0x30]
test eax, eax
sete bl
and ebx, edx
test bl, bl
je 0x4f455f
mov eax, 3
mov ecx, 0x7e11d600
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x5c]
mov edx, dword [edx]
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
call fcn.005040c0
mov edx, dword [0x6fc8d0]
mov eax, dword [edx]
mov ecx, dword [esp + 0x50]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x54]
jmp 0x4f446e
mov edx, eax
mov eax, ecx
mov ecx, edx
jmp 0x4f451b
mov eax, ebx
mov ebx, 0
jmp 0x4f4447
mov dword [esp], edx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
call fcn.004f4f40
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
jmp 0x4f43c8
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
lea eax, [0x5df05c]
mov dword [esp + 0xc], eax
call fcn.004fa700
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xd4]
jmp 0x4f4376
lea edi, [edx + 0x4c]
mov eax, dword [esp + 0xe8]
call fcn.0045e220
jmp 0x4f4323
lea edi, [edx + 0x44]
mov eax, dword [esp + 0xe0]
call fcn.0045e220
mov ebx, eax
jmp 0x4f4301
lea eax, [0x5c25c0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0xd4]
mov dword [esp + 8], eax
call fcn.004106e0
jmp 0x4f42db
mov ebx, dword [0x6fc8bc]
jmp 0x4f4106
mov dword [esp + 0x58], eax
lea eax, [0x5b9f60]
mov dword [esp], eax
call fcn.0040b910
mov edi, dword [esp + 4]
mov eax, dword [0x71e9f0]
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
test eax, eax
jne 0x4f4710
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ecx, dword [0x71e9f0]
test ecx, ecx
jne 0x4f46f2
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
lea edx, [0x5a7f80]
mov dword [esp + 8], edx
lea edx, [0x71e864]
mov dword [esp + 0xc], edx
lea edx, [0x599880]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
call fcn.00487cc0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
jmp 0x4f40f4
lea ecx, [edi + 8]
mov eax, edi
mov edi, ecx
mov edx, eax
xor eax, eax
call fcn.0045e220
lea edi, [edx + 0xc]
xor eax, eax
call fcn.0045e220
mov edi, edx
jmp 0x4f46a9
mov eax, edx
call fcn.0045e220
lea edx, [edi + 4]
mov eax, edi
mov edi, edx
mov ebx, eax
mov eax, ecx
call fcn.0045e220
mov edi, ebx
jmp 0x4f4691
xor eax, eax
jmp 0x4f40de
mov dword [esp + 0x6c], ebp
mov byte [esp + 0x43], dl
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00486c20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xdc], ecx
mov edx, dword [esp + 8]
mov ebx, dword [esp + 8]
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xc8], eax
movzx ebp, byte [esp + 0x43]
or ebp, 2
xchg ebp, eax
mov byte [esp + 0x43], al
xchg ebp, eax
xchg ebp, eax
mov byte [esp + 0x42], al
xchg ebp, eax
mov dword [esp], 0x10
lea esi, [0x5df028]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.0043c1d0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
movzx edx, byte [esp + 0x43]
jmp 0x4f409c
lea edi, [esp + 0xb4]
xor eax, eax
call fcn.0045e49b
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0xdc]
mov dword [esp], ebx
call edx
movzx ecx, byte [esp + 0x18]
mov byte [esp + 0x41], cl
lea edi, [esp + 0xb4]
lea esi, [esp + 4]
call fcn.0045e97e
lea edi, [esp + 0xa0]
lea esi, [esp + 0xb4]
call fcn.0045e97e
movzx ecx, byte [esp + 0x41]
test cl, cl
jne 0x4f4871
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
lea edi, [esp + 8]
lea esi, [esp + 0x8c]
call fcn.0045e97e
call fcn.004875c0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xcc], eax
mov byte [esp + 0x42], 1
mov eax, 1
mov ebx, eax
mov eax, ecx
mov ecx, edx
mov edx, ebx
jmp 0x4f408a
lea edi, [esp]
lea esi, [esp + 0x8c]
call fcn.0045e97e
lea edi, [esp + 0x14]
lea esi, [esp + 0xa0]
call fcn.0045e97e
call fcn.0047fa60
movzx eax, byte [esp + 0x28]
test al, al
jne 0x4f481d
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
xor eax, eax
jmp 0x4f4864
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
mov ebx, eax
jmp 0x4f405a
lea eax, [0x5a5ba0]
mov dword [esp], eax
lea eax, [0x60e940]
mov dword [esp + 4], eax
call fcn.00431c00
nop
call fcn.00430e90
add esp, 0xd0
ret
call fcn.0045ccc0
jmp fcn.004f3f40