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

Disassembly:
sub esp, 0xf4
push ebx
push ebp
push esi
push edi
mov edi, eax
mov ebx, 0xfffffffe
test dword [edi + 0x24], ebx
je 0x4a30f9
mov eax, dword [edi + 0x20]
test dword [eax + 4], ebx
je 0x4a30f9
mov eax, edi
call fcn.004a4a50
xor ebp, ebp
cmp eax, ebp
jne 0x4a30fb
or eax, 0xffffffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x28]
cmp eax, ebp
je 0x4a2d2d
cmp dword [eax + 0x10], 0x1f
jae 0x4a2d2d
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 + 0x18], esi
mov dword [esp + 0x1c], edx
call fcn.004a4a10
cmp eax, ebp
je 0x4a2d2d
mov dword [eax + 0x10], esi
push 0x6c
lea eax, [esp + 0x98]
push ebp
push eax
mov dword [esp + 0x9c], ebp
call fcn.005185b0
or eax, 0xffffffff
add esp, 0xc
test dword [edi + 0x24], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
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 + 0x20], ebp
jbe 0x4a2eba
mov ecx, dword [edi + 0x20]
test dword [ecx + ebp*8 + 4], 0xfffffffe
jne 0x4a2df5
cmp ebp, dword [esp + 0x14]
jne 0x4a2eaa
cmp dword [esp + 0x18], 5
jne 0x4a2eaa
mov ebx, dword [edi + 0x1c]
mov edx, dword [esp + ebp*4 + 0x20]
lea eax, [esp + ebp*4 + 0x20]
shr ebx, 1
cmp ebp, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
mov byte [esp + 0x13], 0
jne 0x4a2e49
test eax, eax
je 0x4a2f11
lea ecx, [esp + 0x13]
push ecx
push eax
mov esi, edi
call fcn.004a4be0
test eax, eax
jne 0x4a30fb
cmp byte [esp + 0x13], al
je 0x4a2e49
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x94]
push eax
push ebp
call fcn.004a3810
jmp 0x4a2e5c
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x94]
push edx
push ebp
call fcn.004a5010
test eax, eax
jne 0x4a30fb
mov ecx, dword [esp + ebp*4 + 0x90]
test ecx, ecx
je 0x4a2eaa
mov edx, dword [edi + 0x1c]
lea eax, [ecx + 0xc]
shr edx, 1
cmp eax, edx
jae 0x4a2eaa
mov eax, dword [edi + 0x18]
add eax, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x1c]
cmp word [eax + 2], 7
mov dword [eax + 8], ecx
jne 0x4a2e9f
mov ecx, dword [edi + 0x1c]
shr ecx, 1
sub ecx, ebx
cmp ecx, 4
jbe 0x4a2e9f
mov dword [eax + 4], ecx
mov dword [esp + ebp*4 + 0x90], 0
mov edx, dword [edi + 0x24]
add ebp, 1
shr edx, 1
cmp ebp, edx
jb 0x4a2dd3
mov eax, dword [edi + 0x10]
test eax, eax
mov dword [esp + 0x18], eax
je 0x4a30f9
mov ebp, dword [edi + 0x14]
test ebp, ebp
je 0x4a30f9
mov eax, dword [edi + 0x1c]
shr eax, 1
sub eax, dword [esp + 0x8c]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x1c]
mov ebx, eax
shr ebx, 1
lea esi, [ebx + ebp]
cmp esi, 0x7fffffff
jbe 0x4a2f21
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4a2f06
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, 0xf4
ret
and eax, 1
cmp esi, ebx
jne 0x4a2f30
mov eax, dword [edi + 0x18]
jmp 0x4a3020
test eax, eax
je 0x4a2f51
test esi, esi
mov eax, dword [edi + 0x18]
je 0x4a2fe0
push esi
push eax
call fcn.0044d0b0
mov dword [edi + 0x18], eax
add esp, 8
jmp 0x4a2ff4
cmp esi, 0x100000
jae 0x4a2f6a
mov edx, 1
cmp esi, edx
jb 0x4a2f78
add edx, edx
cmp edx, esi
jbe 0x4a2f62
jmp 0x4a2f78
mov edx, esi
and edx, 0xfffffc00
add edx, 0x400
cmp ebx, 0x100000
jae 0x4a2fb8
cmp ebx, 1
mov eax, ebx
jbe 0x4a2fb4
test eax, eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jge 0x4a2f99
fadd dword [0x567d50]
fstp dword [esp + 0x1c]
mov eax, 1
mov ecx, dword [esp + 0x1c]
shr ecx, 0x17
sub ecx, 0x7f
shl eax, cl
cmp eax, ebx
jae 0x4a2fb4
add eax, eax
mov ecx, eax
jmp 0x4a2fc6
mov ecx, ebx
and ecx, 0x7ffffc00
add ecx, 0x400
cmp ecx, edx
mov eax, dword [edi + 0x18]
je 0x4a3012
test edx, edx
je 0x4a2fe0
push edx
push eax
call fcn.0044d0b0
mov dword [edi + 0x18], eax
add esp, 8
jmp 0x4a2ff4
test eax, eax
je 0x4a2ff4
push eax
call fcn.0044d390
add esp, 4
mov dword [edi + 0x18], 0
mov eax, dword [edi + 0x18]
test eax, eax
jne 0x4a3012
and dword [edi + 0x1c], 1
mov dword [edi + 0x18], eax
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf4
ret
mov ecx, dword [edi + 0x1c]
lea edx, [esi + esi]
and ecx, 1
or ecx, edx
mov dword [edi + 0x1c], ecx
mov ecx, eax
test ecx, ecx
je 0x4a2f11
mov ecx, dword [esp + 0x18]
push ebp
push ecx
add eax, ebx
push eax
call fcn.00519ac0
add esp, 0xc
test byte [edi + 0x1c], 2
je 0x4a30e7
mov ecx, dword [edi + 0x1c]
test cl, 1
jne 0x4a2f11
shr ecx, 1
cmp ecx, 0x100000
mov eax, ecx
jae 0x4a3074
lea edx, [ecx - 1]
test ecx, edx
jne 0x4a307e
test ecx, ecx
je 0x4a306d
lea eax, [ecx + ecx]
jmp 0x4a307e
mov eax, 1
jmp 0x4a307e
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, ecx
jbe 0x4a30af
test eax, eax
je 0x4a3098
push eax
mov eax, dword [edi + 0x18]
push eax
call fcn.0044d0b0
add esp, 8
mov dword [edi + 0x18], eax
jmp 0x4a30af
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4a30af
push eax
call fcn.0044d390
add esp, 4
mov dword [edi + 0x18], 0
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4a2f11
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 0x4a2f11
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x14]
mov dword [ecx + eax + 8], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf4
ret