Function at 0x4f45f0
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 0x4f4624
mov eax, dword [esp + 0x84]
mov ecx, dword [eax]
mov edx, dword [ecx]
test byte [edx + 0x44], 0x40
je 0x4f4624
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 0x4f461d
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 5], 1
mov dword [esp + 0x24], ecx
call fcn.0058e5a0
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 0x4f4690
mov dword [esp + 0x2c], 0x183
push ebx
push ebp
push edi
mov dword [esp + 0x34], esi
jmp 0x4f46a0
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x58]
ja 0x4f4cba
jb 0x4f46be
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x54]
jae 0x4f4cba
movzx eax, word [esp + 0xa0]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
jg 0x4f4cba
xor ebx, ebx
cmp ecx, ebx
jle 0x4f46ea
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 0x4f4710
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 0x4f4c9a
xor ebx, ebx
mov ebp, eax
jmp 0x4f471b
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x14], ebp
test dword [ebp + 0x24], 0x400
jne 0x4f4cb4
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 0x4f4878
mov edx, dword [esp + 0x94]
add edx, 4
mov dword [esp + 0x28], edx
jmp 0x4f4774
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov eax, 1
xor edx, edx
call fcn.0058e5a0
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 0x4f485e
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
call fcn.004b60c0
mov esi, eax
cmp byte [esi], 0x9e
jne 0x4f485e
cmp dword [esi + 0x1c], edi
jne 0x4f485e
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.004f2c10
add esp, 0x14
test eax, eax
je 0x4f485e
movzx ecx, word [eax + 0xc]
cmp cx, 1
jne 0x4f4824
movzx edi, word [ebp + 0x28]
xor ecx, ecx
test edi, edi
jle 0x4f481c
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0x30]
cmp eax, dword [edx]
je 0x4f481c
mov ebp, dword [esp + 0x14]
movzx ebp, word [ebp + 0x28]
inc ecx
add edx, 4
cmp ecx, ebp
jl 0x4f4808
cmp ecx, edi
mov ebp, dword [esp + 0x14]
jge 0x4f485e
movzx ecx, word [eax + 0xc]
test cl, 0x82
je 0x4f4852
cmp word [esi + 0x20], 0
jl 0x4f4852
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.004ee320
add esp, 4
test eax, eax
je 0x4f485e
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 0x4f4770
xor ebx, ebx
mov eax, dword [ebp + 0x24]
test eax, 0x1000
jne 0x4f4b8b
test eax, 0x100
je 0x4f489c
mov dword [esp + 0x28], ebx
mov dword [esp + 0x50], ebx
mov eax, 1
jmp 0x4f48ca
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x28], ecx
cmp ecx, ebx
je 0x4f4d1b
test byte [ecx + 0x38], 4
jne 0x4f4d1b
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 0x4f4b8b
mov dword [esp + 0x2c], ebx
lea esp, [esp]
movzx edi, word [ebp + 0x18]
cmp ebx, edi
mov byte [esp + 0x12], 1
jge 0x4f495b
movzx eax, word [ebp + 0x2a]
cmp ebx, eax
jl 0x4f495b
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 0x4f4930
test ecx, 0x100
je 0x4f4b76
mov byte [esp + 0x11], 0
jmp 0x4f4b76
test cl, 1
je 0x4f495b
mov esi, dword [eax]
lea eax, [ebx + 1]
cmp eax, edi
jge 0x4f495b
lea ecx, [edx + ebx*4 + 4]
mov edx, dword [ecx]
cmp dword [edx], esi
je 0x4f4956
movzx edx, word [ebp + 0x18]
inc eax
add ecx, 4
cmp eax, edx
jl 0x4f4942
jmp 0x4f495b
mov byte [esp + 0x12], 0
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4f4985
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 0x4f4991
jmp 0x4f498a
mov byte [esp + 0x13], 0
or eax, 0xffffffff
mov dword [esp + 0x20], eax
cmp byte [esp + 0x11], 0
je 0x4f49b5
test eax, eax
jl 0x4f49b5
cmp ebx, edi
jl 0x4f49b5
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 4]
shl eax, 4
cmp byte [edx + eax + 0xc], 0
jne 0x4f49b5
mov byte [esp + 0x11], 0
xor edi, edi
cmp byte [esp + 0x12], 0
je 0x4f4ab9
mov ebp, dword [esp + 0x94]
add ebp, 4
lea esp, [esp]
cmp edi, dword [esp + 0x30]
jge 0x4f4ab9
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.0058e5a0
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or eax, edx
jne 0x4f4aaa
mov eax, dword [ebp]
test eax, eax
je 0x4f4a22
nop
mov ecx, dword [eax + 4]
test ecx, 0x1000
je 0x4f4a22
test ecx, 0x40000
je 0x4f4a1b
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
jmp 0x4f4a1e
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4f4a00
test byte [esp + 0x9c], 0xc0
jne 0x4f4a31
mov byte [esp + 0x12], 0
mov esi, dword [esp + 0x20]
cmp esi, 0xffffffff
jl 0x4f4a50
cmp byte [eax], 0x9e
jne 0x4f4aaa
mov ecx, dword [esp + 0x3c]
cmp dword [eax + 0x1c], ecx
jne 0x4f4aaa
movsx edx, word [eax + 0x20]
cmp edx, esi
jmp 0x4f4a6e
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.004d6e70
add esp, 4
test eax, eax
jne 0x4f4aaa
cmp esi, 0xffffffff
je 0x4f4ae4
mov ecx, dword [esp + 0x90]
mov esi, dword [ecx]
mov eax, dword [ebp]
push esi
call fcn.004ee180
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4f4a95
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.004ad170
test eax, eax
je 0x4f4ae4
inc edi
add ebp, 0x18
cmp byte [esp + 0x12], 0
jne 0x4f49d0
test ebx, ebx
je 0x4f4ac6
movzx ecx, word [esp + 0x50]
cmp ebx, ecx
jge 0x4f4acb
mov byte [esp + 0x11], 0
mov ebp, dword [esp + 0x14]
cmp byte [esp + 0x26], 0
je 0x4f4b8b
mov byte [esp + 0x11], 1
jmp 0x4f4b9a
test byte [esp + 0x9c], 0x40
mov ecx, dword [esp + 0x14]
lea eax, [ebx + 1]
mov word [ecx + 0x1e], ax
jne 0x4f4b50
cmp byte [esp + 0x25], 0
lea edx, [edi + edi*2]
je 0x4f4b1a
mov al, byte [esp + 0x13]
xor al, byte [esp + 0x27]
mov ecx, dword [esp + 0x94]
cmp al, byte [ecx + edx*8 + 0x10]
jne 0x4f4ab9
jmp 0x4f4b50
mov eax, dword [esp + 0x94]
mov al, byte [eax + edx*8 + 0x10]
xor al, byte [esp + 0x13]
mov byte [esp + 0x27], al
je 0x4f4b4b
mov ecx, dword [esp + 0x34]
mov eax, 1
xor edx, edx
call fcn.0058e5a0
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 0x4f4b5c
mov byte [esp + 0x26], 1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.0058e5a0
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 0x4f48f0
jmp 0x4f4acf
cmp byte [esp + 0x11], 0
je 0x4f4c9a
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 0x4f4c9a
mov edx, dword [esp + 0x94]
add edx, 4
mov dword [esp + 0x2c], edx
jmp 0x4f4bd0
mov eax, 1
xor edx, edx
call fcn.0058e5a0
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 0x4f4c82
mov eax, dword [esp + 0x2c]
mov esi, dword [eax]
test esi, esi
je 0x4f4cab
mov ecx, dword [esp + 0x90]
add ecx, 0x1e8
push esi
push ecx
call fcn.004c2dd0
mov edi, eax
mov ebp, edx
mov edx, edi
add esp, 8
or edx, ebp
jne 0x4f4c62
mov byte [esp + 0x84], 1
mov dword [esp + 0x74], 0x4b6400
mov dword [esp + 0x78], 0x4b63a0
mov dword [esp + 0x88], 0
test esi, esi
je 0x4f4c62
lea eax, [esp + 0x70]
push esi
push eax
call fcn.004c1420
add esp, 8
cmp byte [esp + 0x84], 0
je 0x4f4c82
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x4f4c82
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 0x4f4bd0
inc dword [esp + 0x34]
cmp byte [esp + 0x11], 0
jne 0x4f46a0
jmp 0x4f4cba
xor edi, edi
xor ebp, ebp
jmp 0x4f4c23
cmp byte [ebp + 0x1d], 0
jne 0x4f4cce
mov edx, dword [esp + 0x54]
cmp dword [esp + 0x18], edx
jne 0x4f4cda
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x1c], eax
jne 0x4f4cda
mov al, byte [esp + 0x6c]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x7c
ret
cmp byte [esp + 0x11], 0
jne 0x4f4d2f
mov ebx, dword [esp + 0x30]
dec ebx
test ebx, ebx
jle 0x4f4d1b
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.0058e5a0
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x4f4d16
cmp esi, edx
je 0x4f4d25
dec ebx
test ebx, ebx
jg 0x4f4cf2
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