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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
mov ebp, dword [esp + 0x68]
push esi
xor eax, eax
mov dword [esp + 0x24], 0xffffffff
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp]
mov dword [esp + 0x20], ecx
push edi
mov al, byte [esi + 0x10]
mov ecx, dword [ecx + 4]
xor ebx, ebx
mov dword [esp + 0x1c], 1
lea eax, [eax + eax*8]
mov edi, dword [ecx + eax*8 + 0x4c]
lea edx, [ecx + eax*8 + 8]
mov eax, dword [ebp + 4]
mov dword [esp + 0x10], edx
test edi, edi
mov dword [esp + 0x20], eax
je 0x4a438f
mov dword [esp + 0x70], edi
jmp 0x4a43eb
mov ecx, 0xd
xor eax, eax
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x28]
mov eax, 1
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x30]
mov word [esp + 0x64], ax
mov dword [esp + 0x40], ecx
mov byte [esp + 0x66], 5
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x44], ecx
mov ecx, dword [edx + 0x10]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
mov al, byte [edx + 0x24]
test al, 1
jne 0x4a43e1
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 8]
mov dword [esp + 0x4c], ecx
lea eax, [esp + 0x38]
mov dword [esp + 0x70], eax
mov edi, eax
mov ecx, dword [edx + 0x10]
mov edx, dword [ecx + 0x1c]
push edx
call fcn.004a4730
push eax
mov dword [esp + 0x1c], eax
call fcn.004a47a0
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
add esp, 8
test eax, eax
jne 0x4a4511
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx]
test dword [edx + 0x18], 0x100000
je 0x4a4511
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x44]
test eax, eax
jne 0x4a4511
test byte [edx + 0x24], 7
jne 0x4a4511
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov dword [esp + 0x2c], ecx
jmp 0x4a445b
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 0x2c]
jae 0x4a4505
mov eax, dword [esi + 8]
mov ecx, dword [edi + 0x18]
and eax, ecx
mov ecx, dword [esi + 0xc]
and ecx, dword [edi + 0x1c]
or eax, ecx
jne 0x4a44f0
push 0
push 0
push edx
push edi
call fcn.004a2590
add esp, 0x10
test eax, eax
je 0x4a44f0
mov edx, dword [esi + 0x2c]
mov ecx, dword [esp + 0x14]
mov eax, 1
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], eax
mov word [esi + 0x28], ax
mov eax, dword [esp + 0x18]
mov dword [edx], edi
push 0x2b
push eax
lea edx, [eax + ecx + 0x1c]
mov word [esi + 0x16], 0x2b
mov word [esi + 0x12], dx
call fcn.004a46b0
mov ecx, dword [esp + 0x80]
mov word [esi + 0x14], ax
mov eax, dword [esp + 0x7c]
mov dword [esi + 0x24], 0x4000
mov ebx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
or eax, ebx
or ecx, edx
push esi
mov dword [esi], eax
push ebp
mov dword [esi + 4], ecx
call fcn.004a47d0
add esp, 0x10
mov ebx, eax
add edi, 0x28
test ebx, ebx
je 0x4a4457
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x5c
ret
test ebx, ebx
jne 0x4a46a1
mov edi, dword [esp + 0x70]
test edi, edi
je 0x4a46a1
mov eax, dword [edi + 0x24]
test eax, eax
je 0x4a453c
mov edx, dword [esp + 0x20]
push eax
xor eax, eax
push edx
mov al, byte [esi + 0x10]
push eax
call fcn.004a50b0
add esp, 0xc
test eax, eax
je 0x4a4689
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
xor eax, eax
mov dword [esi], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x18], eax
mov word [esi + 0x28], ax
mov byte [esi + 0x11], al
mov word [esi + 0x12], ax
mov ax, word [esp + 0x14]
mov dword [esi + 4], edx
mov word [esi + 0x16], ax
mov dword [esi + 0x1c], edi
mov edx, dword [ecx + 0x2c]
push edx
push edi
push ebp
call fcn.004a4fd0
mov ebx, dword [esp + 0x7c]
mov edi, eax
add esp, 0xc
mov eax, dword [ebx + 0x28]
test eax, eax
jg 0x4a45c7
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, dword [esp + 0x14]
mov dword [esi + 0x24], 0x100
neg eax
sbb al, al
and eax, ecx
mov ecx, dword [esp + 0x18]
push ecx
push edx
mov byte [esi + 0x11], al
call fcn.004a46b0
add eax, 0x10
push esi
push ebp
mov word [esi + 0x14], ax
call fcn.004a47d0
add esp, 0x10
test eax, eax
jne 0x4a46a3
jmp 0x4a4667
push ebx
call fcn.004a5060
mov ecx, dword [esp + 0x14]
add esp, 4
not eax
and eax, dword [ecx + 0x38]
not edx
and edx, dword [ecx + 0x3c]
mov ecx, eax
or ecx, edx
mov ecx, 0x240
je 0x4a45ee
mov ecx, 0x200
test edi, edi
mov dword [esi + 0x24], ecx
jne 0x4a461d
mov ecx, eax
or ecx, edx
jne 0x4a4667
test byte [ebx + 0x30], 4
jne 0x4a4667
mov ecx, dword [esp + 0x24]
test byte [ecx + 0x22], 4
jne 0x4a4667
cmp dword [0x4dc578], edi
je 0x4a4667
mov ecx, dword [ecx]
mov ecx, dword [ecx]
test byte [ecx + 0x3c], 0x40
jne 0x4a4667
mov ecx, edi
neg ecx
sbb cl, cl
and ecx, dword [esp + 0x1c]
or eax, edx
mov edx, dword [esp + 0x18]
mov byte [esi + 0x11], cl
jne 0x4a464f
mov eax, dword [esp + 0x14]
push edx
push eax
call fcn.004a46b0
mov ecx, 0xa
add esp, 8
sub ecx, edi
add eax, ecx
mov word [esi + 0x14], ax
jmp 0x4a4659
mov eax, dword [esp + 0x14]
add edx, eax
mov word [esi + 0x14], dx
push esi
push ebp
call fcn.004a47d0
add esp, 8
test eax, eax
jne 0x4a46a3
mov ecx, dword [esp + 0x10]
push 0
push ebx
push ecx
push ebp
call fcn.004a4b00
mov edx, dword [esp + 0x20]
mov ebx, eax
add esp, 0x10
mov eax, dword [edx + 0x44]
test eax, eax
jne 0x4a46a1
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 0x14]
inc ecx
mov dword [esp + 0x70], eax
test ebx, ebx
mov dword [esp + 0x1c], ecx
je 0x4a450d
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret