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

Disassembly:
sub esp, 0x18
push esi
mov esi, dword [esp + 0x20]
cmp dword [esi + 0xb4], 0
je 0x4af245
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 0x4afb53
test eax, eax
jne 0x4afb53
cmp dword [esi + 0x88], eax
je 0x4af272
mov dword [esi + 0xd0], 9
cmp dword [esi + 0x134], 0
je 0x4af285
mov dword [esi + 0xd0], 8
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x4af29e
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 0x4af31a
push dword [esi]
mov eax, dword [esi + 8]
call eax
add esp, 4
test eax, eax
jne 0x4af2d9
push edi
push esi
call fcn.004ad3a0
add esp, 8
pop edi
pop ebx
pop esi
add esp, 0x18
ret
lea eax, [esp + 0x20]
push eax
push esi
call fcn.004b0630
lea eax, [esi + 0x1c98]
push eax
lea edi, [esi + 0x58]
push edi
call fcn.004b0490
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.004aec80
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 0x4afb83
lea ebx, [esi + 0x58]
jmp 0x4af336
mov edi, dword [esp + 0x2c]
cmp dword [esi + 0xa4], 0
je 0x4af34e
push esi
call fcn.004ae670
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x4af387
mov ecx, dword [esi + 0x18]
cmp dword [esi + 0x1c], ecx
jne 0x4af366
push edi
push esi
call fcn.004ad430
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x4af387
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 0x4af46a
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov word [edx + 0x1c98], ax
cmp ebp, 0x1000000
jae 0x4af3e5
mov ecx, ebx
shl ebp, 8
call fcn.004acb30
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 + 0x54f880]
mov dword [esi + 0x2c], eax
cmp ecx, 7
jae 0x4af44a
movzx eax, byte [esp + 0x2c]
push eax
push edx
push ebx
call fcn.004aec80
mov edi, dword [esp + 0x20]
add esp, 0xc
jmp 0x4afa4f
sub edi, dword [esi + 0x38]
movzx eax, byte [edi]
push eax
movzx eax, byte [esp + 0x30]
push eax
push edx
push ebx
call fcn.004aed20
mov edi, dword [esp + 0x24]
add esp, 0x10
jmp 0x4afa4f
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 0x4af493
mov ecx, ebx
shl edi, 8
call fcn.004acb30
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 0x4af6d4
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 0x4af4dd
mov ecx, ebx
shl edi, 8
call fcn.004acb30
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 0x4af594
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 0x4af52b
mov ecx, ebx
shl edi, 8
call fcn.004acb30
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 0x4af56d
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 0x4af686
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 + 0x54f8a4]
mov dword [esi + 0x2c], eax
jmp 0x4af686
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 0x4af5bd
mov ecx, ebx
shl edi, 8
call fcn.004acb30
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 0x4af5f5
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 0x4af679
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 0x4af61e
mov ecx, ebx
shl edi, 8
call fcn.004acb30
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 0x4af653
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 0x4af673
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 0x4af698
mov ecx, ebx
shl edi, 8
call fcn.004acb30
mov dword [ebx], edi
mov edi, dword [esp + 0x14]
cmp edi, 1
je 0x4afa4b
push ebp
lea eax, [edi - 2]
push eax
lea eax, [esi + 0x2698]
push ebx
push eax
call fcn.004aea30
mov eax, dword [esi + 0x2c]
add esp, 0x10
dec dword [esi + 0xc4]
movzx eax, byte [eax + 0x54f898]
mov dword [esi + 0x2c], eax
jmp 0x4afa4b
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov word [edx + 0x1c38], ax
cmp ebp, 0x1000000
jae 0x4af6f9
mov ecx, ebx
shl ebp, 8
call fcn.004acb30
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_v0_K]
push ebp
push edi
mov dword [esi + 0x2c], eax
lea eax, [esi + 0x2298]
push ebx
push eax
call fcn.004aea30
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 0x4af765
and eax, 0x7f
movzx eax, byte [eax + esi + 0x2a98]
jmp 0x4af780
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 0x4af795
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 0x4af806
mov ecx, ebx
shl ebp, 8
call fcn.004acb30
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
cmp edx, 0x1000
jb 0x4af7a4
mov eax, dword [esp + 0x10]
mov dword [ebx], ebp
cmp eax, 4
jb 0x4afa47
mov edi, dword [esp + 0x20]
mov edx, edi
shr edx, 1
dec edx
cmp eax, 0x80
jae 0x4af859
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.004b05a0
add esp, 0x10
jmp 0x4afa47
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 0x4af88d
mov ecx, ebx
shl ebp, 8
call fcn.004acb30
cmp edi, 0xf0000000
jne 0x4af867
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 0x4af8f8
mov ecx, ebx
shl ebp, 8
call fcn.004acb30
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 0x4af96c
mov ecx, ebx
shl ebp, 8
call fcn.004acb30
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 0x4af9e0
mov ecx, ebx
shl ebp, 8
call fcn.004acb30
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 0x4afa45
mov ecx, ebx
shl ebp, 8
call fcn.004acb30
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 0x4af332
cmp dword [esi + 0xa4], 0
jne 0x4afae2
cmp dword [esi + 0xc0], 0x40
jb 0x4afaa9
push esi
call fcn.004acce0
push esi
call fcn.004ad060
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.004ac9b0
cmp dword [esi + 0xc4], 0
jg 0x4afae2
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.004ac9b0
push dword [esi]
mov eax, dword [esi + 8]
call eax
add esp, 4
test eax, eax
je 0x4afb31
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 0x4afb58
add eax, 0x92c
cmp eax, dword [esp + 0x34]
jae 0x4afb2d
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 0x4af336
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.004ad3a0
add esp, 8
pop ebp
pop edi
pop ebx
pop esi
add esp, 0x18
ret
cmp eax, 0x20000
jb 0x4af336
sub edi, ebp
add dword [esi + 0xb8], edi
push esi
adc dword [esi + 0xbc], 0
call fcn.004acc90
add esp, 4
pop ebp
pop edi
pop ebx
pop esi
add esp, 0x18
ret
mov ebp, dword [esp + 0x2c]
jmp 0x4afb35