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

Disassembly:
sub esp, 0x48
push ebx
mov ebx, dword [esp + 0x50]
mov eax, dword [ebx + 0xdc]
mov ecx, dword [ebx]
push ebp
mov ebp, dword [ecx + 0x148]
push esi
lea esi, [eax + eax*2]
mov eax, dword [esp + 0x5c]
shl esi, 4
add esi, ebp
cmp esi, eax
push edi
mov dl, 1
jne 0x4a8ec1
mov byte [ebx + 0x1b6], dl
mov esi, dword [esp + 0x68]
mov byte [ebx + 0x1b7], dl
test byte [esi], 0x80
je 0x4a8edc
mov edi, dword [ecx + 0x10c]
mov dword [esp + 0x5c], edi
jmp 0x4a8ee8
mov dword [esp + 0x5c], 0
mov edi, dword [esp + 0x5c]
lea ecx, [edi + 2]
mov dword [esp + 0x14], ecx
mov cl, byte [esp + 0x70]
test cl, cl
je 0x4a8f12
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x1c]
push ecx
push edx
push esi
push eax
call fcn.004a9190
add esp, 0x14
jmp 0x4a8f2c
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
lea edx, [esp + 0x1c]
push edx
push ecx
push esi
push eax
push edi
call fcn.004a90c0
add esp, 0x18
test eax, eax
jne 0x4a8f3b
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x48
ret
movzx bp, byte [esi]
movzx dx, byte [esi + 1]
mov ecx, edi
shl ebp, 8
add ebp, edx
and ebp, 0x7fff
neg ecx
sbb ecx, ecx
and ecx, 0x8000
mov dword [esp + 0x1c], ecx
sub ecx, esi
add ecx, eax
mov eax, dword [esp + 0x70]
and ecx, 0xffff
mov byte [esi + 1], cl
shr ecx, 8
test edi, edi
mov byte [esi], cl
mov dword [esp + 0x10], eax
je 0x4a8f9f
mov ecx, edi
mov esi, eax
sub esi, edi
mov edi, dword [ebx + 0x58]
mov eax, ecx
add edi, 2
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
push ecx
push ebx
call fcn.004c1560
mov ecx, eax
and ecx, edx
add esp, 8
cmp ecx, 0xffffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jne 0x4a8fc8
pop edi
pop esi
pop ebp
or eax, ecx
pop ebx
add esp, 0x48
ret
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x6c]
push edx
push eax
push ecx
call fcn.004bf8d0
add esp, 0xc
push eax
push ebx
call fcn.004bdc50
mov edx, dword [esp + 0x7c]
push edx
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x78]
push edi
push eax
call dword [eax + 0x24]
add esp, 0x20
test eax, eax
jne 0x4a900d
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x48
ret
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x28]
push ecx
push edx
push 0
push 0
push 0
push edi
push eax
call dword [eax + 0x28]
mov edx, dword [esp + 0x2c]
mov edi, dword [ebx + 0x58]
sub ebp, edx
add ebp, esi
mov esi, edx
add edi, eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
mov ecx, ebp
mov edx, ecx
shr ecx, 2
add edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebx + 0x58]
mov esi, dword [esp + 0x7c]
lea ecx, [esp + 0x44]
push ecx
add edx, eax
push edx
push esi
call dword [esi + 0x2c]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov edx, dword [ebx + 0x58]
add eax, ecx
add eax, dword [esp + 0x94]
add eax, ebp
and eax, 0xffff
mov byte [edx + 1], al
mov ecx, dword [ebx + 0x58]
shr eax, 8
mov byte [ecx], al
mov edx, dword [ebx + 0x58]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push edx
push eax
push ecx
push esi
push ebx
call fcn.004c13a0
add esp, 0x3c
neg eax
pop edi
sbb eax, eax
pop esi
and eax, 0xfffffffd
pop ebp
add eax, 2
pop ebx
add esp, 0x48
ret