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

Disassembly:
sub esp, 0x18
push esi
mov esi, dword [esp + 0x20]
cmp dword [esi + 0xb4], 0
je 0x4a9875
push dword [esi]
mov eax, dword [esi + 4]
call eax
add esp, 4
mov dword [esi + 0xb4], 0
cmp dword [esi + 0xac], 0
mov eax, dword [esi + 0xd0]
jne 0x4aa183
test eax, eax
jne 0x4aa183
cmp dword [esi + 0x88], eax
je 0x4a98a2
mov dword [esi + 0xd0], 9
cmp dword [esi + 0x134], 0
je 0x4a98b5
mov dword [esi + 0xd0], 8
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x4a98ce
mov dword [esi + 0xac], 1
pop esi
add esp, 0x18
ret
push ebx
push edi
mov edi, dword [esi + 0xb8]
mov eax, edi
or eax, dword [esi + 0xbc]
mov ebx, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], ebx
jne 0x4a994a
push dword [esi]
mov eax, dword [esi + 8]
call eax
add esp, 4
test eax, eax
jne 0x4a9909
push edi
push esi
call fcn.004a79d0
add esp, 8
pop edi
pop ebx
pop esi
add esp, 0x18
ret
lea eax, [esp + 0x20]
push eax
push esi
call fcn.004aac60
lea eax, [esi + 0x1c98]
push eax
lea edi, [esi + 0x58]
push edi
call fcn.004aaac0
push dword [esi]
mov eax, dword [esi + 0xc]
call eax
sub eax, dword [esi + 0x34]
mov al, byte [eax]
movzx eax, al
push eax
push dword [esi + 0x50]
push edi
call fcn.004a92b0
dec dword [esi + 0x34]
mov edi, ebx
add esp, 0x20
inc edi
mov dword [esp + 0x28], edi
mov eax, dword [esi + 8]
push ebp
push dword [esi]
call eax
add esp, 4
test eax, eax
je 0x4aa1b3
lea ebx, [esi + 0x58]
jmp 0x4a9966
mov edi, dword [esp + 0x2c]
cmp dword [esi + 0xa4], 0
je 0x4a997e
push esi
call fcn.004a8ca0
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x4a99b7
mov ecx, dword [esi + 0x18]
cmp dword [esi + 0x1c], ecx
jne 0x4a9996
push edi
push esi
call fcn.004a7a60
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x4a99b7
lea eax, [ecx + 0x5d5]
shl eax, 5
mov edx, dword [eax + esi + 8]
mov eax, dword [eax + esi + 0xc]
mov dword [esi + 0x90], eax
lea eax, [ecx + 1]
mov dword [esp + 0x14], edx
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x2c]
and ecx, edi
mov edi, dword [ebx]
mov ebp, edi
shl eax, 4
add eax, ecx
mov dword [esp + 0x1c], ecx
movzx ecx, word [esi + eax*2 + 0x1c98]
shr ebp, 0xb
imul ebp, ecx
lea edx, [esi + eax*2]
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x4a9a9a
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov word [edx + 0x1c98], ax
cmp ebp, 0x1000000
jae 0x4a9a15
mov ecx, ebx
shl ebp, 8
call fcn.004a7160
push dword [esi]
mov eax, dword [esi + 0xc]
mov dword [ebx], ebp
call eax
mov ebp, dword [esp + 0x30]
mov edi, eax
sub edi, dword [esi + 0x34]
mov ecx, ebp
mov eax, dword [esi + 0x50]
add esp, 4
shl ecx, 8
movzx edx, byte [edi - 1]
add edx, ecx
mov ecx, dword [esi + 0x94]
and edx, dword [esi + 0x48]
shl edx, cl
lea ecx, [edx + edx*2]
lea edx, [eax + ecx*2]
mov ecx, dword [esi + 0x2c]
mov al, byte [edi]
mov byte [esp + 0x2c], al
movzx eax, byte [ecx + 0x51f1a0]
mov dword [esi + 0x2c], eax
cmp ecx, 7
jae 0x4a9a7a
movzx eax, byte [esp + 0x2c]
push eax
push edx
push ebx
call fcn.004a92b0
mov edi, dword [esp + 0x20]
add esp, 0xc
jmp 0x4aa07f
sub edi, dword [esi + 0x38]
movzx eax, byte [edi]
push eax
movzx eax, byte [esp + 0x30]
push eax
push edx
push ebx
call fcn.004a9350
mov edi, dword [esp + 0x24]
add esp, 0x10
jmp 0x4aa07f
sub edi, ebp
mov eax, ecx
add dword [esi + 0x60], ebp
adc dword [esi + 0x64], 0
shr eax, 5
sub ecx, eax
mov word [edx + 0x1c98], cx
cmp edi, 0x1000000
jae 0x4a9ac3
mov ecx, ebx
shl edi, 8
call fcn.004a7160
mov eax, dword [esi + 0x2c]
mov ebp, edi
movzx ecx, word [esi + eax*2 + 0x1c38]
lea edx, [esi + eax*2]
shr ebp, 0xb
imul ebp, ecx
cmp dword [esp + 0x10], 4
jae 0x4a9d04
sub edi, ebp
mov eax, ecx
add dword [esi + 0x60], ebp
adc dword [esi + 0x64], 0
shr eax, 5
sub ecx, eax
mov word [edx + 0x1c38], cx
cmp edi, 0x1000000
jae 0x4a9b0d
mov ecx, ebx
shl edi, 8
call fcn.004a7160
mov eax, dword [esi + 0x2c]
mov ecx, edi
mov ebp, dword [esp + 0x10]
add eax, 0xe28
movzx edx, word [esi + eax*2]
lea eax, [esi + eax*2]
shr ecx, 0xb
imul ecx, edx
mov dword [esp + 0x20], eax
test ebp, ebp
jne 0x4a9bc4
mov eax, 0x800
mov edi, ecx
sub eax, edx
shr eax, 5
add eax, edx
mov edx, dword [esp + 0x20]
mov word [edx], ax
cmp ecx, 0x1000000
jae 0x4a9b5b
mov ecx, ebx
shl edi, 8
call fcn.004a7160
mov eax, dword [esi + 0x2c]
mov ebp, dword [esp + 0x1c]
shl eax, 4
add eax, ebp
movzx ecx, word [esi + eax*2 + 0x1e18]
lea edx, [esi + eax*2]
mov eax, edi
shr eax, 0xb
imul eax, ecx
cmp dword [esp + 0x14], 1
je 0x4a9b9d
sub edi, eax
add dword [esi + 0x60], eax
mov eax, ecx
adc dword [esi + 0x64], 0
shr eax, 5
sub ecx, eax
mov word [edx + 0x1e18], cx
jmp 0x4a9cb6
mov edi, eax
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov word [edx + 0x1e18], ax
mov eax, dword [esi + 0x2c]
movzx eax, byte [eax + 0x51f1c4]
mov dword [esi + 0x2c], eax
jmp 0x4a9cb6
sub edi, ecx
mov eax, edx
add dword [esi + 0x60], ecx
adc dword [esi + 0x64], 0
shr eax, 5
sub edx, eax
mov eax, dword [esp + 0x20]
mov word [eax], dx
cmp edi, 0x1000000
jae 0x4a9bed
mov ecx, ebx
shl edi, 8
call fcn.004a7160
mov eax, dword [esi + 0x2c]
movzx ecx, word [esi + eax*2 + 0x1c68]
lea edx, [esi + eax*2]
mov eax, edi
shr eax, 0xb
imul eax, ecx
cmp ebp, 1
jne 0x4a9c25
mov edi, eax
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov word [edx + 0x1c68], ax
mov ecx, dword [esi + 0x3c]
jmp 0x4a9ca9
sub edi, eax
add dword [esi + 0x60], eax
mov eax, ecx
adc dword [esi + 0x64], 0
shr eax, 5
sub ecx, eax
mov word [edx + 0x1c68], cx
cmp edi, 0x1000000
jae 0x4a9c4e
mov ecx, ebx
shl edi, 8
call fcn.004a7160
mov eax, dword [esi + 0x2c]
movzx ecx, word [esi + eax*2 + 0x1c80]
lea edx, [esi + eax*2]
mov eax, edi
shr eax, 0xb
imul eax, ecx
cmp ebp, 2
jne 0x4a9c83
mov edi, eax
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov word [edx + 0x1c80], ax
mov ecx, dword [esi + 0x40]
jmp 0x4a9ca3
sub edi, eax
add dword [esi + 0x60], eax
mov eax, ecx
adc dword [esi + 0x64], 0
shr eax, 5
sub ecx, eax
mov word [edx + 0x1c80], cx
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x40]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x38]
mov ebp, dword [esp + 0x1c]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x38], ecx
cmp edi, 0x1000000
jae 0x4a9cc8
mov ecx, ebx
shl edi, 8
call fcn.004a7160
mov dword [ebx], edi
mov edi, dword [esp + 0x14]
cmp edi, 1
je 0x4aa07b
push ebp
lea eax, [edi - 2]
push eax
lea eax, [esi + 0x2698]
push ebx
push eax
call fcn.004a9060
mov eax, dword [esi + 0x2c]
add esp, 0x10
dec dword [esi + 0xc4]
movzx eax, byte [eax + 0x51f1b8]
mov dword [esi + 0x2c], eax
jmp 0x4aa07b
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov word [edx + 0x1c38], ax
cmp ebp, 0x1000000
jae 0x4a9d29
mov ecx, ebx
shl ebp, 8
call fcn.004a7160
mov eax, dword [esi + 0x2c]
mov edi, dword [esp + 0x14]
mov dword [ebx], ebp
add edi, 0xfffffffe
mov ebp, dword [esp + 0x1c]
movzx eax, byte [eax + str._a_a_a_a_a_a_a_n_n_n_n_n_b_b_b_b_b_b_b_v_v_v_v_v_t_t_t_t_t_t_t_v_v_v_v_v_]
push ebp
push edi
mov dword [esi + 0x2c], eax
lea eax, [esi + 0x2298]
push ebx
push eax
call fcn.004a9060
mov eax, dword [esi + 0x40]
add esp, 0x10
mov edx, dword [esp + 0x10]
mov dword [esi + 0x44], eax
sub edx, 4
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x3c], eax
lea eax, [edx + 1]
mov dword [esi + 0x38], eax
mov eax, edx
inc dword [esi + 0xc0]
mov dword [esp + 0x10], edx
cmp edx, 0x80
jae 0x4a9d95
and eax, 0x7f
movzx eax, byte [eax + esi + 0x2a98]
jmp 0x4a9db0
cmp edx, 0x20000
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x10
shr eax, cl
movzx eax, byte [eax + esi + 0x2a98]
lea eax, [eax + ecx*2]
cmp dword [esp + 0x14], 5
lea edx, [eax + 0x40]
mov ebp, dword [ebx]
mov dword [esp + 0x20], eax
jb 0x4a9dc5
mov edi, 3
shl edi, 7
lea ecx, [esi + 0x1f98]
add ecx, edi
mov dword [esp + 0x24], ecx
mov eax, edx
shr eax, 6
movzx edi, word [ecx + eax*2]
lea ebx, [ecx + eax*2]
mov ecx, edx
add edx, edx
shr ecx, 5
and ecx, 1
mov dword [esp + 0x1c], edx
mov edx, ebp
mov eax, ecx
shr edx, 0xb
neg eax
imul edx, edi
and ebp, eax
and eax, edx
sub ebp, eax
add dword [esi + 0x60], eax
adc dword [esi + 0x64], 0
dec ecx
mov eax, ecx
and ecx, 0x7e1
sub ecx, edi
and eax, edx
add ecx, 0x1f
add ebp, eax
sar ecx, 5
add ecx, edi
mov word [ebx], cx
lea ebx, [esi + 0x58]
cmp ebp, 0x1000000
jae 0x4a9e36
mov ecx, ebx
shl ebp, 8
call fcn.004a7160
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
cmp edx, 0x1000
jb 0x4a9dd4
mov eax, dword [esp + 0x10]
mov dword [ebx], ebp
cmp eax, 4
jb 0x4aa077
mov edi, dword [esp + 0x20]
mov edx, edi
shr edx, 1
dec edx
cmp eax, 0x80
jae 0x4a9e89
and edi, 1
mov ecx, edx
or edi, 2
shl edi, cl
push eax
add edi, 0x10cc
push edx
lea eax, [esi + edi*2]
push eax
push ebx
call fcn.004aabd0
add esp, 0x10
jmp 0x4aa077
mov ecx, 0x20
mov edi, eax
sub ecx, edx
or edi, 0xf
shl edi, cl
mov eax, edi
shr ebp, 1
shr eax, 0x1f
neg eax
and eax, ebp
add dword [esi + 0x60], eax
adc dword [esi + 0x64], 0
add edi, edi
cmp ebp, 0x1000000
jae 0x4a9ebd
mov ecx, ebx
shl ebp, 8
call fcn.004a7160
cmp edi, 0xf0000000
jne 0x4a9e97
movzx edi, word [esi + 0x1c1a]
mov edx, ebp
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 1
shr eax, 1
mov dword [esp + 0x10], eax
mov eax, ecx
shr edx, 0xb
neg eax
imul edx, edi
and ebp, eax
mov dword [esp + 0x24], ecx
and eax, edx
sub ebp, eax
add dword [esi + 0x60], eax
adc dword [esi + 0x64], 0
dec ecx
mov eax, ecx
and ecx, 0x7e1
sub ecx, edi
and eax, edx
add ecx, 0x1f
add ebp, eax
sar ecx, 5
add ecx, edi
mov word [esi + 0x1c1a], cx
cmp ebp, 0x1000000
jae 0x4a9f28
mov ecx, ebx
shl ebp, 8
call fcn.004a7160
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
add edx, 2
mov ecx, eax
mov dword [esp + 0x24], edx
and ecx, 1
shr eax, 1
mov dword [esp + 0x10], eax
mov eax, ecx
movzx edi, word [esi + edx*2 + 0x1c18]
neg eax
mov edx, ebp
mov dword [esp + 0x20], ecx
shr edx, 0xb
and ebp, eax
imul edx, edi
and eax, edx
sub ebp, eax
add dword [esi + 0x60], eax
adc dword [esi + 0x64], 0
dec ecx
mov eax, ecx
and ecx, 0x7e1
sub ecx, edi
and eax, edx
add ecx, 0x1f
add ebp, eax
sar ecx, 5
add ecx, edi
mov edi, dword [esp + 0x24]
mov word [esi + edi*2 + 0x1c18], cx
cmp ebp, 0x1000000
jae 0x4a9f9c
mov ecx, ebx
shl ebp, 8
call fcn.004a7160
mov eax, dword [esp + 0x20]
lea edx, [eax + edi*2]
mov eax, dword [esp + 0x10]
movzx edi, word [esi + edx*2 + 0x1c18]
mov ecx, eax
and ecx, 1
shr eax, 1
mov dword [esp + 0x24], edx
mov edx, ebp
mov dword [esp + 0x10], eax
mov eax, ecx
shr edx, 0xb
neg eax
imul edx, edi
and ebp, eax
mov dword [esp + 0x20], ecx
and eax, edx
sub ebp, eax
add dword [esi + 0x60], eax
adc dword [esi + 0x64], 0
dec ecx
mov eax, ecx
and ecx, 0x7e1
sub ecx, edi
and eax, edx
add ecx, 0x1f
add ebp, eax
sar ecx, 5
add ecx, edi
mov edi, dword [esp + 0x24]
mov word [esi + edi*2 + 0x1c18], cx
cmp ebp, 0x1000000
jae 0x4aa010
mov ecx, ebx
shl ebp, 8
call fcn.004a7160
mov eax, dword [esp + 0x20]
mov edx, ebp
mov ecx, dword [esp + 0x10]
and ecx, 1
shr edx, 0xb
lea eax, [eax + edi*2]
movzx edi, word [esi + eax*2 + 0x1c18]
lea ebx, [esi + eax*2]
imul edx, edi
mov eax, ecx
neg eax
and ebp, eax
and eax, edx
sub ebp, eax
add dword [esi + 0x60], eax
adc dword [esi + 0x64], 0
dec ecx
mov eax, ecx
and ecx, 0x7e1
sub ecx, edi
and eax, edx
add ecx, 0x1f
add ebp, eax
sar ecx, 5
add ecx, edi
mov word [ebx + 0x1c18], cx
lea ebx, [esi + 0x58]
cmp ebp, 0x1000000
jae 0x4aa075
mov ecx, ebx
shl ebp, 8
call fcn.004a7160
mov dword [ebx], ebp
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x2c]
add ebp, edi
sub dword [esi + 0x34], edi
mov dword [esp + 0x2c], ebp
jne 0x4a9962
cmp dword [esi + 0xa4], 0
jne 0x4aa112
cmp dword [esi + 0xc0], 0x40
jb 0x4aa0d9
push esi
call fcn.004a7310
push esi
call fcn.004a7690
mov ecx, dword [esi + 0x9c]
lea eax, [esi + 0x548]
add esp, 8
mov edx, 1
shl edx, cl
lea ecx, [esi + 0x3298]
push eax
lea eax, [esi + 0x2298]
push eax
call fcn.004a6fe0
cmp dword [esi + 0xc4], 0
jg 0x4aa112
mov ecx, dword [esi + 0x9c]
lea eax, [esi + 0x548]
push eax
lea eax, [esi + 0x2698]
mov dword [esi + 0xc4], 0x40
mov edx, 1
shl edx, cl
lea ecx, [esi + 0x769c]
push eax
call fcn.004a6fe0
push dword [esi]
mov eax, dword [esi + 8]
call eax
add esp, 4
test eax, eax
je 0x4aa161
mov edi, dword [esp + 0x2c]
mov eax, edi
mov ebp, dword [esp + 0x18]
sub eax, ebp
mov edx, dword [esp + 0x30]
test edx, edx
je 0x4aa188
add eax, 0x92c
cmp eax, dword [esp + 0x34]
jae 0x4aa15d
mov ecx, dword [esi + 0x80]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x68]
add ecx, dword [esi + 0x70]
add eax, 0x4000
add eax, ecx
cmp eax, edx
jb 0x4a9966
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
mov eax, ebp
sub eax, ebx
add dword [esi + 0xb8], eax
push ebp
adc dword [esi + 0xbc], 0
push esi
call fcn.004a79d0
add esp, 8
pop ebp
pop edi
pop ebx
pop esi
add esp, 0x18
ret
cmp eax, 0x20000
jb 0x4a9966
sub edi, ebp
add dword [esi + 0xb8], edi
push esi
adc dword [esi + 0xbc], 0
call fcn.004a72c0
add esp, 4
pop ebp
pop edi
pop ebx
pop esi
add esp, 0x18
ret
mov ebp, dword [esp + 0x2c]
jmp 0x4aa165