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

Disassembly:
sub esp, 0xfc
push ebx
push ebp
push esi
push edi
mov edi, eax
mov ebx, 0xfffffffe
test dword [edi + 0x24], ebx
je 0x4a0d34
mov eax, dword [edi + 0x20]
test dword [eax + 4], ebx
je 0x4a0d34
mov eax, edi
call fcn.004a3230
xor ebp, ebp
cmp eax, ebp
jne 0x4a0d36
mov eax, dword [edi + 0x28]
or esi, 0xffffffff
cmp eax, ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x4a08dd
cmp dword [eax + 0x10], 0x1f
jae 0x4a08dd
mov ecx, eax
mov ecx, dword [ecx + 0x10]
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
mov esi, dword [eax + eax + 0x553970]
mov edx, dword [eax + eax + 0x553968]
add eax, eax
push 0x927c
lea eax, [ebx + 3]
mov ecx, edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edx
call fcn.004a31f0
cmp eax, ebp
je 0x4a08dd
mov dword [eax + 0x10], esi
push 0x6c
lea eax, [esp + 0xa0]
push ebp
push eax
mov dword [esp + 0xa4], ebp
call fcn.005185b0
or eax, 0xffffffff
add esp, 0xc
test dword [edi + 0x24], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x28], ebp
jbe 0x4a0ab2
lea esp, [esp]
mov ecx, dword [edi + 0x20]
test dword [ecx + ebp*8 + 4], 0xfffffffe
jne 0x4a09b0
cmp ebp, esi
jne 0x4a0aa2
cmp dword [esp + 0x20], 5
jne 0x4a0aa2
mov ebx, dword [edi + 0x1c]
mov edx, dword [esp + ebp*4 + 0x28]
lea eax, [esp + ebp*4 + 0x28]
shr ebx, 1
cmp ebp, esi
mov dword [esp + 0x18], edx
mov byte [esp + 0x17], 1
jne 0x4a09ed
test eax, eax
je 0x4a0b0d
lea ecx, [esp + 0x17]
push ecx
push eax
mov esi, edi
call fcn.004a33d0
test eax, eax
jne 0x4a0d36
cmp byte [esp + 0x17], al
je 0x4a0a02
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x9c]
push eax
push ebp
call fcn.004a3810
jmp 0x4a0a15
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x9c]
push edx
push ebp
call fcn.004a5010
test eax, eax
jne 0x4a0d36
mov ecx, dword [esp + ebp*4 + 0x98]
test ecx, ecx
je 0x4a0a9e
mov edx, dword [edi + 0x1c]
lea eax, [ecx + 0xc]
shr edx, 1
cmp eax, edx
jae 0x4a0a9e
mov esi, dword [edi + 0x18]
add esi, ecx
mov eax, ebx
sub eax, dword [esp + 0x18]
mov ecx, eax
mov edx, eax
shr edx, 0x10
and ecx, 0xff0000
or ecx, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
mov ax, word [esi + 2]
shr ecx, 8
shl edx, 8
or ecx, edx
rol ax, 8
cmp ax, 7
mov dword [esi + 8], ecx
jne 0x4a0a93
mov eax, dword [edi + 0x1c]
shr eax, 1
sub eax, ebx
cmp eax, 4
mov dword [esp + 0x18], eax
jbe 0x4a0a93
lea ecx, [esp + 0x18]
call fcn.0049b570
mov ecx, dword [esp + 0x18]
mov dword [esi + 4], ecx
mov dword [esp + ebp*4 + 0x98], 0
mov esi, dword [esp + 0x1c]
mov edx, dword [edi + 0x24]
add ebp, 1
shr edx, 1
cmp ebp, edx
jb 0x4a0990
mov eax, dword [edi + 0x10]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4a0d34
mov ebp, dword [edi + 0x14]
test ebp, ebp
mov dword [esp + 0x20], ebp
je 0x4a0d34
mov eax, dword [edi + 0x1c]
shr eax, 1
sub eax, dword [esp + 0x94]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x1c]
mov esi, eax
shr esi, 1
lea ebx, [esi + ebp]
cmp ebx, 0x7fffffff
jbe 0x4a0b1d
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4a0b02
push eax
call fcn.0044d390
add esp, 4
and dword [edi + 0x1c], 1
mov dword [edi + 0x18], 0
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
and eax, 1
cmp ebx, esi
jne 0x4a0b2c
mov eax, dword [edi + 0x18]
jmp 0x4a0c38
test eax, eax
je 0x4a0b67
test ebx, ebx
mov eax, dword [edi + 0x18]
je 0x4a0b46
push ebx
push eax
call fcn.0044d0b0
add esp, 8
mov dword [edi + 0x18], eax
jmp 0x4a0b5a
test eax, eax
je 0x4a0b5a
push eax
call fcn.0044d390
add esp, 4
mov dword [edi + 0x18], 0
mov eax, dword [edi + 0x18]
test eax, eax
jne 0x4a0c2a
jmp 0x4a0b02
cmp ebx, 0x100000
jae 0x4a0b80
mov edx, 1
cmp ebx, edx
jb 0x4a0b8e
add edx, edx
cmp edx, ebx
jbe 0x4a0b78
jmp 0x4a0b8e
mov edx, ebx
and edx, 0xfffffc00
add edx, 0x400
cmp esi, 0x100000
jae 0x4a0bce
cmp esi, 1
mov eax, esi
jbe 0x4a0bca
test eax, eax
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
jge 0x4a0baf
fadd dword [0x567d50]
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
shr ecx, 0x17
sub ecx, 0x7f
mov eax, 1
shl eax, cl
cmp eax, esi
jae 0x4a0bca
add eax, eax
mov ecx, eax
jmp 0x4a0bdc
mov ecx, esi
and ecx, 0x7ffffc00
add ecx, 0x400
cmp ecx, edx
mov eax, dword [edi + 0x18]
je 0x4a0c26
xor ebp, ebp
cmp edx, ebp
je 0x4a0bf8
push edx
push eax
call fcn.0044d0b0
add esp, 8
mov dword [edi + 0x18], eax
jmp 0x4a0c08
cmp eax, ebp
je 0x4a0c08
push eax
call fcn.0044d390
add esp, 4
mov dword [edi + 0x18], ebp
mov eax, dword [edi + 0x18]
cmp eax, ebp
jne 0x4a0c26
and dword [edi + 0x1c], 1
mov dword [edi + 0x18], ebp
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
mov ebp, dword [esp + 0x20]
mov ecx, dword [edi + 0x1c]
lea edx, [ebx + ebx]
and ecx, 1
or ecx, edx
mov dword [edi + 0x1c], ecx
mov ecx, eax
test ecx, ecx
je 0x4a0b0d
mov ecx, dword [esp + 0x1c]
push ebp
push ecx
add eax, esi
push eax
call fcn.00519ac0
add esp, 0xc
test byte [edi + 0x1c], 2
je 0x4a0cff
mov ecx, dword [edi + 0x1c]
test cl, 1
jne 0x4a0b0d
shr ecx, 1
cmp ecx, 0x100000
mov eax, ecx
jae 0x4a0c8c
lea edx, [ecx - 1]
test ecx, edx
jne 0x4a0c96
test ecx, ecx
je 0x4a0c85
lea eax, [ecx + ecx]
jmp 0x4a0c96
mov eax, 1
jmp 0x4a0c96
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, ecx
jbe 0x4a0cc7
test eax, eax
je 0x4a0cb0
push eax
mov eax, dword [edi + 0x18]
push eax
call fcn.0044d0b0
add esp, 8
mov dword [edi + 0x18], eax
jmp 0x4a0cc7
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4a0cc7
push eax
call fcn.0044d390
add esp, 4
mov dword [edi + 0x18], 0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4a0b0d
mov ecx, dword [edi + 0x1c]
shr ecx, 1
mov byte [ecx + eax], 0
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
mov eax, ecx
and eax, 0xfffffffe
add eax, 2
and ecx, 1
xor eax, ecx
mov dword [edi + 0x1c], eax
shr eax, 1
lea eax, [eax + edx - 1]
test eax, eax
je 0x4a0b0d
mov eax, dword [esp + 0x24]
mov ecx, eax
mov edx, eax
shr edx, 0x10
and ecx, 0xff0000
or ecx, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
mov eax, dword [edi + 0x18]
shl edx, 8
shr ecx, 8
or ecx, edx
mov edx, dword [esp + 0x104]
mov dword [eax + edx + 8], ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret