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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
xor ecx, ecx
push edi
cmp ebx, ecx
jne 0x4a0623
cmp byte [ebp + 0x10], cl
je 0x4a0b2b
mov ebx, dword [esi + 0x108]
cmp ebx, ecx
je 0x4a0b2b
mov byte [ebp + 0x10], cl
mov eax, dword [ebx + 4]
cmp eax, 3
jne 0x4a0a15
mov edi, 1
mov dword [esp + 0x18], 0x438f64
mov dword [esp + 0x1c], 0x4405bc
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
mov byte [esp + 0xc], cl
mov byte [esp + 0xd], 1
cmp byte [ebp + 0x14], cl
jne case.0x4a066a.7
mov eax, dword [ebx + 0x14]
cmp eax, 0xe
ja case.0x4a066a.7
jmp dword [eax*4 + 0x4a0b58]
mov eax, dword [ebx + 0x30]
push ecx
push ecx
push ecx
push ecx
push eax
mov eax, dword [ebx + 0x54]
push esi
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
mov ecx, dword [ebx + 0x18]
push esi
call fcn.0049fad0
test eax, eax
jl 0x4a0b4d
cmp dword [ebx + 0x14], edi
jne case.0x4a066a.7
add ebx, 0x34
push ebx
mov eax, esi
call fcn.004babd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebx + 0x54]
push ecx
push ecx
push ecx
push ecx
mov ecx, dword [ebx + 0x30]
push ecx
push esi
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
add ebx, 0x34
push ebx
call fcn.004a1880
test eax, eax
jl 0x4a0b4d
mov eax, esi
call fcn.004a2a00
mov edx, dword [esi + 0x94]
mov ecx, dword [esi + 0x1c]
mov dword [ecx + edx*4], eax
jmp case.0x4a066a.7
push 2
lea edx, [esp + 0x10]
push edx
mov edx, dword [ebx + 0x30]
lea eax, [esp + 0x20]
push eax
mov eax, dword [ebx + 0x54]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov byte [esp + 0x18], cl
mov byte [esp + 0x19], cl
lea ecx, [esp + 0x34]
push ecx
push edx
push esi
mov dword [esp + 0x40], 0x4405c4
mov dword [esp + 0x44], 0x4405cc
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
mov ecx, dword [ebx + 0x1c]
push 0
push 0
lea eax, [esp + 0x18]
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x20], 0xffffffff
call fcn.004b79a0
test eax, eax
jl 0x4a0b4d
mov edx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
mov ecx, dword [esp + 0x10]
push 0
push 0
push 0
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x1c]
call fcn.004a8880
mov edx, dword [ebx + 0x30]
push eax
push edx
mov ecx, esi
call fcn.004d70c0
test eax, eax
jge case.0x4a066a.7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 4
lea eax, [esp + 0x10]
push eax
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x14], cl
mov byte [esp + 0x15], cl
mov byte [esp + 0x16], cl
mov byte [esp + 0x17], cl
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x24]
push edx
push eax
mov eax, dword [ebx + 0x54]
push esi
mov dword [esp + 0x30], 0x4405c4
mov dword [esp + 0x34], 0x4405cc
mov dword [esp + 0x38], 0x4405d4
mov dword [esp + 0x3c], 0x438f74
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
mov edx, dword [ebx + 0x1c]
push 0
push 0
lea ecx, [esp + 0x18]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x20], 0xffffffff
call fcn.004b79a0
test eax, eax
jl 0x4a0b4d
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x20]
push eax
mov eax, dword [ebx + 0x30]
push ecx
push edx
push eax
mov eax, esi
call fcn.004dd1e0
test eax, eax
jge case.0x4a066a.7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 2
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [ebx + 0x30]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x24]
push eax
mov eax, dword [ebx + 0x54]
push ecx
push esi
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
mov edx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x1c]
push edx
mov edx, dword [ebx + 0x18]
push eax
push ecx
push edx
push ebx
mov ebx, esi
call fcn.004cf5d0
test eax, eax
jge case.0x4a066a.7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 2
lea eax, [esp + 0x10]
push eax
mov eax, dword [ebx + 0x30]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x24]
push edx
push eax
mov eax, dword [ebx + 0x54]
push esi
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x1c]
push ecx
push edx
push eax
push 0
jmp 0x4a0885
push 2
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [ebx + 0x30]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x24]
push eax
mov eax, dword [ebx + 0x54]
push ecx
push esi
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
mov edx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x1c]
push edx
push eax
push ecx
push eax
jmp 0x4a0885
mov edx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x54]
push ecx
push ecx
push ecx
push ecx
push edx
push esi
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
mov eax, dword [esi + 8]
add ebx, 0x34
test byte [eax + 0xb2], 0x40
je 0x4a0947
push ebx
call fcn.004bb0b0
test eax, eax
jge 0x4a095c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push edi
lea ecx, [esi + 0x78]
push ecx
push ebx
mov ebx, esi
call fcn.004c9cc0
test eax, eax
jl 0x4a0b4d
mov eax, esi
call fcn.004a2a00
mov edx, dword [esi + 0x98]
mov ecx, dword [esi + 0x1c]
mov dword [ecx + edx*4], eax
jmp case.0x4a066a.7
mov edx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x54]
push ecx
push ecx
push ecx
push ecx
push edx
push esi
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
add ebx, 0x34
push ebx
mov ebx, esi
call fcn.004d3f60
jmp 0x4a088d
mov eax, dword [ebx + 0x30]
push ecx
push ecx
push ecx
push ecx
push eax
mov eax, dword [ebx + 0x54]
push esi
call fcn.004a1250
test eax, eax
jl 0x4a0b4d
mov ecx, dword [ebp + 0xc]
push ecx
add ebx, 0x34
push ebx
mov eax, esi
call fcn.004d4710
jmp 0x4a088d
mov edx, dword [ebx + 0x18]
mov eax, dword [edx + 0x20]
push ecx
mov ecx, dword [ebp + 0xc]
push ecx
push eax
mov ecx, esi
call fcn.0049fbc0
test eax, eax
jl 0x4a0b4d
cmp byte [ebp + 0x10], 0
je 0x4a0b2b
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x108]
push edx
push 0
push eax
push ecx
mov ecx, esi
call fcn.004a05f0
test eax, eax
jge 0x4a0b2b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 1
jne 0x4a0b36
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 8]
push edx
push 0
push eax
push ecx
mov ecx, esi
call fcn.004a05f0
test eax, eax
jl 0x4a0b4d
mov edx, dword [esi + 0xa0]
mov eax, dword [esi + 0x1c]
cmp dword [eax + edx*4], 0xffffffff
lea eax, [eax + edx*4]
je 0x4a0a6b
mov eax, dword [eax]
lea edi, [esp + 0xc]
call fcn.004a3690
test eax, eax
jl 0x4a0b14
cmp byte [esp + 0xc], 0
jne 0x4a0b14
mov ecx, dword [esi + 0x9c]
mov edx, dword [esi + 0x1c]
cmp dword [edx + ecx*4], 0xffffffff
lea eax, [edx + ecx*4]
je 0x4a0a97
mov eax, dword [eax]
lea edi, [esp + 0xc]
call fcn.004a3690
test eax, eax
jl 0x4a0b14
cmp byte [esp + 0xc], 0
jne 0x4a0b14
mov eax, dword [esi + 0x98]
mov ecx, dword [esi + 0x1c]
cmp dword [ecx + eax*4], 0xffffffff
lea eax, [ecx + eax*4]
je 0x4a0abf
mov eax, dword [eax]
lea edi, [esp + 0xc]
call fcn.004a3690
test eax, eax
jl 0x4a0b14
cmp byte [esp + 0xc], 0
jne 0x4a0b14
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x1c]
cmp dword [eax + edx*4], 0xffffffff
lea eax, [eax + edx*4]
je 0x4a0ae7
mov eax, dword [eax]
lea edi, [esp + 0xc]
call fcn.004a3690
test eax, eax
jl 0x4a0b14
cmp byte [esp + 0xc], 0
jne 0x4a0b14
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x4a0a1e
cmp byte [ebp + 0x10], bl
je 0x4a0b01
mov ebx, dword [esi + 0x108]
mov byte [ebp + 0x10], 0
test ebx, ebx
jne 0x4a0a1e
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebx + 0xc]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004d8d10
test eax, eax
jl 0x4a0b4d
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x4405e0
push ecx
xor edx, edx
mov eax, esi
call fcn.004a49f0
add esp, 8
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10