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

Disassembly:
sub esp, 0x18
push esi
mov esi, dword [esp + 0x20]
cmp dword [esi + 0xb4], 0
je 0x4b0805
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 0x4b1113
test eax, eax
jne 0x4b1113
cmp dword [esi + 0x88], eax
je 0x4b0832
mov dword [esi + 0xd0], 9
cmp dword [esi + 0x134], 0
je 0x4b0845
mov dword [esi + 0xd0], 8
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x4b085e
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 0x4b08da
push dword [esi]
mov eax, dword [esi + 8]
call eax
add esp, 4
test eax, eax
jne 0x4b0899
push edi
push esi
call fcn.004ae960
add esp, 8
pop edi
pop ebx
pop esi
add esp, 0x18
ret
lea eax, [esp + 0x20]
push eax
push esi
call fcn.004b1bf0
lea eax, [esi + 0x1c98]
push eax
lea edi, [esi + 0x58]
push edi
call fcn.004b1a50
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.004b0240
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 0x4b1143
lea ebx, [esi + 0x58]
jmp 0x4b08f6
mov edi, dword [esp + 0x2c]
cmp dword [esi + 0xa4], 0
je 0x4b090e
push esi
call fcn.004afc30
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x4b0947
mov ecx, dword [esi + 0x18]
cmp dword [esi + 0x1c], ecx
jne 0x4b0926
push edi
push esi
call fcn.004ae9f0
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x4b0947
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 0x4b0a2a
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov word [edx + 0x1c98], ax
cmp ebp, 0x1000000
jae 0x4b09a5
mov ecx, ebx
shl ebp, 8
call fcn.004ae0f0
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 + 0x5261a0]
mov dword [esi + 0x2c], eax
cmp ecx, 7
jae 0x4b0a0a
movzx eax, byte [esp + 0x2c]
push eax
push edx
push ebx
call fcn.004b0240
mov edi, dword [esp + 0x20]
add esp, 0xc
jmp 0x4b100f
sub edi, dword [esi + 0x38]
movzx eax, byte [edi]
push eax
movzx eax, byte [esp + 0x30]
push eax
push edx
push ebx
call fcn.004b02e0
mov edi, dword [esp + 0x24]
add esp, 0x10
jmp 0x4b100f
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 0x4b0a53
mov ecx, ebx
shl edi, 8
call fcn.004ae0f0
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 0x4b0c94
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 0x4b0a9d
mov ecx, ebx
shl edi, 8
call fcn.004ae0f0
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 0x4b0b54
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 0x4b0aeb
mov ecx, ebx
shl edi, 8
call fcn.004ae0f0
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 0x4b0b2d
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 0x4b0c46
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 + 0x5261c4]
mov dword [esi + 0x2c], eax
jmp 0x4b0c46
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 0x4b0b7d
mov ecx, ebx
shl edi, 8
call fcn.004ae0f0
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 0x4b0bb5
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 0x4b0c39
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 0x4b0bde
mov ecx, ebx
shl edi, 8
call fcn.004ae0f0
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 0x4b0c13
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 0x4b0c33
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 0x4b0c58
mov ecx, ebx
shl edi, 8
call fcn.004ae0f0
mov dword [ebx], edi
mov edi, dword [esp + 0x14]
cmp edi, 1
je 0x4b100b
push ebp
lea eax, [edi - 2]
push eax
lea eax, [esi + 0x2698]
push ebx
push eax
call fcn.004afff0
mov eax, dword [esi + 0x2c]
add esp, 0x10
dec dword [esi + 0xc4]
movzx eax, byte [eax + 0x5261b8]
mov dword [esi + 0x2c], eax
jmp 0x4b100b
mov eax, 0x800
sub eax, ecx
shr eax, 5
add eax, ecx
mov word [edx + 0x1c38], ax
cmp ebp, 0x1000000
jae 0x4b0cb9
mov ecx, ebx
shl ebp, 8
call fcn.004ae0f0
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.004afff0
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 0x4b0d25
and eax, 0x7f
movzx eax, byte [eax + esi + 0x2a98]
jmp 0x4b0d40
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 0x4b0d55
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 0x4b0dc6
mov ecx, ebx
shl ebp, 8
call fcn.004ae0f0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
cmp edx, 0x1000
jb 0x4b0d64
mov eax, dword [esp + 0x10]
mov dword [ebx], ebp
cmp eax, 4
jb 0x4b1007
mov edi, dword [esp + 0x20]
mov edx, edi
shr edx, 1
dec edx
cmp eax, 0x80
jae 0x4b0e19
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.004b1b60
add esp, 0x10
jmp 0x4b1007
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 0x4b0e4d
mov ecx, ebx
shl ebp, 8
call fcn.004ae0f0
cmp edi, 0xf0000000
jne 0x4b0e27
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 0x4b0eb8
mov ecx, ebx
shl ebp, 8
call fcn.004ae0f0
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 0x4b0f2c
mov ecx, ebx
shl ebp, 8
call fcn.004ae0f0
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 0x4b0fa0
mov ecx, ebx
shl ebp, 8
call fcn.004ae0f0
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 0x4b1005
mov ecx, ebx
shl ebp, 8
call fcn.004ae0f0
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 0x4b08f2
cmp dword [esi + 0xa4], 0
jne 0x4b10a2
cmp dword [esi + 0xc0], 0x40
jb 0x4b1069
push esi
call fcn.004ae2a0
push esi
call fcn.004ae620
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.004adf70
cmp dword [esi + 0xc4], 0
jg 0x4b10a2
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.004adf70
push dword [esi]
mov eax, dword [esi + 8]
call eax
add esp, 4
test eax, eax
je 0x4b10f1
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 0x4b1118
add eax, 0x92c
cmp eax, dword [esp + 0x34]
jae 0x4b10ed
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 0x4b08f6
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.004ae960
add esp, 8
pop ebp
pop edi
pop ebx
pop esi
add esp, 0x18
ret
cmp eax, 0x20000
jb 0x4b08f6
sub edi, ebp
add dword [esi + 0xb8], edi
push esi
adc dword [esi + 0xbc], 0
call fcn.004ae250
add esp, 4
pop ebp
pop edi
pop ebx
pop esi
add esp, 0x18
ret
mov ebp, dword [esp + 0x2c]
jmp 0x4b10f5