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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x8c]
cmp eax, dword [ecx + 8]
jbe 0x4f9ce3
sub esp, 0x10c
mov eax, 0
lea edi, [esp + 0xa4]
call fcn.0044c953
mov eax, dword [esp + 0x110]
test byte [eax], al
lea ecx, [eax + 0x2c]
mov dword [esp + 0x88], ecx
mov dword [esp], ecx
call fcn.0045f7e0
mov eax, dword [esp + 0x88]
mov dword [esp + 8], eax
mov dword [esp], 4
lea eax, [0x8bf890]
mov dword [esp + 4], eax
call fcn.00426b30
test eax, eax
jne 0x4f9c4f
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + 0x24]
test ecx, ecx
jne 0x4f9c42
mov ecx, dword [eax + 4]
mov dword [esp + 0x64], ecx
mov edx, dword [eax]
mov dword [esp + 0x3c], edx
mov dword [eax + 0x14], 0xffffffff
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x1c], 0xffffffff
mov dword [eax + 0x20], 0xffffffff
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00499d20
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [0xc5c38c]
mov eax, dword [eax + 0x40]
mov ebx, dword [0xc5c388]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x110]
lea ecx, [eax + 0x24]
movzx edx, byte [esp + 0xc]
test dl, dl
jne 0x4f9c21
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], ecx
call fcn.00499d20
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004a4180
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004a07f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x4f9b87
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0x3c]
mov ebp, dword [ebx + 0x64]
mov esi, dword [esp + 0x64]
mov dword [esp], esi
call ebp
lea eax, [esp + 8]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 4]
xor edx, edx
jmp 0x4f94e3
mov ebx, dword [esp + 0x50]
lea edx, [ebx + 1]
mov ecx, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0x64]
mov ebp, dword [esp + 0x64]
mov dword [esp], ebp
call ebx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x50]
cmp ecx, eax
jge 0x4f9789
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x2c]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0x64]
mov dword [esp], ebx
call edx
lea edi, [esp + 0xa4]
mov esi, dword [esp + 0x7c]
call fcn.0044cdee
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
cmp ecx, 4
jge 0x4f9765
xor eax, eax
test al, al
jne 0x4f9552
mov eax, dword [esp + 0x48]
jmp 0x4f94da
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x78], ecx
cmp eax, 0xe
jge 0x4f9601
cmp eax, 0xd
je 0x4f95bf
cmp eax, 0xe
jne 0x4f9c6a
mov dword [esp], ecx
lea ecx, [0x89d808]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4f9c6a
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x110]
mov dword [ecx + 0x1c], eax
mov edx, dword [esp + 0x48]
lea eax, [edx - 1]
jmp 0x4f94da
mov dword [esp], ecx
lea edx, [0x89d06c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4f95f1
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x110]
mov dword [ecx + 0x20], eax
jmp 0x4f95b3
mov eax, dword [esp + 0x60]
cmp eax, 0xe
mov ecx, dword [esp + 0x78]
jmp 0x4f9579
je 0x4f9725
cmp eax, 0x10
je 0x4f96e3
cmp eax, 0x14
je 0x4f96ab
cmp eax, 0x16
jne 0x4f9c6a
mov dword [esp], ecx
lea ecx, [0x8a2792]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4f9c6a
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x110]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
mov dword [esp + 4], eax
lea eax, [0x8a0cf1]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x13
call fcn.00498c40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp eax, 1
jne 0x4f96a7
movzx eax, byte [ecx]
cmp al, 0x31
sete al
mov ecx, dword [esp + 0x110]
mov byte [ecx + 0x28], al
jmp 0x4f95b3
xor eax, eax
jmp 0x4f9698
mov dword [esp], ecx
lea edx, [0x8a140e]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4f96d6
mov ecx, dword [esp + 0x110]
jmp 0x4f95b3
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x78]
jmp 0x4f9619
mov dword [esp], ecx
lea edx, [0x89ea2f]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4f9718
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x110]
mov dword [ecx + 0x14], eax
jmp 0x4f95b3
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x78]
jmp 0x4f9610
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x89d808]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xe
call fcn.004020a0
mov eax, dword [esp + 0x10]
test eax, eax
jg 0x4f9758
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x78]
jmp 0x4f9571
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x78]
jmp 0x4f9607
mov dword [esp], eax
lea eax, [0x897183]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
call fcn.004021f0
movzx eax, byte [esp + 0xc]
jmp 0x4f9548
lea eax, [0x86db60]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00438ab0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
lea edx, [0x853540]
mov dword [esp], edx
mov dword [esp + 4], 0
mov ebx, dword [esp + 0x48]
mov dword [esp + 8], ebx
call fcn.00438ab0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x110]
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edx
mov eax, dword [0xc6f140]
lea edi, [ebx + 8]
test eax, eax
jne 0x4f9b7b
mov dword [ebx + 8], ecx
mov dword [esp + 0x74], edi
xor eax, eax
xor ecx, ecx
jmp 0x4f9811
mov edx, dword [esp + 0x54]
inc edx
mov ecx, eax
mov eax, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx + 0x64]
mov ebp, dword [esp + 0x64]
mov dword [esp], ebp
call ebx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x54]
cmp ecx, eax
jge 0x4f9b05
lea eax, [0x866a60]
mov dword [esp], eax
call fcn.00409d90
mov eax, dword [esp + 4]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [esp + 0x54]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x64]
mov dword [esp], ebp
call edx
mov eax, dword [0xc6f140]
test eax, eax
jne 0x4f9acc
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x7c]
call fcn.0044cdee
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 4]
mov ebx, dword [ecx]
cmp edx, 4
jge 0x4f9aa1
xor eax, eax
test al, al
je 0x4f98ac
mov eax, dword [esp + 0x4c]
jmp 0x4f9808
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x58]
cmp edx, ebx
jae 0x4f9c63
lea ebp, [edx + edx*4]
mov esi, ebp
shl ebp, 3
mov eax, ebx
mov ebx, dword [ecx + 4]
mov edi, edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x68]
mov dword [ecx + ebp + 0x20], ebx
lea ebx, [ecx + esi*8]
lea esi, [ecx + esi*8 + 0x1c]
mov dword [esp + 0x70], esi
mov esi, dword [0xc6f140]
test esi, esi
jne 0x4f9a89
mov dword [ecx + ebp + 0x1c], edx
mov dword [esp + 0x6c], ebx
mov edx, dword [esp + 0x110]
mov ebp, dword [edx + 0xc]
lea esi, [ebp + 1]
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 0x10]
cmp esi, ebx
jg 0x4f9a2a
lea ebx, [ebp + 1]
mov dword [edx + 0xc], ebx
mov ebx, dword [0xc6f140]
lea esi, [ecx + ebp*4]
test ebx, ebx
jne 0x4f9a1a
mov ebx, dword [esp + 0x6c]
mov dword [ecx + ebp*4], ebx
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [0x89daa8]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xe
call fcn.00498c40
mov eax, dword [esp + 0x4c]
lea ecx, [eax + 1]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4f99a8
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x10], edx
call fcn.004fa9c0
mov eax, dword [esp + 0x60]
jmp 0x4f9808
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [0x89a898]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 8
call fcn.00498c40
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4f99fa
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + 0xc]
dec ecx
test ecx, ecx
jl 0x4f9c5c
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x4c]
jmp 0x4f9808
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004fa5c0
mov eax, dword [esp + 0x60]
jmp 0x4f9808
mov edi, esi
mov eax, dword [esp + 0x6c]
call fcn.0044c860
jmp 0x4f992f
lea eax, [0x853540]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
call fcn.00438c30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x110]
mov dword [ebx + 0x10], edx
mov edx, dword [0xc6f140]
test edx, edx
jne 0x4f9a7e
mov dword [ebx + 8], eax
mov edx, ebx
mov edi, dword [esp + 0x4c]
mov ebp, ecx
mov ecx, eax
mov eax, dword [esp + 0x58]
jmp 0x4f9911
mov edi, dword [esp + 0x74]
call fcn.0044c860
jmp 0x4f9a6b
mov ebp, edi
mov edi, dword [esp + 0x70]
mov esi, eax
mov eax, edx
call fcn.0044c860
mov eax, esi
mov edi, ebp
jmp 0x4f98f2
mov dword [esp], ebx
lea eax, [0x897183]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
call fcn.004021f0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x8c]
jmp 0x4f989f
lea edi, [esp + 0xd8]
mov esi, dword [esp + 0x7c]
call fcn.0044cdee
lea eax, [0x866a60]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
lea ecx, [esp + 0xd8]
mov dword [esp + 8], ecx
call fcn.0040f790
jmp 0x4f9888
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
lea eax, [0x925e70]
mov dword [esp], eax
lea eax, [esp + 0x98]
mov dword [esp + 4], eax
call fcn.004078f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004bd1e0
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.004012f0
nop
call fcn.004272f0
add esp, 0x10c
ret
mov eax, ecx
call fcn.0044c860
jmp 0x4f97fe
mov dword [esp + 0x80], eax
mov dword [esp + 0x5c], ecx
lea edx, [0x820420]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00407cb0
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test al, al
je 0x4f9bd2
mov eax, dword [ecx + 0x10]
mov dword [esp], edx
call eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x4f94ab
lea eax, [0x820480]
mov dword [esp], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.00407cb0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x4f94a5
mov ecx, dword [ecx + 0x10]
mov dword [esp], eax
call ecx
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
jmp 0x4f94ab
mov byte [eax + 0x29], 1
mov dword [esp], ecx
mov dword [esp + 4], 1
call fcn.004012f0
nop
call fcn.004272f0
add esp, 0x10c
ret
nop
call fcn.004272f0
add esp, 0x10c
ret
nop
call fcn.004272f0
add esp, 0x10c
ret
call fcn.00426870
ud2
call fcn.00426770
ud2
mov dword [esp], 0
lea eax, [0x8a0ef2]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x13
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0043bdd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
lea eax, [0x80a3e0]
mov dword [esp], eax
lea eax, [esp + 0x90]
mov dword [esp + 4], eax
call fcn.00407520
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00427650
ud2
call fcn.0044b100
jmp fcn.004f9350