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

Disassembly:
sub esp, 0x7c
push esi
xor esi, esi
mov dword [esp + 8], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], esi
cmp word [esp + 0x94], si
je 0x4f4464
mov eax, dword [esp + 0x84]
mov ecx, dword [eax]
mov edx, dword [ecx]
test byte [edx + 0x44], 0x40
je 0x4f4464
xor al, al
pop esi
add esp, 0x7c
ret
mov eax, dword [esp + 0x88]
movzx eax, word [eax]
mov dword [esp + 0x60], eax
cmp ax, 0x3f
ja 0x4f445d
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 5], 1
mov dword [esp + 0x24], ecx
call fcn.0058e3c0
add eax, 0xffffffff
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x90]
adc edx, 0xffffffff
and eax, 0x800
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], 0x182
mov dword [esp + 0x50], eax
je 0x4f44d0
mov dword [esp + 0x2c], 0x183
push ebx
push ebp
push edi
mov dword [esp + 0x34], esi
jmp 0x4f44e0
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x58]
ja 0x4f4afa
jb 0x4f44fe
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x54]
jae 0x4f4afa
movzx eax, word [esp + 0xa0]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
jg 0x4f4afa
xor ebx, ebx
cmp ecx, ebx
jle 0x4f452a
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
or dword [esp + 0x40], esi
or dword [esp + 0x44], edx
cmp ecx, eax
jge 0x4f4550
mov eax, dword [esp + 0x98]
mov edx, dword [eax + 0x18]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x14], eax
cmp word [esp + 0x5c], bx
jne 0x4f4ada
xor ebx, ebx
mov ebp, eax
jmp 0x4f455b
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x14], ebp
test dword [ebp + 0x24], 0x400
jne 0x4f4af4
movzx eax, byte [ebp + 0x10]
xor ecx, ecx
cmp dword [esp + 0x30], ebx
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x90]
mov word [ebp + 0x1e], cx
mov ecx, dword [eax + 4]
mov edi, dword [ecx + edx*8 + 0x34]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x20], ebx
jle 0x4f46b8
mov edx, dword [esp + 0x94]
add edx, 4
mov dword [esp + 0x28], edx
jmp 0x4f45b4
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov eax, 1
xor edx, edx
call fcn.0058e3c0
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x18]
mov dword [esp + 0x68], ecx
and ecx, dword [esp + 0x1c]
or eax, ecx
jne 0x4f469e
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
call fcn.004b5f00
mov esi, eax
cmp byte [esi], 0x9e
jne 0x4f469e
cmp dword [esi + 0x1c], edi
jne 0x4f469e
movzx ecx, word [esp + 0x38]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
push ecx
movsx ecx, word [esi + 0x20]
not edx
not eax
push eax
push edx
mov edx, dword [esp + 0x9c]
push ecx
push edi
add edx, 0x50
xor ecx, ecx
call fcn.004f2a50
add esp, 0x14
test eax, eax
je 0x4f469e
movzx ecx, word [eax + 0xc]
cmp cx, 1
jne 0x4f4664
movzx edi, word [ebp + 0x28]
xor ecx, ecx
test edi, edi
jle 0x4f465c
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0x30]
cmp eax, dword [edx]
je 0x4f465c
mov ebp, dword [esp + 0x14]
movzx ebp, word [ebp + 0x28]
inc ecx
add edx, 4
cmp ecx, ebp
jl 0x4f4648
cmp ecx, edi
mov ebp, dword [esp + 0x14]
jge 0x4f469e
movzx ecx, word [eax + 0xc]
test cl, 0x82
je 0x4f4692
cmp word [esi + 0x20], 0
jl 0x4f4692
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x90]
mov esi, dword [edx]
push eax
mov eax, dword [ecx]
call fcn.004ee160
add esp, 4
test eax, eax
je 0x4f469e
mov eax, dword [esp + 0x68]
or dword [esp + 0x18], ebx
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x28], 0x18
inc eax
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x20], eax
jl 0x4f45b0
xor ebx, ebx
mov eax, dword [ebp + 0x24]
test eax, 0x1000
jne 0x4f49cb
test eax, 0x100
je 0x4f46dc
mov dword [esp + 0x28], ebx
mov dword [esp + 0x50], ebx
mov eax, 1
jmp 0x4f470a
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x28], ecx
cmp ecx, ebx
je 0x4f4b5b
test byte [ecx + 0x38], 4
jne 0x4f4b5b
movzx edx, word [ecx + 0x32]
cmp byte [ecx + 0x36], 0
movzx eax, word [ecx + 0x34]
mov dword [esp + 0x50], edx
setne byte [esp + 0x11]
movzx eax, ax
cmp eax, ebx
mov byte [esp + 0x25], 0
mov byte [esp + 0x27], 0
mov byte [esp + 0x26], 0
mov dword [esp + 0x60], eax
jle 0x4f49cb
mov dword [esp + 0x2c], ebx
lea esp, [esp]
movzx edi, word [ebp + 0x18]
cmp ebx, edi
mov byte [esp + 0x12], 1
jge 0x4f479b
movzx eax, word [ebp + 0x2a]
cmp ebx, eax
jl 0x4f479b
mov edx, dword [ebp + 0x30]
mov eax, dword [edx + ebx*4]
movzx ecx, word [eax + 0xc]
mov esi, ecx
and esi, dword [esp + 0x38]
test si, si
je 0x4f4770
test ecx, 0x100
je 0x4f49b6
mov byte [esp + 0x11], 0
jmp 0x4f49b6
test cl, 1
je 0x4f479b
mov esi, dword [eax]
lea eax, [ebx + 1]
cmp eax, edi
jge 0x4f479b
lea ecx, [edx + ebx*4 + 4]
mov edx, dword [ecx]
cmp dword [edx], esi
je 0x4f4796
movzx edx, word [ebp + 0x18]
inc eax
add ecx, 4
cmp eax, edx
jl 0x4f4782
jmp 0x4f479b
mov byte [esp + 0x12], 0
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4f47c5
mov ecx, dword [esi + 0x1c]
mov dl, byte [ebx + ecx]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xc]
movsx eax, word [eax + ebx*2]
mov byte [esp + 0x13], dl
movsx edx, word [ecx + 0x28]
mov dword [esp + 0x20], eax
cmp eax, edx
jne 0x4f47d1
jmp 0x4f47ca
mov byte [esp + 0x13], 0
or eax, 0xffffffff
mov dword [esp + 0x20], eax
cmp byte [esp + 0x11], 0
je 0x4f47f5
test eax, eax
jl 0x4f47f5
cmp ebx, edi
jl 0x4f47f5
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 4]
shl eax, 4
cmp byte [edx + eax + 0xc], 0
jne 0x4f47f5
mov byte [esp + 0x11], 0
xor edi, edi
cmp byte [esp + 0x12], 0
je 0x4f48f9
mov ebp, dword [esp + 0x94]
add ebp, 4
lea esp, [esp]
cmp edi, dword [esp + 0x30]
jge 0x4f48f9
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.0058e3c0
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or eax, edx
jne 0x4f48ea
mov eax, dword [ebp]
test eax, eax
je 0x4f4862
nop
mov ecx, dword [eax + 4]
test ecx, 0x1000
je 0x4f4862
test ecx, 0x40000
je 0x4f485b
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
jmp 0x4f485e
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4f4840
test byte [esp + 0x9c], 0xc0
jne 0x4f4871
mov byte [esp + 0x12], 0
mov esi, dword [esp + 0x20]
cmp esi, 0xffffffff
jl 0x4f4890
cmp byte [eax], 0x9e
jne 0x4f48ea
mov ecx, dword [esp + 0x3c]
cmp dword [eax + 0x1c], ecx
jne 0x4f48ea
movsx edx, word [eax + 0x20]
cmp edx, esi
jmp 0x4f48ae
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x28]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [edx + ecx + 4]
mov edx, dword [esp + 0x3c]
push edx
call fcn.004d6cb0
add esp, 4
test eax, eax
jne 0x4f48ea
cmp esi, 0xffffffff
je 0x4f4924
mov ecx, dword [esp + 0x90]
mov esi, dword [ecx]
mov eax, dword [ebp]
push esi
call fcn.004edfc0
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4f48d5
mov edx, dword [esi]
mov ecx, dword [edx + 8]
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x20]
mov eax, dword [edx + ebx*4]
mov ecx, dword [ecx]
call fcn.004acfb0
test eax, eax
je 0x4f4924
inc edi
add ebp, 0x18
cmp byte [esp + 0x12], 0
jne 0x4f4810
test ebx, ebx
je 0x4f4906
movzx ecx, word [esp + 0x50]
cmp ebx, ecx
jge 0x4f490b
mov byte [esp + 0x11], 0
mov ebp, dword [esp + 0x14]
cmp byte [esp + 0x26], 0
je 0x4f49cb
mov byte [esp + 0x11], 1
jmp 0x4f49da
test byte [esp + 0x9c], 0x40
mov ecx, dword [esp + 0x14]
lea eax, [ebx + 1]
mov word [ecx + 0x1e], ax
jne 0x4f4990
cmp byte [esp + 0x25], 0
lea edx, [edi + edi*2]
je 0x4f495a
mov al, byte [esp + 0x13]
xor al, byte [esp + 0x27]
mov ecx, dword [esp + 0x94]
cmp al, byte [ecx + edx*8 + 0x10]
jne 0x4f48f9
jmp 0x4f4990
mov eax, dword [esp + 0x94]
mov al, byte [eax + edx*8 + 0x10]
xor al, byte [esp + 0x13]
mov byte [esp + 0x27], al
je 0x4f498b
mov ecx, dword [esp + 0x34]
mov eax, 1
xor edx, edx
call fcn.0058e3c0
mov ecx, dword [esp + 0xa8]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x25], 1
cmp dword [esp + 0x20], 0xffffffff
jne 0x4f499c
mov byte [esp + 0x26], 1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.0058e3c0
or dword [esp + 0x18], eax
or dword [esp + 0x1c], edx
mov ebp, dword [esp + 0x14]
add dword [esp + 0x2c], 0x18
inc ebx
cmp ebx, dword [esp + 0x60]
jl 0x4f4730
jmp 0x4f490f
cmp byte [esp + 0x11], 0
je 0x4f4ada
mov ebp, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
or dword [esp + 0x48], edx
or dword [esp + 0x4c], eax
xor ecx, ecx
cmp dword [esp + 0x30], ecx
mov dword [esp + 0x20], ecx
jle 0x4f4ada
mov edx, dword [esp + 0x94]
add edx, 4
mov dword [esp + 0x2c], edx
jmp 0x4f4a10
mov eax, 1
xor edx, edx
call fcn.0058e3c0
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x18]
mov dword [esp + 0x68], ecx
and ecx, dword [esp + 0x1c]
or eax, ecx
jne 0x4f4ac2
mov eax, dword [esp + 0x2c]
mov esi, dword [eax]
test esi, esi
je 0x4f4aeb
mov ecx, dword [esp + 0x90]
add ecx, 0x1e8
push esi
push ecx
call fcn.004c2c20
mov edi, eax
mov ebp, edx
mov edx, edi
add esp, 8
or edx, ebp
jne 0x4f4aa2
mov byte [esp + 0x84], 1
mov dword [esp + 0x74], 0x4b6240
mov dword [esp + 0x78], 0x4b61e0
mov dword [esp + 0x88], 0
test esi, esi
je 0x4f4aa2
lea eax, [esp + 0x70]
push esi
push eax
call fcn.004c1270
add esp, 8
cmp byte [esp + 0x84], 0
je 0x4f4ac2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x4f4ac2
mov ecx, dword [esp + 0x68]
or dword [esp + 0x18], ebx
or dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
add dword [esp + 0x2c], 0x18
inc ecx
cmp ecx, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
jl 0x4f4a10
inc dword [esp + 0x34]
cmp byte [esp + 0x11], 0
jne 0x4f44e0
jmp 0x4f4afa
xor edi, edi
xor ebp, ebp
jmp 0x4f4a63
cmp byte [ebp + 0x1d], 0
jne 0x4f4b0e
mov edx, dword [esp + 0x54]
cmp dword [esp + 0x18], edx
jne 0x4f4b1a
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x1c], eax
jne 0x4f4b1a
mov al, byte [esp + 0x6c]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x7c
ret
cmp byte [esp + 0x11], 0
jne 0x4f4b6f
mov ebx, dword [esp + 0x30]
dec ebx
test ebx, ebx
jle 0x4f4b5b
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.0058e3c0
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x4f4b56
cmp esi, edx
je 0x4f4b65
dec ebx
test ebx, ebx
jg 0x4f4b32
pop edi
pop ebp
pop ebx
xor al, al
pop esi
add esp, 0x7c
ret
pop edi
pop ebp
mov al, bl
pop ebx
pop esi
add esp, 0x7c
ret
pop edi
pop ebp
pop ebx
or al, 0xff
pop esi
add esp, 0x7c
ret