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

Disassembly:
sub esp, 0x8c
push ebx
push ebp
push esi
mov esi, dword [0xc68f80]
xor eax, eax
mov dword [esp + 0x3c], eax
push edi
test esi, esi
jle 0x4a9216
nop
movzx eax, word [eax*2 + 0xc68380]
mov ecx, eax
mov word [esp + 0x10], ax
mov edx, ecx
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
shr edx, 8
or ecx, eax
mov dword [esp + 0x28], edx
shr ecx, 1
imul eax, ecx, 0x1a
add eax, 0x5d7692
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], eax
or dword [eax], 0x10
mov eax, dword [eax]
mov dword [esp + 0x38], eax
lea eax, [edx - 2]
mov byte [esp + 0x11], al
mov byte [esp + 0x14], al
movzx eax, word [esp + 0x10]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
mov dword [esp + 0x24], eax
lea eax, [eax + 0x5d7692]
mov dword [esp + 0x4c], eax
mov al, byte [esp + 0x10]
add al, 2
mov byte [esp + 0x10], al
mov byte [esp + 0x1a], al
movzx eax, word [esp + 0x10]
mov ecx, eax
mov byte [esp + 0x11], dl
shr ecx, 1
and eax, 0xfe
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
mov dword [esp + 0x20], eax
lea eax, [eax + 0x5d7692]
mov dword [esp + 0x50], eax
movzx eax, word [esp + 0x10]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul ebp, ecx, 0x1a
lea eax, [ebp + 0x5d7692]
mov dword [esp + 0x54], eax
lea eax, [edx + 2]
mov byte [esp + 0x11], al
movzx eax, word [esp + 0x10]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul ebx, ecx, 0x1a
lea eax, [ebx + 0x5d7692]
mov dword [esp + 0x58], eax
movzx eax, byte [esp + 0x1a]
sub al, 2
mov byte [esp + 0x10], al
movzx eax, word [esp + 0x10]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul esi, ecx, 0x1a
lea eax, [esi + 0x5d7692]
movsx ebp, word [ebp + 0x5d7696]
mov dword [esp + 0x5c], eax
mov al, byte [esp + 0x1a]
sub al, 4
movsx esi, word [esi + 0x5d7696]
mov byte [esp + 0x10], al
mov byte [esp + 0x1b], al
movzx eax, word [esp + 0x10]
mov ecx, eax
mov byte [esp + 0x11], dl
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
mov dword [esp + 0x44], esi
or ecx, eax
mov dword [esp + 0x34], ebp
shr ecx, 1
imul edi, ecx, 0x1a
lea eax, [edi + 0x5d7692]
mov dword [esp + 0x60], eax
movzx eax, word [esp + 0x10]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul edx, ecx, 0x1a
lea eax, [edx + 0x5d7692]
mov dword [esp + 0x64], eax
mov al, byte [esp + 0x14]
mov byte [esp + 0x11], al
movzx eax, word [esp + 0x10]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul ecx, ecx, 0x1a
lea eax, [ecx + 0x5d7692]
mov dword [esp + 0x68], eax
movzx eax, byte [esp + 0x1a]
sub al, 2
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x28]
mov byte [esp + 0x11], al
mov eax, dword [esp + 0x1c]
movsx eax, word [eax + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
movsx eax, word [eax + 0x5d7696]
mov dword [esp + 0x24], eax
movsx eax, word [edx + 0x5d7696]
movsx edx, word [ebx + 0x5d7696]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
movsx eax, word [eax + 0x5d7696]
mov dword [esp + 0x20], eax
movsx eax, word [ecx + 0x5d7696]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
movsx eax, word [edi + 0x5d7696]
mov dword [esp + 0x30], eax
lea ebx, [ecx + edx]
add ebx, ebp
add ebx, esi
sar ebx, 2
mov eax, ebx
sub eax, ecx
mov ecx, ebx
sub ecx, esi
mov esi, ebx
sub ebx, edx
sub esi, ebp
cdq
mov ebp, eax
xor ebp, edx
sub ebp, edx
mov eax, ecx
mov ecx, ebp
cdq
mov edi, eax
mov eax, esi
xor edi, edx
sub edi, edx
cdq
mov esi, eax
mov eax, ebx
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
xor edx, edx
test ebp, ebp
cmovle ecx, edx
cmp edi, ecx
cmovle edi, ecx
mov ecx, eax
cmp esi, edi
cmovle esi, edi
cmp eax, esi
cmovle ecx, esi
cmp ebp, ecx
je 0x4a8e81
cmp eax, ecx
je 0x4a8e81
mov ecx, dword [esp + 0x38]
and ecx, 0xfffffffe
jmp 0x4a8e88
mov ecx, dword [esp + 0x38]
or ecx, 1
mov eax, dword [esp + 0x1c]
xor edx, edx
mov ebp, dword [esp + 0x44]
mov esi, 0x401
mov edi, dword [esp + 0x34]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
test eax, eax
mov ecx, eax
cmovle ecx, edx
cmp eax, esi
mov edx, edi
cmovl esi, eax
cmp ebp, ecx
mov eax, ebp
cmovle eax, ecx
cmp ebp, esi
mov ecx, ebp
cmovge ecx, esi
cmp edi, eax
cmovle edx, eax
xor ebx, ebx
cmp ebp, esi
mov eax, 2
mov esi, dword [esp + 0x24]
setl bl
cmp edi, ecx
cmovl ebx, eax
mov eax, edi
cmovge eax, ecx
cmp esi, edx
mov ecx, esi
cmovle ecx, edx
cmp esi, eax
mov edx, 3
cmovl ebx, edx
mov edx, esi
mov esi, dword [esp + 0x28]
cmovge edx, eax
cmp esi, ecx
mov eax, esi
cmovle eax, ecx
cmp esi, edx
mov ecx, 4
cmovl ebx, ecx
mov ecx, esi
mov esi, dword [esp + 0x3c]
cmovge ecx, edx
cmp esi, eax
mov edx, esi
cmovle edx, eax
cmp esi, ecx
mov eax, 5
cmovl ebx, eax
mov eax, esi
mov esi, dword [esp + 0x20]
cmovge eax, ecx
cmp esi, edx
mov ecx, esi
cmovle ecx, edx
cmp esi, eax
mov edx, 6
cmovl ebx, edx
mov edx, esi
cmovge edx, eax
mov eax, dword [esp + 0x2c]
cmp eax, ecx
mov esi, eax
cmovle esi, ecx
cmp eax, edx
mov ecx, 7
cmovl ebx, ecx
cmp eax, edx
cmovge eax, edx
mov edx, dword [esp + 0x30]
cmp edx, esi
mov ecx, edx
cmovle ecx, esi
cmp edx, eax
mov esi, 8
cmovl ebx, esi
mov esi, dword [esp + 0x1c]
cmp edx, eax
cmovge edx, eax
cmp ebx, 0xf
mov eax, 0xf
cmovg ebx, eax
mov al, byte [esi + 0x18]
shl bl, 4
and al, 0xf
or bl, al
mov byte [esi + 0x18], bl
test ecx, ecx
je 0x4a8fd3
test dword [esi], 0x4000000
jne 0x4a8fbd
mov eax, ecx
sub eax, edx
sar eax, 3
cmp eax, 0x7f
jle 0x4a8faf
mov eax, 0x7f
jmp 0x4a8fba
cmp eax, 1
mov ebx, 1
cmovl eax, ebx
mov byte [esi + 0x13], al
test edx, edx
jle 0x4a8fce
cmp ecx, 0x200
jge 0x4a8fce
or dword [esi], 0x20
jmp 0x4a8fdf
and dword [esi], 0xffffffdf
jmp 0x4a8fdf
test dword [esi], 0x4000000
jne 0x4a8fdf
mov byte [esi + 0x13], 0
cmp dword [esp + 0x14], 0
jne 0x4a91f9
test ebp, ebp
jne 0x4a91f9
test edi, edi
jne 0x4a91f9
cmp dword [esp + 0x3c], edi
jne 0x4a91f9
or dword [esi], 0x1000000
mov ecx, 1
nop
mov eax, dword [esp + ecx*4 + 0x48]
test dword [eax], 0x200
jne 0x4a9024
inc ecx
cmp ecx, 9
jl 0x4a9010
jmp 0x4a902a
and dword [esi], 0xfeffffff
mov edi, dword [esi]
test edi, 0x1000000
je 0x4a91ff
mov eax, dword [esp + 0x20]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x7c], eax
mov ax, word [esp + 0x10]
mov word [esp + 0x14], ax
mov dl, byte [esp + 0x15]
mov al, byte [esp + 0x1b]
add dl, 4
mov byte [esp + 0x14], al
mov bl, byte [esp + 0x1a]
mov byte [esp + 0x15], dl
movzx eax, word [esp + 0x14]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
movsx eax, word [eax + 0x5d7696]
mov dword [esp + 0x80], eax
lea eax, [ebx - 2]
mov byte [esp + 0x14], al
movzx eax, word [esp + 0x14]
mov ecx, eax
mov byte [esp + 0x14], bl
shr ecx, 1
and eax, 0xfe
and ecx, 0x7f00
add bl, 2
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
movsx eax, word [eax + 0x5d7696]
mov dword [esp + 0x84], eax
movzx eax, word [esp + 0x14]
mov ecx, eax
mov byte [esp + 0x14], bl
shr ecx, 1
and eax, 0xfe
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
movsx eax, word [eax + 0x5d7696]
mov dword [esp + 0x88], eax
movzx eax, word [esp + 0x14]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
movsx eax, word [eax + 0x5d7696]
mov dword [esp + 0x8c], eax
lea eax, [edx - 2]
mov byte [esp + 0x15], al
sub dl, 4
movzx eax, word [esp + 0x14]
mov ecx, eax
mov byte [esp + 0x15], dl
shr ecx, 1
and eax, 0xfe
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
movsx eax, word [eax + 0x5d7696]
mov dword [esp + 0x90], eax
movzx eax, word [esp + 0x14]
mov ecx, eax
shr ecx, 1
and ecx, 0x7f00
and eax, 0xfe
sub dl, 2
or ecx, eax
mov byte [esp + 0x15], dl
shr ecx, 1
imul eax, ecx, 0x1a
movsx eax, word [eax + 0x5d7696]
mov dword [esp + 0x94], eax
movzx eax, word [esp + 0x14]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
mov ecx, dword [0x595a80]
movsx eax, word [eax + 0x5d7696]
mov dword [esp + 0x98], eax
lea eax, [ecx*8]
sub eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
xor ecx, ecx
cmp dword [esp + ecx*4 + 0x6c], eax
jg 0x4a91ef
inc ecx
cmp ecx, 0xc
jl 0x4a91e1
jmp 0x4a91ff
and edi, 0xfeffffff
mov dword [esi], edi
jmp 0x4a91ff
and dword [esi], 0xfeffffff
mov eax, dword [esp + 0x40]
mov esi, dword [0xc68f80]
inc eax
mov dword [esp + 0x40], eax
cmp eax, esi
jl 0x4a8be0
xor ebp, ebp
test esi, esi
jle 0x4a937e
movzx eax, word [ebp*2 + 0xc68380]
mov ecx, eax
mov word [esp + 0x10], ax
mov edx, ecx
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
shr edx, 8
or ecx, eax
shr ecx, 1
imul esi, ecx, 0x1a
lea eax, [edx + 2]
mov byte [esp + 0x11], al
movzx eax, word [esp + 0x10]
add byte [esp + 0x10], 2
mov ecx, eax
shr ecx, 1
and eax, 0xfe
and ecx, 0x7f00
or ecx, eax
movzx eax, word [esp + 0x10]
shr ecx, 1
imul edi, ecx, 0x1a
mov ecx, eax
shr ecx, 1
and eax, 0xfe
and ecx, 0x7f00
mov byte [esp + 0x11], dl
or ecx, eax
movzx eax, word [esp + 0x10]
shr ecx, 1
imul ebx, ecx, 0x1a
add edi, 0x5d7692
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
add ebx, 0x5d7692
imul eax, ecx, 0x1a
add eax, 0x5d7692
cmp byte [esi + 0x5d76a5], 0xaa
ja 0x4a92e1
cmp byte [edi + 0x13], 0xaa
ja 0x4a92e1
cmp byte [ebx + 0x13], 0xaa
ja 0x4a92e1
cmp byte [eax + 0x13], 0xaa
ja 0x4a92e1
and dword [esi + 0x5d7692], 0xfffbffff
jmp 0x4a92eb
or dword [esi + 0x5d7692], 0x40000
xor ecx, ecx
mov edx, 4
cmp byte [eax + 0x13], cl
mov eax, 8
cmovne ecx, eax
xor eax, eax
cmp byte [ebx + 0x13], al
cmovne eax, edx
mov edx, 2
add ecx, eax
xor eax, eax
cmp byte [edi + 0x13], al
cmovne eax, edx
add ecx, eax
xor eax, eax
cmp byte [esi + 0x5d76a5], al
setne al
mov al, byte [ecx + eax + 0x595c1c]
xor al, byte [esi + 0x5d76a7]
and al, 0xf
xor al, byte [esi + 0x5d76a7]
mov byte [esi + 0x5d76a7], al
mov edx, dword [esi + 0x5d7692]
test edx, 0x1000000
je 0x4a936f
movzx ecx, al
and ecx, 0xf
lea eax, [ecx*8]
sub eax, ecx
test byte [eax*2 + 0x593270], 0x3c
jne 0x4a936f
and edx, 0xfeffffff
mov dword [esi + 0x5d7692], edx
mov esi, dword [0xc68f80]
inc ebp
cmp ebp, esi
jl 0x4a9220
xor ebx, ebx
test esi, esi
jle 0x4a94e7
nop dword [eax + eax]
movzx eax, word [ebx*2 + 0xc68380]
mov ecx, eax
mov word [esp + 0x10], ax
mov edx, ecx
shr edx, 8
test byte [0x5cf410], 0x80
mov dword [esp + 0x34], edx
jne 0x4a94c3
shr ecx, 1
and eax, 0xfe
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul edi, ecx, 0x1a
add edi, 0x5d7692
mov dword [esp + 0x48], edi
cmp word [edi + 4], 0
jne 0x4a94c3
movzx ecx, byte [edi + 0x15]
and ecx, 0xf
lea eax, [ecx*8]
sub eax, ecx
test byte [eax*2 + 0x593270], 1
je 0x4a94c3
lea eax, [edx - 2]
mov dl, byte [esp + 0x10]
mov byte [esp + 0x11], al
add dl, 0xfe
movzx eax, word [esp + 0x10]
mov ecx, eax
mov byte [esp + 0x10], dl
shr ecx, 1
and eax, 0xfe
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
add eax, 0x5d7692
mov dword [esp + 0x4c], eax
movzx eax, word [esp + 0x10]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
add eax, 0x5d7692
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x34]
mov byte [esp + 0x11], al
movzx eax, word [esp + 0x10]
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
add eax, 0x5d7692
add dl, 2
mov dword [esp + 0x54], eax
mov eax, 1
mov byte [esp + 0x10], dl
nop
mov ecx, dword [esp + eax*4 + 0x48]
movzx edx, byte [ecx + 0x15]
and edx, 0xf
lea ecx, [edx*8]
sub ecx, edx
test byte [ecx*2 + 0x593270], 1
je 0x4a94c3
inc eax
cmp eax, 4
jl 0x4a9490
mov eax, 1
mov word [edi + 4], ax
mov esi, dword [0xc68f80]
cmp byte [ebx + 0xc68b80], 0
je 0x4a94de
push dword [esp + 0x10]
call fcn.0049fd30
mov esi, dword [0xc68f80]
add esp, 4
inc ebx
cmp ebx, esi
jl 0x4a9390
xor edi, edi
test esi, esi
jle 0x4a9515
nop dword [eax]
cmp byte [edi + 0xc68b80], 0
je 0x4a9510
movzx eax, word [edi*2 + 0xc68380]
push eax
call fcn.0049ff70
mov esi, dword [0xc68f80]
add esp, 4
inc edi
cmp edi, esi
jl 0x4a94f0
and dword [0x5cf410], 0xffffff7f
push 0x4000
push 0
push 0xc68f88
mov dword [0xc68f80], 0
call fcn.004e4d50
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret