Function at 0x466750
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
mov esi, eax
sub esp, 0x10c
mov eax, dword [eax + 0x78]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x90], eax
or eax, dword [esi + 0x7c]
jne 0x466892
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 8]
test eax, eax
je 0x469443
lea edx, [esp + 0xf0]
mov eax, esi
call fcn.004654a0
mov edi, dword [esi + 0x44]
lea eax, [esi + 0x98]
mov ecx, 0x800
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x98]
mov ebx, edi
shl ebx, 5
add ebx, esi
shr eax, 0xb
movzx edx, word [ebx + 0x32608]
imul eax, edx
sub ecx, edx
shr ecx, 5
add edx, ecx
cmp eax, 0xffffff
mov dword [esi + 0x98], eax
mov word [ebx + 0x32608], dx
jbe 0x4698a1
mov eax, dword [edi*4 + 0x731280]
mov dword [esi + 0x44], eax
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 0xc]
sub eax, dword [esi + 0x30]
mov edi, dword [esi + 0x60]
mov dword [esp + 0x14], edi
movzx ebp, byte [eax]
or ebp, 0x100
jmp 0x46684c
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add edx, ecx
cmp eax, 0xffffff
mov dword [esi + 0x98], eax
mov word [edi], dx
ja 0x46683e
shl eax, 8
mov dword [esi + 0x98], eax
mov eax, dword [esp + 0x10]
call fcn.00465790
add ebp, ebp
cmp ebp, 0xffff
ja 0x4698bd
mov edi, dword [esp + 0x14]
mov eax, ebp
shr eax, 8
lea edi, [edi + eax*2]
mov eax, dword [esi + 0x98]
movzx edx, word [edi]
mov dword [esp + 0x18], eax
shr eax, 0xb
imul eax, edx
test ebp, 0x80
je 0x466810
xor ebx, ebx
add dword [esi + 0xa0], eax
mov ecx, edx
adc dword [esi + 0xa4], ebx
mov ebx, dword [esp + 0x18]
shr ecx, 5
sub edx, ecx
sub ebx, eax
mov eax, ebx
jmp 0x46681c
mov eax, dword [esp + 0x90]
mov dword [esp + 0x58], eax
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 8]
test eax, eax
je 0x469891
lea eax, [esi + 0x98]
mov edi, esi
mov dword [esp + 0x64], eax
lea eax, [esi + 0x31134]
mov dword [esp + 0x24], eax
mov ebp, dword [edi + 0x64]
test ebp, ebp
je 0x466c31
mov esi, dword [edi + 0x30]
test esi, esi
je 0x46775f
mov eax, dword [edi + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0xf0], eax
mov eax, dword [edi + 0x28]
cmp eax, 1
jbe 0x4672a2
cmp eax, 0x111
mov edx, 0x111
cmovbe edx, eax
mov eax, dword [edi]
xor ebp, ebp
mov dword [esp + 0x18], edx
xor esi, esi
mov dword [esp], eax
call dword [edi + 0xc]
mov edx, eax
movzx ecx, byte [eax - 1]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
mov eax, edx
sub eax, dword [edi + esi*4 + 0x34]
sub eax, 2
cmp byte [eax], cl
je 0x4671e4
add esi, 1
cmp esi, 4
jne 0x466928
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
cmp esi, ebx
jb 0x467656
mov eax, dword [esp + 0xf0]
mov ebx, dword [esp + 0x24]
mov ebp, dword [ebx + eax*4 - 4]
mov eax, esi
add ebp, 4
sub eax, 1
jne 0x467a35
mov eax, dword [esp + 0x58]
and eax, dword [edi + 0x58]
mov ebx, dword [edi + 0x44]
mov esi, eax
mov dword [esp + 0x10], eax
mov eax, ebx
shl eax, 4
lea eax, [esi + eax + 0x19300]
movzx ecx, word [edi + eax*2 + 8]
cmp ebp, 0xffffffff
mov dword [esp + 0x14], 1
je 0x4672c3
mov esi, dword [edi + 0x98]
xor edx, edx
mov eax, dword [edi + 0x98]
shr esi, 0xb
imul esi, ecx
add dword [edi + 0xa0], esi
adc dword [edi + 0xa4], edx
mov edx, ecx
shr edx, 5
sub eax, esi
mov dword [esp + 0x18], edx
mov esi, eax
mov edx, dword [esp + 0x10]
mov dword [edi + 0x98], eax
sub ecx, dword [esp + 0x18]
mov eax, ebx
shl eax, 4
cmp esi, 0xffffff
lea eax, [edx + eax + 0x19300]
mov word [edi + eax*2 + 8], cx
ja 0x466a0f
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465790
mov ebx, dword [edi + 0x44]
mov esi, dword [edi + 0x98]
cmp ebp, 3
lea eax, [edi + ebx*2]
ja 0x466c8f
mov dword [esp + 0x1c], eax
movzx eax, word [eax + 0x32788]
mov ecx, esi
shr ecx, 0xb
xor edx, edx
imul ecx, eax
add dword [edi + 0xa0], ecx
mov dword [esp + 0x18], eax
adc dword [edi + 0xa4], edx
mov edx, dword [esp + 0x18]
sub esi, ecx
mov ecx, dword [esp + 0x1c]
mov eax, edx
shr eax, 5
mov dword [edi + 0x98], esi
sub edx, eax
cmp esi, 0xffffff
mov word [ecx + 0x32788], dx
ja 0x466a81
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465790
mov ebx, dword [edi + 0x44]
mov esi, dword [edi + 0x98]
test ebp, ebp
jne 0x467513
lea ecx, [edi + ebx*2]
shr esi, 0xb
mov eax, 0x800
movzx edx, word [ecx + 0x327a0]
imul esi, edx
sub eax, edx
shr eax, 5
add eax, edx
cmp esi, 0xffffff
mov dword [edi + 0x98], esi
mov word [ecx + 0x327a0], ax
ja 0x466ad5
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465790
mov ebx, dword [edi + 0x44]
mov esi, dword [edi + 0x98]
mov eax, ebx
mov ecx, esi
shl eax, 4
add eax, dword [esp + 0x10]
shr ecx, 0xb
lea eax, [edi + eax*2]
movzx ebp, word [eax + 0x327e8]
mov edx, eax
mov dword [esp + 0x18], eax
imul ecx, ebp
cmp dword [esp + 0x14], 1
jne 0x4673ee
mov eax, 0x800
mov dword [edi + 0x98], ecx
sub eax, ebp
shr eax, 5
add eax, ebp
cmp ecx, 0xffffff
mov word [edx + 0x327e8], ax
ja 0x466b42
mov eax, dword [esp + 0x64]
shl ecx, 8
mov dword [edi + 0x98], ecx
call fcn.00465790
cmp dword [esp + 0x14], 1
jne 0x467424
mov ebx, dword [edi + 0x44]
mov eax, dword [ebx*4 + str._t_t_t_t_t_t_t_v_v_v_v_v]
mov dword [esp + 0x14], 1
mov dword [edi + 0x44], eax
mov ebp, dword [edi + 0x30]
mov eax, dword [esp + 0x14]
add dword [esp + 0x58], eax
sub ebp, eax
test ebp, ebp
mov dword [edi + 0x30], ebp
jne 0x4668c3
mov esi, dword [edi + 0x64]
test esi, esi
jne 0x466b8d
cmp dword [edi + 0x80], 0x7f
ja 0x467b40
cmp dword [edi + 0x84], 0xf
ja 0x467a51
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 8]
test eax, eax
je 0x467b29
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0x58]
sub esi, dword [esp + 0x90]
test ebx, ebx
je 0x46746d
lea eax, [esi + 0x112c]
cmp eax, dword [esp + 0x120]
jae 0x466c0d
mov eax, dword [edi + 0xa8]
add eax, dword [edi + 0xc0]
mov edx, dword [edi + 0xac]
adc edx, dword [edi + 0xc4]
add eax, 0x2000
adc edx, 0
mov ecx, eax
mov eax, dword [edi + 0xb0]
sub eax, dword [edi + 0xb8]
mov ebx, edx
cdq
add eax, ecx
adc edx, ebx
cmp edx, 0
ja 0x466c0d
cmp eax, dword [esp + 0xb8]
jb 0x4668c3
mov eax, edi
mov edi, esi
mov esi, eax
xor edx, edx
add dword [esi + 0x78], edi
mov eax, esi
adc dword [esi + 0x7c], edx
mov edx, dword [esp + 0x58]
call fcn.00465870
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [edi + 0x1c]
cmp dword [edi + 0x18], edx
je 0x467793
lea eax, [edx + edx*2]
shl eax, 4
add eax, edi
mov ecx, dword [eax + 0x74c]
mov ebp, dword [eax + 0x750]
mov ebx, ecx
mov dword [edi + 0x1c], ecx
sub ebx, edx
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x58]
and eax, dword [edi + 0x58]
cmp dword [esp + 0x14], 1
mov dword [esp + 0x10], eax
jne 0x467778
mov ebx, dword [edi + 0x44]
mov esi, dword [esp + 0x10]
mov eax, ebx
shl eax, 4
lea eax, [esi + eax + 0x19300]
movzx ecx, word [edi + eax*2 + 8]
jmp 0x46698f
movzx ecx, word [eax + 0x32788]
mov edx, esi
mov dword [esp + 0x18], eax
shr edx, 0xb
mov eax, 0x800
mov esi, dword [esp + 0x18]
imul edx, ecx
sub eax, ecx
shr eax, 5
add eax, ecx
cmp edx, 0xffffff
mov dword [edi + 0x98], edx
mov word [esi + 0x32788], ax
ja 0x466cdc
mov eax, dword [esp + 0x64]
shl edx, 8
mov dword [edi + 0x98], edx
call fcn.00465790
mov ebx, dword [edi + 0x44]
mov eax, dword [ebx*4 + str._a_a_a_a_a_a_a_n_n_n_n_n]
lea edx, [edi + 0x30f34]
mov esi, dword [esp + 0x10]
mov dword [edi + 0x44], eax
mov dword [esp + 8], edx
xor edx, edx
mov ecx, dword [edi + 0x64]
mov eax, dword [esp + 0x14]
mov dword [esp], esi
test ecx, ecx
lea ebx, [eax - 2]
lea eax, [edi + 0x32c6c]
sete dl
mov dword [esp + 4], edx
mov edx, dword [esp + 0x64]
mov ecx, ebx
call fcn.00466110
lea eax, [ebp - 4]
cmp eax, 0x7f
mov dword [esp + 0x2c], eax
ja 0x4674e0
movzx eax, byte [edi + ebp + 0x30730]
mov dword [esp + 0x20], eax
mov eax, ebx
mov edx, 0x32ae8
mov dword [esp + 0x10], 1
shl eax, 7
mov ebp, 6
add eax, 0x32968
cmp dword [esp + 0x14], 4
cmovbe edx, eax
mov dword [esp + 0x28], edx
jmp 0x466d95
mov ecx, 0x800
mov dword [edi + 0x98], eax
sub ecx, edx
shr ecx, 5
add edx, ecx
cmp eax, 0xffffff
mov word [esi], dx
jbe 0x466df8
mov eax, dword [esp + 0x10]
add eax, eax
or eax, dword [esp + 0x18]
test ebp, ebp
mov dword [esp + 0x10], eax
je 0x466f05
mov eax, dword [esp + 0x20]
sub ebp, 1
mov ebx, dword [esp + 0x10]
mov ecx, ebp
shr eax, cl
mov ecx, eax
mov eax, dword [esp + 0x28]
lea esi, [eax + ebx*2]
mov eax, dword [edi + 0x98]
add esi, edi
movzx edx, word [esi]
mov dword [esp + 0x1c], eax
shr eax, 0xb
imul eax, edx
and ecx, 1
mov dword [esp + 0x18], ecx
je 0x466d63
xor ebx, ebx
add dword [edi + 0xa0], eax
mov ecx, edx
adc dword [edi + 0xa4], ebx
mov ebx, dword [esp + 0x1c]
shr ecx, 5
sub edx, ecx
sub ebx, eax
mov eax, ebx
cmp eax, 0xffffff
mov dword [edi + 0x98], eax
mov word [esi], dx
ja 0x466d7f
mov ecx, dword [edi + 0xa0]
shl eax, 8
mov edx, dword [edi + 0xa4]
mov dword [edi + 0x98], eax
cmp ecx, 0xfeffffff
jbe 0x466e1d
test edx, edx
je 0x4673dd
movzx eax, byte [edi + 0x9c]
mov ebx, dword [edi + 0xb0]
jmp 0x466e61
mov eax, dword [edi + 0xa8]
mov edx, dword [edi + 0xac]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [edi + 0xa8], eax
mov esi, edx
mov dword [edi + 0xac], edx
or esi, eax
je 0x466eca
mov edx, dword [edi + 0xa4]
mov eax, 0xffffffff
mov ebx, ecx
add eax, edx
lea ecx, [ebx + 1]
mov byte [ebx], al
cmp ecx, dword [edi + 0xb4]
mov dword [edi + 0xb0], ecx
jne 0x466e30
mov eax, dword [edi + 0xc8]
test eax, eax
jne 0x466e30
mov edx, dword [edi + 0xb8]
mov eax, dword [edi + 0xbc]
mov ebx, ecx
sub ebx, edx
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ebx
call dword [eax]
cmp ebx, eax
je 0x466eab
mov dword [edi + 0xc8], 9
mov ecx, dword [edi + 0xb8]
xor edx, edx
add dword [edi + 0xc0], ebx
adc dword [edi + 0xc4], edx
mov dword [edi + 0xb0], ecx
jmp 0x466e30
mov ecx, dword [edi + 0xa0]
mov ebx, ecx
shr ebx, 0x18
mov byte [edi + 0x9c], bl
add eax, 1
mov dword [edi + 0xa4], 0
adc edx, 0
shl ecx, 8
mov dword [edi + 0xa8], eax
mov dword [edi + 0xac], edx
mov dword [edi + 0xa0], ecx
jmp 0x466d7f
mov esi, dword [esp + 0x20]
cmp esi, 3
mov eax, esi
jbe 0x4671bf
mov edx, esi
and eax, 1
shr edx, 1
or eax, 2
lea ebx, [edx - 1]
mov ecx, ebx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x2c]
shl eax, cl
sub ebx, eax
cmp esi, 0xd
mov dword [esp + 0x10], ebx
ja 0x4678e2
sub eax, esi
lea ebx, [edi + 0x32b68]
mov esi, ebp
lea eax, [eax + eax - 2]
mov ebp, edi
mov dword [esp + 0x20], ebx
mov ebx, 1
mov dword [esp + 0x28], eax
jmp 0x466fa0
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add edx, ecx
cmp eax, 0xffffff
mov dword [ebp + 0x98], eax
mov word [edi], dx
ja 0x466f89
shl eax, 8
mov dword [ebp + 0x98], eax
mov eax, dword [esp + 0x64]
call fcn.00465790
add ebx, ebx
shr dword [esp + 0x10], 1
or ebx, dword [esp + 0x18]
add esi, 1
cmp dword [esp + 0x1c], esi
jle 0x4678db
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
lea eax, [eax + ebx*2]
add edi, eax
mov eax, dword [ebp + 0x98]
movzx edx, word [edi]
mov dword [esp + 0x34], eax
shr eax, 0xb
imul eax, edx
and ecx, 1
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], ecx
je 0x466f5b
xor ecx, ecx
add dword [ebp + 0xa0], eax
mov edx, dword [esp + 0x30]
adc dword [ebp + 0xa4], ecx
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov eax, ecx
mov ecx, edx
shr ecx, 5
sub edx, ecx
jmp 0x466f67
movzx esi, word [edi + 0x32c4e]
mov ebp, dword [esp + 0x10]
mov ecx, ebx
shr ecx, 0xb
lea eax, [edi + 0x32c4c]
mov dword [esp + 0x18], eax
imul ecx, esi
and ebp, 1
je 0x467b87
xor edx, edx
mov eax, esi
add dword [edi + 0xa0], ecx
adc dword [edi + 0xa4], edx
sub ebx, ecx
shr eax, 5
mov ecx, ebx
sub esi, eax
cmp ecx, 0xffffff
mov dword [edi + 0x98], ecx
mov word [edi + 0x32c4e], si
ja 0x467063
mov eax, dword [esp + 0x64]
shl ecx, 8
mov dword [edi + 0x98], ecx
call fcn.00465790
mov ecx, dword [edi + 0x98]
lea esi, [edi + 0x32c4c]
or ebp, 2
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ebp
mov ebx, ecx
lea ebp, [esi + ebp*2]
shr ebx, 0xb
shr eax, 1
movzx esi, word [ebp]
imul ebx, esi
and eax, 1
mov dword [esp + 0x18], eax
je 0x467b76
xor edx, edx
mov eax, esi
add dword [edi + 0xa0], ebx
adc dword [edi + 0xa4], edx
sub ecx, ebx
shr eax, 5
mov ebx, ecx
sub esi, eax
cmp ebx, 0xffffff
mov dword [edi + 0x98], ebx
mov word [ebp], si
ja 0x4670d5
mov eax, dword [esp + 0x64]
shl ebx, 8
mov dword [edi + 0x98], ebx
call fcn.00465790
mov ebx, dword [edi + 0x98]
mov eax, dword [esp + 0x1c]
lea ecx, [edi + 0x32c4c]
add eax, eax
or eax, dword [esp + 0x18]
mov esi, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
lea ebp, [ecx + esi*2]
mov ecx, ebx
shr ecx, 0xb
movzx esi, word [ebp]
shr eax, 2
imul ecx, esi
and eax, 1
mov dword [esp + 0x1c], eax
je 0x467b98
xor edx, edx
mov eax, esi
add dword [edi + 0xa0], ecx
adc dword [edi + 0xa4], edx
sub ebx, ecx
shr eax, 5
mov ecx, ebx
sub esi, eax
cmp ecx, 0xffffff
mov dword [edi + 0x98], ecx
mov word [ebp], si
ja 0x467151
mov eax, dword [esp + 0x64]
shl ecx, 8
mov dword [edi + 0x98], ecx
call fcn.00465790
mov ecx, dword [edi + 0x98]
mov eax, dword [esp + 0x18]
lea ebx, [edi + 0x32c4c]
add eax, eax
or eax, dword [esp + 0x1c]
lea ebp, [ebx + eax*2]
mov ebx, ecx
shr ebx, 0xb
movzx esi, word [ebp]
imul ebx, esi
test byte [esp + 0x10], 8
je 0x4679d0
xor edx, edx
mov eax, esi
add dword [edi + 0xa0], ebx
adc dword [edi + 0xa4], edx
sub ecx, ebx
shr eax, 5
mov ebx, ecx
sub esi, eax
cmp ebx, 0xffffff
mov dword [edi + 0x98], ebx
mov word [ebp], si
ja 0x4671b8
mov eax, dword [esp + 0x64]
shl ebx, 8
mov dword [edi + 0x98], ebx
call fcn.00465790
add dword [edi + 0x84], 1
mov eax, dword [edi + 0x3c]
add dword [edi + 0x80], 1
mov dword [edi + 0x40], eax
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov eax, dword [edi + 0x34]
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x34], eax
jmp 0x466b54
movzx ebx, byte [eax + 1]
cmp byte [edx], bl
jne 0x466939
cmp dword [esp + 0x18], 2
je 0x46986d
movzx ebx, byte [edx + 1]
cmp byte [eax + 2], bl
mov ebx, 2
jne 0x467227
mov byte [esp + 0x20], cl
jmp 0x467219
movzx ecx, byte [eax + ebx]
cmp byte [edx + ebx - 1], cl
jne 0x467222
add ebx, 1
cmp ebx, dword [esp + 0x18]
jne 0x46720f
movzx ecx, byte [esp + 0x20]
cmp ebx, dword [esp + 0x1c]
jae 0x469840
cmp ebx, dword [esp + 0x14]
jbe 0x466939
mov dword [esp + 0x14], ebx
mov ebp, esi
jmp 0x466939
mov eax, dword [esp + 0x14]
add eax, 3
cmp eax, dword [esp + 0x10]
jb 0x46725f
cmp ebx, 0x7fff
ja 0x467744
cmp dword [esp + 0x10], 1
jbe 0x4672a2
cmp dword [esp + 0x18], 2
jbe 0x4672a2
lea edx, [edi + 0x24]
mov eax, edi
call fcn.004654a0
cmp eax, 1
mov edx, eax
mov dword [edi + 0x20], eax
jbe 0x46938b
cmp dword [esp + 0x10], edx
mov eax, dword [edi + 0x24]
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + eax*4 - 4]
ja 0x469359
cmp ecx, ebx
jae 0x469359
mov eax, dword [esp + 0x58]
and eax, dword [edi + 0x58]
mov ebx, dword [edi + 0x44]
mov esi, eax
mov dword [esp + 0x10], eax
mov eax, ebx
shl eax, 4
lea eax, [esi + eax + 0x19300]
movzx ecx, word [edi + eax*2 + 8]
mov edx, dword [edi + 0x98]
mov eax, 0x800
shl ebx, 4
sub eax, ecx
shr eax, 5
shr edx, 0xb
mov esi, eax
mov eax, dword [esp + 0x10]
imul edx, ecx
add ecx, esi
lea eax, [eax + ebx + 0x19300]
cmp edx, 0xffffff
mov dword [edi + 0x98], edx
mov word [edi + eax*2 + 8], cx
ja 0x467310
mov eax, dword [esp + 0x64]
shl edx, 8
mov dword [edi + 0x98], edx
call fcn.00465790
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 0xc]
mov edx, dword [esp + 0x58]
sub eax, dword [edi + 0x30]
and edx, dword [edi + 0x54]
mov ebp, dword [edi + 0x48]
mov ecx, ebp
movzx ebx, byte [eax]
mov esi, edx
movzx edx, byte [eax - 1]
shl esi, cl
mov ecx, 8
sub ecx, ebp
sar edx, cl
add edx, esi
lea edx, [edx + edx*2]
shl edx, 9
add edx, dword [edi + 0x60]
cmp dword [edi + 0x44], 6
mov dword [esp + 0x14], edx
ja 0x467ba9
or bh, 1
mov ebp, ebx
jmp 0x467397
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add edx, ecx
cmp eax, 0xffffff
mov dword [edi + 0x98], eax
mov word [esi], dx
ja 0x467389
shl eax, 8
mov dword [edi + 0x98], eax
mov eax, dword [esp + 0x64]
call fcn.00465790
add ebp, ebp
cmp ebp, 0xffff
ja 0x467b4c
mov esi, dword [esp + 0x14]
mov eax, ebp
shr eax, 8
lea esi, [esi + eax*2]
mov eax, dword [edi + 0x98]
movzx edx, word [esi]
mov dword [esp + 0x10], eax
shr eax, 0xb
imul eax, edx
test ebp, 0x80
je 0x46735b
xor ebx, ebx
add dword [edi + 0xa0], eax
mov ecx, edx
adc dword [edi + 0xa4], ebx
mov ebx, dword [esp + 0x10]
shr ecx, 5
sub edx, ecx
sub ebx, eax
mov eax, ebx
jmp 0x467367
mov eax, dword [edi + 0xa8]
mov edx, dword [edi + 0xac]
jmp 0x466edb
xor edx, edx
add dword [edi + 0xa0], ecx
mov eax, ebp
adc dword [edi + 0xa4], edx
sub esi, ecx
shr eax, 5
mov ecx, esi
mov dword [edi + 0x98], esi
mov esi, dword [esp + 0x18]
sub ebp, eax
cmp ecx, 0xffffff
mov word [esi + 0x327e8], bp
jbe 0x466b22
mov eax, dword [esp + 0x14]
lea ebx, [edi + 0x374b4]
mov edx, dword [esp + 0x64]
lea ecx, [eax - 2]
lea eax, [edi + 0x30f34]
mov dword [esp + 8], eax
mov esi, dword [edi + 0x64]
xor eax, eax
test esi, esi
sete al
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
mov dword [esp], eax
mov eax, ebx
call fcn.00466110
mov eax, dword [edi + 0x44]
mov eax, dword [eax*4 + str._b_b_b_b_b_b_b_v_v_v_v_v]
mov dword [edi + 0x44], eax
jmp 0x466b54
cmp esi, 0x1ffff
jbe 0x4668c3
mov eax, edi
mov edi, esi
xor edx, edx
mov esi, eax
mov eax, dword [esi + 0x90]
add dword [esi + 0x78], edi
adc dword [esi + 0x7c], edx
test eax, eax
jne 0x466c26
mov ecx, dword [esi + 0xc8]
test ecx, ecx
je 0x469827
mov edx, dword [esi + 0x2ac]
mov dword [esi + 0x90], 9
mov eax, 9
test edx, edx
je 0x4674cb
mov dword [esi + 0x90], 8
mov eax, 8
mov dword [esi + 0x6c], 1
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 0x20000
mov esi, eax
sbb eax, eax
mov edx, esi
and eax, 0xffffffec
cmp esi, 0x20000
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x10
shr edx, cl
movzx edx, byte [edi + edx + 0x30734]
lea eax, [eax + edx + 0x20]
mov dword [esp + 0x20], eax
jmp 0x466d39
mov eax, dword [edi + ebp*4 + 0x34]
mov ecx, esi
xor edx, edx
shr ecx, 0xb
mov dword [esp + 0x18], eax
lea eax, [edi + ebx*2]
mov dword [esp + 0x20], eax
movzx eax, word [eax + 0x327a0]
imul ecx, eax
add dword [edi + 0xa0], ecx
mov dword [esp + 0x1c], eax
adc dword [edi + 0xa4], edx
mov edx, dword [esp + 0x1c]
sub esi, ecx
mov ecx, dword [esp + 0x20]
mov eax, edx
shr eax, 5
mov dword [edi + 0x98], esi
sub edx, eax
cmp esi, 0xffffff
mov word [ecx + 0x327a0], dx
ja 0x467584
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465790
mov ebx, dword [edi + 0x44]
mov esi, dword [edi + 0x98]
cmp ebp, 1
je 0x4679e8
lea eax, [edi + ebx*2]
mov ecx, esi
xor edx, edx
shr ecx, 0xb
mov dword [esp + 0x20], eax
movzx eax, word [eax + 0x327b8]
imul ecx, eax
add dword [edi + 0xa0], ecx
mov dword [esp + 0x1c], eax
adc dword [edi + 0xa4], edx
mov edx, dword [esp + 0x1c]
sub esi, ecx
mov eax, edx
shr eax, 5
mov dword [edi + 0x98], esi
sub edx, eax
cmp esi, 0xffffff
mov eax, edx
mov edx, dword [esp + 0x20]
mov word [edx + 0x327b8], ax
ja 0x4675f8
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465790
mov ebx, dword [edi + 0x44]
mov esi, dword [edi + 0x98]
lea eax, [edi + ebx*2]
mov ecx, esi
shr ecx, 0xb
movzx ebx, word [eax + 0x327d0]
mov edx, eax
mov dword [esp + 0x1c], eax
imul ecx, ebx
cmp ebp, 2
jne 0x467948
mov eax, 0x800
mov dword [edi + 0x98], ecx
sub eax, ebx
shr eax, 5
add eax, ebx
cmp ecx, 0xffffff
mov word [edx + 0x327d0], ax
jbe 0x467985
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov eax, dword [edi + 0x34]
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 0x34], eax
jmp 0x466b34
cmp dword [esp + 0x10], 1
jbe 0x4679e1
mov edx, dword [esp + 0xf0]
mov esi, dword [esp + 0x24]
lea eax, [edx + 0x3fffffff]
cmp edx, 2
lea ecx, [eax*4]
mov ebx, dword [esi + eax*4]
jbe 0x4676f3
mov esi, dword [esi + ecx - 0xc]
lea eax, [esi + 1]
cmp dword [esp + 0x10], eax
jne 0x4676f3
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + ecx - 8]
mov eax, ebx
shr eax, 7
cmp eax, ecx
jbe 0x4676f3
mov dword [esp + 0x20], edi
lea eax, [edx - 2]
mov dword [esp + 0x1c], ebp
mov edi, dword [esp + 0x24]
jmp 0x4676d9
mov edx, dword [edi + eax*4 - 0x10]
lea ebx, [edx + 1]
cmp ebx, esi
mov dword [esp + 0x10], ebx
jne 0x4676de
lea esi, [eax - 2]
mov ebp, ecx
shr ebp, 7
mov ebx, dword [edi + esi*4 - 4]
cmp ebp, ebx
jbe 0x4680cc
mov eax, esi
mov ecx, ebx
mov esi, edx
cmp eax, 2
ja 0x4676b0
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0xf0], eax
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], 2
jne 0x467b66
cmp ebx, 0x7f
jbe 0x467b66
mov dword [esp + 0x10], 1
cmp dword [esp + 0x14], 1
jbe 0x4672a2
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, esi
add eax, 1
cmp eax, ecx
jae 0x467744
mov eax, esi
add eax, 2
cmp eax, ecx
jb 0x467246
cmp ebx, 0x1ff
jbe 0x467246
mov eax, dword [esp + 0x14]
sub eax, 1
add dword [edi + 0x30], eax
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 0x14]
jmp 0x466c5c
lea eax, [esp + 0xf0]
mov edx, eax
mov eax, edi
call fcn.004654a0
mov dword [esp + 0x10], eax
jmp 0x4668ea
mov ebx, dword [edi + 0x44]
mov esi, eax
mov eax, ebx
shl eax, 4
lea eax, [esi + eax + 0x19300]
movzx ecx, word [edi + eax*2 + 8]
jmp 0x4669a0
mov ebx, dword [edi + 0x30]
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
test ebx, ebx
je 0x469340
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0xdc], eax
mov ebx, dword [edi + 0x28]
cmp ebx, 1
jbe 0x4672a2
cmp ebx, 0x111
mov eax, 0x111
cmova ebx, eax
mov eax, dword [edi]
xor ebp, ebp
mov dword [esp], eax
call dword [edi + 0xc]
mov esi, eax
lea eax, [eax - 1]
xor edx, edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], eax
movzx eax, byte [esi - 1]
mov byte [esp + 0x1c], al
lea eax, [esp + 0xf0]
mov dword [esp + 0x30], eax
mov eax, dword [edi + edx*4 + 0x34]
movzx ecx, byte [esp + 0x1c]
mov dword [esp + edx*4 + 0xe0], eax
not eax
add eax, dword [esp + 0x20]
cmp byte [eax], cl
je 0x467885
mov eax, dword [esp + 0x30]
mov dword [eax + edx*4], 0
add edx, 1
cmp edx, 4
jne 0x467803
mov eax, dword [esp + ebp*4 + 0xf0]
mov ebx, eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x2c]
cmp ebx, eax
jb 0x4679a2
mov eax, ebx
sub eax, 1
jne 0x4680b0
mov eax, dword [esp + 0x58]
and eax, dword [edi + 0x58]
mov ebx, dword [edi + 0x44]
mov esi, eax
mov dword [esp + 0x10], eax
mov eax, ebx
shl eax, 4
lea eax, [esi + eax + 0x19300]
mov esi, ebp
movzx ecx, word [edi + eax*2 + 8]
mov ebp, esi
mov dword [esp + 0x14], 1
jmp 0x4669a0
movzx ecx, byte [eax + 1]
cmp byte [esi], cl
jne 0x46781d
cmp dword [esp + 0x10], 2
mov ecx, 2
je 0x4678c5
movzx ebx, byte [eax + 2]
cmp byte [esi + 1], bl
jne 0x4678c5
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
jmp 0x4678b6
movzx edx, byte [eax + ecx]
cmp byte [esi + ecx - 1], dl
jne 0x4678bd
add ecx, 1
cmp ebx, ecx
jne 0x4678ac
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x30]
mov dword [eax + edx*4], ecx
cmp dword [esp + ebp*4 + 0xf0], ecx
cmovb ebp, edx
jmp 0x467828
mov edi, ebp
jmp 0x4671bf
mov esi, ebx
lea ecx, [edx - 5]
mov ebx, dword [edi + 0x98]
shr esi, 4
jmp 0x4678fa
test ecx, ecx
je 0x466ff7
sub ecx, 1
mov eax, esi
shr ebx, 1
shr eax, cl
xor edx, edx
mov dword [edi + 0x98], ebx
and eax, 1
neg eax
and eax, ebx
add dword [edi + 0xa0], eax
adc dword [edi + 0xa4], edx
cmp ebx, 0xffffff
ja 0x4678f2
mov eax, dword [esp + 0x64]
shl ebx, 8
mov dword [edi + 0x98], ebx
mov dword [esp + 0x18], ecx
call fcn.00465790
mov ebx, dword [edi + 0x98]
mov ecx, dword [esp + 0x18]
jmp 0x4678f2
xor edx, edx
mov eax, ebx
add dword [edi + 0xa0], ecx
adc dword [edi + 0xa4], edx
shr eax, 5
sub esi, ecx
sub ebx, eax
mov eax, dword [esp + 0x1c]
cmp esi, 0xffffff
mov dword [edi + 0x98], esi
mov ecx, esi
mov word [eax + 0x327d0], bx
jbe 0x467985
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x40], eax
jmp 0x46763e
mov eax, dword [esp + 0x64]
shl ecx, 8
mov dword [edi + 0x98], ecx
call fcn.00465790
cmp ebp, 3
jne 0x46763e
jmp 0x46797a
mov ebx, dword [esp + 0x14]
cmp eax, ebx
ja 0x467c6b
mov eax, dword [esp + 0xdc]
mov esi, dword [esp + 0x24]
mov ebp, dword [esi + eax*4 - 4]
mov eax, ebx
add ebp, 4
sub eax, 1
je 0x46696e
jmp 0x46774b
mov eax, 0x800
sub eax, esi
shr eax, 5
add esi, eax
jmp 0x467194
xor ebx, ebx
jmp 0x46770f
lea ebx, [edi + ebx*2]
shr esi, 0xb
mov edx, 0x800
mov eax, esi
movzx ecx, word [ebx + 0x327b8]
imul eax, ecx
sub edx, ecx
shr edx, 5
add edx, ecx
cmp eax, 0xffffff
mov dword [edi + 0x98], eax
mov word [ebx + 0x327b8], dx
ja 0x467644
shl eax, 8
mov dword [edi + 0x98], eax
mov eax, dword [esp + 0x64]
call fcn.00465790
jmp 0x467644
add dword [edi + 0x30], eax
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
jmp 0x466c5c
lea eax, [edi + 0x32c4c]
movzx esi, word [edi + 0x32c4e]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
lea eax, [edi + 0x30f34]
mov dword [esp + 0x18], esi
mov ebx, eax
mov eax, ebp
mov edi, dword [esp + 0x10]
mov esi, ebp
and eax, 1
shr esi, 1
mov ecx, eax
neg eax
and esi, 1
or ecx, 2
and eax, 0x7ff
xor eax, dword [esp + 0x18]
movzx edx, word [edi + ecx*2]
mov edi, esi
neg edi
and edi, 0x7ff
sar eax, 4
xor edx, edi
mov edi, dword [ebx + eax*4]
lea eax, [ecx + ecx]
sar edx, 4
or eax, esi
mov esi, dword [esp + 0x10]
add edi, dword [ebx + edx*4]
mov edx, ebp
shr edx, 2
and edx, 1
movzx ecx, word [esi + eax*2]
add eax, eax
mov esi, edx
or eax, edx
mov edx, ebp
neg esi
shr edx, 3
and esi, 0x7ff
neg edx
xor ecx, esi
mov esi, dword [esp + 0x10]
and edx, 0x7ff
sar ecx, 4
add edi, dword [ebx + ecx*4]
movzx eax, word [esi + eax*2]
xor eax, edx
sar eax, 4
add edi, dword [ebx + eax*4]
mov eax, dword [esp + 0x14]
mov dword [eax + ebp*4 + 0x325c8], edi
add ebp, 1
cmp ebp, 0x10
jne 0x467a72
mov edi, eax
mov dword [eax + 0x84], 0
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 8]
test eax, eax
jne 0x466b9d
mov esi, edi
mov edi, dword [esp + 0x58]
sub edi, dword [esp + 0x90]
jmp 0x466c13
mov eax, edi
call fcn.00465550
jmp 0x466b80
mov eax, dword [edi + 0x44]
mov dword [esp + 0x14], 1
mov eax, dword [eax*4 + 0x731280]
mov dword [edi + 0x44], eax
jmp 0x466b54
cmp dword [esp + 0x14], 1
ja 0x46771a
jmp 0x46725f
mov eax, 0x800
sub eax, esi
shr eax, 5
add esi, eax
jmp 0x4670ab
mov eax, 0x800
sub eax, esi
shr eax, 5
add esi, eax
jmp 0x467036
mov eax, 0x800
sub eax, esi
shr eax, 5
add esi, eax
jmp 0x467127
mov edx, dword [edi + 0x34]
or bh, 1
mov esi, 0x100
mov ebp, ebx
not edx
movzx eax, byte [eax + edx]
mov dword [esp + 0x10], eax
jmp 0x467c0c
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add edx, ecx
mov ebx, dword [esp + 0x18]
cmp eax, 0xffffff
mov dword [edi + 0x98], eax
mov word [ebx], dx
ja 0x467bf4
shl eax, 8
mov dword [edi + 0x98], eax
mov eax, dword [esp + 0x64]
call fcn.00465790
mov eax, dword [esp + 0x10]
add ebp, ebp
xor eax, ebp
not eax
and esi, eax
cmp ebp, 0xffff
ja 0x467b4c
shl dword [esp + 0x10], 1
mov edx, ebp
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
shr edx, 8
and eax, esi
add eax, edx
add eax, esi
lea eax, [ebx + eax*2]
movzx edx, word [eax]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x98]
mov dword [esp + 0x1c], eax
shr eax, 0xb
imul eax, edx
test ebp, 0x80
je 0x467bc2
xor ebx, ebx
add dword [edi + 0xa0], eax
mov ecx, edx
adc dword [edi + 0xa4], ebx
mov ebx, dword [esp + 0x1c]
shr ecx, 5
sub edx, ecx
sub ebx, eax
mov eax, ebx
jmp 0x467bce
mov eax, dword [esp + 0xe0]
cmp dword [esp + 0x14], 1
mov dword [esp + 0x40], eax
not eax
movzx eax, byte [esi + eax - 1]
setbe dl
cmp al, byte [esp + 0x1c]
mov byte [esp + 0x38], al
setne al
and eax, edx
cmp dword [esp + 0x28], 1
setbe dl
test al, dl
jne 0x4672a2
mov edx, dword [esp + 0x58]
mov eax, dword [edi + 0x58]
mov ebx, dword [edi + 0x44]
mov ebp, dword [edi + 0x48]
and eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x54]
mov ecx, ebp
mov dword [edi + 0x738], ebx
and eax, edx
mov edx, eax
movzx eax, byte [esi - 2]
shl edx, cl
mov ecx, 8
sub ecx, ebp
sar eax, cl
add eax, edx
lea eax, [eax + eax*2]
shl eax, 9
add eax, dword [edi + 0x60]
mov dword [esp + 0x3c], eax
mov eax, ebx
shl eax, 4
add eax, dword [esp + 0x10]
lea eax, [edi + eax*2]
movzx ecx, word [eax + 0x32608]
mov dword [esp + 0x34], eax
mov eax, ecx
shr ax, 4
cmp ebx, 6
mov word [esp + 0x44], ax
movzx eax, ax
mov eax, dword [edi + eax*4 + 0x30f34]
mov dword [esp + 0x48], eax
lea eax, [edi + 0x30f34]
mov dword [esp + 0x20], eax
ja 0x469793
movzx eax, byte [esp + 0x1c]
xor esi, esi
or ah, 1
mov ebp, eax
mov edx, dword [esp + 0x3c]
mov eax, ebp
shr eax, 8
movzx eax, word [edx + eax*2]
mov edx, ebp
add ebp, ebp
shl edx, 0x18
sar edx, 0x1f
and edx, 0x7ff
xor eax, edx
mov edx, dword [esp + 0x20]
sar eax, 4
add esi, dword [edx + eax*4]
cmp ebp, 0xffff
jbe 0x467d31
movzx eax, word [esp + 0x44]
add esi, dword [esp + 0x48]
mov ebp, 0xffffffff
mov dword [edi + 0x780], 0xffffffff
mov dword [edi + 0x76c], 0
xor eax, 0x7f
mov dword [edi + 0x764], esi
movzx eax, ax
mov eax, dword [edi + eax*4 + 0x30f34]
mov edx, eax
mov dword [esp + 0x44], eax
lea eax, [edi + ebx*2]
mov dword [esp + 0x18], eax
movzx eax, word [eax + 0x32788]
shr ax, 4
mov word [esp + 0x3c], ax
xor eax, 0x7f
movzx eax, ax
add edx, dword [edi + eax*4 + 0x30f34]
mov dword [esp + 0x2c], edx
movzx edx, byte [esp + 0x1c]
cmp byte [esp + 0x38], dl
je 0x469739
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp eax, esi
cmovb eax, esi
cmp eax, 1
mov esi, eax
mov dword [esp + 0x48], eax
jbe 0x46698f
mov eax, dword [esp + 0x40]
mov dword [edi + 0x77c], 0
mov dword [edi + 0x754], eax
mov eax, dword [esp + 0xe4]
mov dword [edi + 0x758], eax
mov eax, dword [esp + 0xe8]
mov dword [edi + 0x75c], eax
mov eax, dword [esp + 0xec]
mov dword [edi + 0x760], eax
lea eax, [esi + esi*2]
shl eax, 4
lea esi, [edi + eax + 0x734]
lea eax, [edi + 0x764]
mov dword [esi], 0x40000000
sub esi, 0x30
cmp eax, esi
jne 0x467e3e
imul eax, dword [esp + 0x10], 0x110
xor ebp, ebp
add eax, 0xde2d
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + ebp*4]
cmp eax, 1
jbe 0x467f25
mov ebx, dword [esp + 0x18]
test ebp, ebp
movzx ebx, word [ebx + 0x327a0]
je 0x4680e2
mov edx, ebx
mov word [esp + 0x1c], bx
shr dx, 4
xor edx, 0x7f
cmp ebp, 1
movzx edx, dx
mov ebx, dword [edi + edx*4 + 0x30f34]
je 0x469804
mov ecx, dword [esp + 0x18]
movzx edx, word [ecx + 0x327b8]
movzx ecx, word [ecx + 0x327d0]
mov word [esp + 0x1c], dx
shr dx, 4
xor edx, 0x7f
movzx edx, dx
add ebx, dword [edi + edx*4 + 0x30f34]
mov edx, 2
sub edx, ebp
and edx, 0x7ff
xor edx, ecx
sar edx, 4
add ebx, dword [edi + edx*4 + 0x30f34]
mov edx, dword [esp + 0x28]
add ebx, dword [esp + 0x2c]
add edx, eax
lea eax, [eax + eax*2]
lea edx, [edi + edx*4]
shl eax, 4
lea eax, [edi + eax + 0x734]
lea esi, [esi]
mov ecx, dword [edx]
add ecx, ebx
cmp ecx, dword [eax]
jae 0x467f1b
mov dword [eax], ecx
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], ebp
mov dword [eax + 8], 0
sub eax, 0x30
sub edx, 4
cmp esi, eax
jne 0x467f00
add ebp, 1
cmp ebp, 4
jne 0x467e5e
mov eax, dword [esp + 0xf0]
lea edx, [eax + 1]
cmp eax, 2
mov eax, 2
cmovae eax, edx
cmp dword [esp + 0x14], eax
mov ebp, eax
jb 0x468120
cmp eax, dword [edi + 0x31134]
jbe 0x46972c
mov ebx, dword [esp + 0x24]
xor eax, eax
add eax, 2
cmp ebp, dword [ebx + eax*4]
ja 0x467f64
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xdc]
movzx edx, word [esp + 0x3c]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x3c], eax
lea eax, [ebp + ebp*2]
shl eax, 4
lea esi, [edi + eax + 0x734]
imul eax, dword [esp + 0x10], 0x440
add eax, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
add eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
add eax, dword [edi + edx*4 + 0x30f34]
mov dword [esp + 0x28], eax
jmp 0x468004
shl eax, 7
mov edi, dword [esp + 0x2c]
lea eax, [edx + eax + 0xc770]
add ebx, dword [edi + eax*4 + 8]
cmp dword [esi], ebx
jbe 0x467fec
add edx, 4
mov dword [esi], ebx
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], edx
mov dword [esi + 8], 0
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp ebp, dword [eax + ebx - 4]
je 0x46970d
add ebp, 1
add esi, 0x30
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea ebx, [eax*4]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx + eax*4]
lea eax, [ebp - 2]
mov ebx, dword [esp + 0x28]
add ebx, dword [ecx + ebp*4 + 0x3306c]
mov ecx, 3
cmp ebp, 5
mov dword [esp + 0x10], eax
mov eax, ecx
cmovb eax, dword [esp + 0x10]
cmp edx, 0x7f
mov dword [esp + 0x10], eax
jbe 0x467fc0
cmp edx, 0x20000
mov eax, dword [esp + 0x2c]
mov edi, edx
sbb ecx, ecx
and ecx, 0xffffffec
cmp edx, 0x20000
mov dword [esp + 0x38], ecx
sbb ecx, ecx
and edi, 0xf
and ecx, 0xfffffff6
add ebx, dword [eax + edi*4 + 0x325c8]
mov edi, edx
add ecx, 0x10
shr edi, cl
mov ecx, edi
mov edi, eax
movzx ecx, byte [eax + ecx + 0x30734]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x38]
shl eax, 6
lea eax, [ebx + eax + 0x20]
mov ebx, dword [esp + 0x34]
lea eax, [ecx + eax + 0xc670]
add ebx, dword [edi + eax*4 + 8]
jmp 0x467fd2
add dword [edi + 0x30], eax
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 0x14]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
jmp 0x466c5c
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0xf0], eax
jmp 0x4676f3
mov ecx, ebx
mov ebx, dword [esp + 0x34]
shr cx, 4
movzx ecx, cx
movzx ebx, word [ebx + 0x327e8]
mov edx, ebx
mov word [esp + 0x1c], bx
mov ebx, dword [edi + ecx*4 + 0x30f34]
shr dx, 4
xor edx, 0x7f
movzx edx, dx
mov edx, dword [edi + edx*4 + 0x30f34]
add ebx, edx
jmp 0x467ee3
mov edi, dword [esp + 0x2c]
lea eax, [edi + 0x794]
mov dword [esp + 0x38], 1
mov dword [esp + 0x14], edi
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x88], eax
lea eax, [esp + 0xdc]
mov dword [esp + 0xc0], eax
mov edx, eax
mov eax, dword [esp + 0x38]
lea ebx, [eax - 1]
mov eax, edi
call fcn.004654a0
cmp eax, dword [edi + 0x2c]
mov dword [esp + 0x34], eax
jae 0x469622
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov ecx, dword [edi - 0x28]
add eax, 1
mov dword [esp + 0x98], eax
mov eax, dword [edi - 0x18]
test ecx, ecx
je 0x469070
mov edx, dword [edi - 0x24]
sub eax, 1
test edx, edx
je 0x4692bd
mov ecx, dword [edi - 0x20]
mov esi, dword [esp + 0x14]
lea edx, [ecx + ecx*2]
shl edx, 4
cmp dword [edi - 0x1c], 3
mov edx, dword [esi + edx + 0x738]
ja 0x4691fa
mov edx, dword [edx*4 + str._b_b_b_b_b_b_b_v_v_v_v_v]
mov esi, dword [edx*4 + 0x731280]
cmp eax, ebx
mov edx, esi
jne 0x4691a4
mov eax, dword [esp + 0x8c]
mov ebp, dword [eax - 0x14]
test ebp, ebp
jne 0x469303
mov eax, dword [edx*4 + str._t_t_t_t_t_t_t_v_v_v_v_v]
mov dword [esp + 0x80], eax
mov esi, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov edi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x80]
mov dword [edi - 0xc], ecx
mov dword [edi - 8], edx
mov dword [edi - 4], eax
mov dword [edi - 0x2c], ebp
mov eax, dword [edi - 0x30]
mov dword [edi - 0x10], esi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 0xc]
lea ebx, [eax - 1]
mov dword [esp + 0x44], eax
mov ecx, esi
not ecx
mov dword [esp + 0x5c], ebx
mov ebx, eax
movzx eax, byte [eax - 1]
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x18], al
movzx eax, byte [ebx + ecx - 1]
mov ecx, dword [edi + 0x58]
mov edx, ecx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x98]
mov byte [esp + 0x2c], al
mov eax, ecx
and eax, edx
mov edx, eax
mov dword [esp + 0x54], eax
mov eax, ebp
shl eax, 4
add eax, edx
mov edx, dword [esp + 0x1c]
lea eax, [edi + eax*2]
mov dword [esp + 0x78], eax
movzx eax, word [eax + 0x32608]
mov word [esp + 0x10], ax
shr ax, 4
mov word [esp + 0x30], ax
movzx eax, ax
add edx, dword [edi + eax*4 + 0x30f34]
mov eax, edi
mov edi, dword [edi + 0x60]
mov dword [esp + 0x28], edi
mov dword [esp + 0x40], edx
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x68], edx
mov edx, 8
sub edx, eax
mov edi, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x6c], edx
and eax, ecx
mov ecx, edi
shl eax, cl
movzx ecx, byte [esp + 0x6c]
mov edx, eax
movzx eax, byte [ebx - 2]
sar eax, cl
add eax, edx
lea edi, [eax + eax*2]
shl edi, 9
add edi, dword [esp + 0x28]
cmp ebp, 6
ja 0x469110
movzx ecx, byte [esp + 0x18]
mov edx, dword [esp + 0x20]
xor ebx, ebx
or ch, 1
mov eax, ecx
mov ebp, ecx
add ecx, ecx
shr eax, 8
shl ebp, 0x18
movzx eax, word [edi + eax*2]
sar ebp, 0x1f
and ebp, 0x7ff
xor eax, ebp
sar eax, 4
add ebx, dword [edx + eax*4]
cmp ecx, 0xffff
jbe 0x46831b
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov edx, 1
mov eax, edi
add ebp, ebx
add eax, 1
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x8c]
cmp ebp, dword [eax]
jae 0x46837f
mov dword [eax], ebp
mov dword [eax + 0x18], edi
xor edx, edx
mov dword [eax + 0x1c], 0xffffffff
mov dword [eax + 8], 0
movzx eax, word [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
xor eax, 0x7f
movzx eax, ax
add edi, dword [ebx + eax*4 + 0x30f34]
mov eax, dword [esp + 0x80]
lea eax, [ebx + eax*2]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x30], eax
movzx eax, word [eax + 0x32788]
mov word [esp + 0x10], ax
shr ax, 4
mov word [esp + 0xa2], ax
xor eax, 0x7f
movzx eax, ax
add edi, dword [ebx + eax*4 + 0x30f34]
movzx ebx, byte [esp + 0x2c]
cmp byte [esp + 0x18], bl
mov dword [esp + 0x70], edi
je 0x469206
mov edi, dword [esp + 0x14]
mov eax, 0xfff
sub eax, dword [esp + 0x38]
mov ecx, dword [edi + 0x28]
cmp eax, ecx
cmovbe ecx, eax
cmp ecx, 1
mov dword [esp + 0x60], ecx
jbe 0x468b89
mov eax, dword [edi + 0x2c]
cmp ecx, eax
mov edi, eax
mov dword [esp + 0x74], eax
cmovbe eax, ecx
test dl, dl
mov dword [esp + 0x18], eax
je 0x4685cc
mov eax, edi
add eax, 1
cmp ecx, eax
cmovbe eax, ecx
cmp eax, 1
mov ecx, eax
jbe 0x4685cc
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x44]
sub eax, esi
movzx ebx, byte [edi]
cmp byte [eax], bl
jne 0x4685cc
mov eax, dword [esp + 0x3c]
mov ebx, 1
mov esi, ecx
add eax, edi
jmp 0x46846c
mov edi, dword [esp + 0x44]
movzx ecx, byte [edx + eax - 1]
cmp byte [edi + edx - 1], cl
jne 0x468473
mov ebx, edx
lea edx, [ebx + 1]
cmp edx, esi
jne 0x46845b
cmp ebx, 1
je 0x4685cc
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x14]
mov ecx, dword [eax*4 + 0x731280]
mov eax, dword [esp + 0x88]
add eax, 2
and eax, dword [esp + 0x4c]
mov edi, eax
mov dword [esp + 0x1c], eax
mov eax, ecx
shl eax, 4
add eax, edi
lea edi, [esi + eax*2]
movzx eax, word [edi + 0x32608]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
mov eax, dword [esi + eax*4 + 0x30f34]
mov dword [esp + 0x2c], eax
lea eax, [esi + ecx*2]
mov dword [esp + 0x10], eax
movzx eax, word [eax + 0x32788]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
mov eax, dword [esi + eax*4 + 0x30f34]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
lea ecx, [edx + eax]
mov eax, dword [esp + 0x48]
cmp ecx, eax
jbe 0x468539
lea eax, [eax + eax*2]
lea edx, [ecx + ecx*2]
shl eax, 4
shl edx, 4
lea eax, [esi + eax + 0x764]
lea edx, [esi + edx + 0x764]
mov esi, dword [esp + 0x10]
nop
lea esi, [esi]
mov dword [eax], 0x40000000
add eax, 0x30
cmp edx, eax
jne 0x468520
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x3c]
movzx eax, word [eax + 0x327a0]
shr ax, 4
movzx eax, ax
add edx, dword [esi + eax*4 + 0x30f34]
movzx eax, word [edi + 0x327e8]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
add edx, dword [esi + eax*4 + 0x30f34]
mov eax, edx
imul edx, dword [esp + 0x1c], 0x110
add eax, ebp
lea edx, [ebx + edx + 0xde2a]
add eax, dword [esi + edx*4 + 0xc]
mov edx, eax
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, esi
cmp edx, dword [eax + 0x734]
jae 0x4685cc
mov edi, dword [esp + 0x94]
mov dword [eax + 0x734], edx
mov dword [eax + 0x750], 0
mov dword [eax + 0x73c], 1
mov dword [eax + 0x740], 0
mov dword [eax + 0x74c], edi
imul eax, dword [esp + 0x54], 0x110
mov esi, dword [esp + 0x14]
mov dword [esp + 0x2c], 2
xor ebp, ebp
lea edi, [eax + 0xde2d]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc4], edi
mov eax, dword [esp + ebp*4 + 0xe0]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x10], eax
not eax
add eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
movzx eax, byte [eax]
cmp byte [edi - 1], al
je 0x468bc4
add ebp, 1
cmp ebp, 4
jne 0x4685f6
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x34], eax
jbe 0x468670
mov edi, dword [esp + 0x14]
mov dword [esp + 0xdc], 0
cmp dword [edi + 0x31134], eax
jae 0x469610
lea ecx, [edi + 0x3113c]
mov edi, dword [esp + 0x18]
mov eax, 2
mov edx, ecx
add eax, 2
lea ecx, [ecx + 8]
cmp dword [edx], edi
jb 0x468657
mov dword [edx], edi
mov dword [esp + 0xdc], eax
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
cmp edi, esi
jb 0x468b89
movzx eax, word [esp + 0xa2]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x9c]
add ecx, dword [esi + eax*4 + 0x30f34]
mov eax, dword [esp + 0x38]
add eax, edi
mov ebx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], ecx
cmp eax, ebx
jae 0x469607
lea eax, [eax + eax*2]
lea edx, [ebx + ebx*2]
shl eax, 4
shl edx, 4
lea eax, [esi + eax + 0x764]
lea edx, [esi + edx + 0x764]
lea esi, [esi]
mov dword [eax], 0x40000000
add eax, 0x30
cmp edx, eax
jne 0x4686d0
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
cmp edi, dword [eax + 0x31134]
jbe 0x4695d9
xor eax, eax
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
jmp 0x4686ff
mov eax, edx
lea edx, [eax + 2]
cmp dword [edi + edx*4], esi
jb 0x4686fd
lea eax, [eax*4 + 0xc]
mov dword [esp + 0x1c], edx
mov eax, dword [edi + eax]
mov dword [esp + 0x48], ebx
cmp eax, 0x20000
mov edi, eax
mov dword [esp + 0x10], eax
sbb eax, eax
mov edx, edi
and eax, 0xffffffec
cmp edi, 0x20000
mov edi, dword [esp + 0x14]
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x10
shr edx, cl
movzx edx, byte [edi + edx + 0x30734]
lea eax, [eax + edx + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x2c]
lea ebp, [eax + 1]
add eax, dword [esp + 0x38]
lea eax, [eax + eax*2]
shl eax, 4
lea eax, [edi + eax + 0x734]
mov esi, eax
imul eax, dword [esp + 0x54], 0x440
add eax, edi
mov edi, ebp
mov ebp, esi
mov dword [esp + 0x34], eax
mov esi, eax
jmp 0x4687eb
shl eax, 7
mov ebx, dword [esp + 0x14]
lea eax, [esi + eax + 0xc770]
add ecx, dword [ebx + eax*4 + 8]
mov dword [esp + 0x18], ecx
mov eax, ecx
cmp dword [ebp], eax
jbe 0x4687c9
mov dword [ebp], eax
mov eax, dword [esp + 0x38]
mov dword [ebp + 8], 0
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
cmp dword [ebx + eax*4], edx
lea esi, [eax*4]
mov dword [esp + 0x2c], esi
je 0x468840
mov esi, dword [esp + 0x34]
add edi, 1
add ebp, 0x30
lea edx, [edi - 1]
mov ecx, dword [esp + 0x30]
add ecx, dword [esi + edi*4 + 0x33068]
mov esi, dword [esp + 0x10]
lea eax, [edi - 3]
mov ebx, 3
cmp edx, 5
cmovae eax, ebx
cmp esi, 0x7f
jbe 0x468791
mov ebx, esi
mov esi, dword [esp + 0x14]
shl eax, 6
and ebx, 0xf
add ecx, dword [esi + ebx*4 + 0x325c8]
mov ebx, dword [esp + 0x3c]
lea eax, [ebx + eax + 0xc670]
add ecx, dword [esi + eax*4 + 8]
mov dword [esp + 0x18], ecx
mov eax, ecx
jmp 0x4687a9
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x10]
lea ebx, [edi + eax]
mov eax, dword [esp + 0x60]
not ecx
add ecx, dword [esp + 0x5c]
cmp ebx, eax
cmova ebx, eax
cmp ebx, edi
jbe 0x468b82
mov esi, dword [esp + 0x44]
movzx eax, byte [esi + edi - 1]
cmp byte [ecx + edi], al
mov eax, edi
jne 0x468895
mov dword [esp + 0x40], edx
jmp 0x46888a
movzx edx, byte [ecx + eax]
cmp byte [esi + eax - 1], dl
jne 0x468891
add eax, 1
cmp eax, ebx
jb 0x468880
mov edx, dword [esp + 0x40]
sub eax, edx
mov dword [esp + 0x50], eax
sub eax, 1
cmp eax, 1
mov dword [esp + 0x54], eax
jbe 0x468b23
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x88]
mov dword [esp + 0x74], edi
mov eax, dword [eax*4 + str._a_a_a_a_a_a_a_n_n_n_n_n]
mov dword [esp + 0x4c], eax
lea eax, [esi + edi]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov ebx, dword [esi + 0x58]
mov dword [esp + 0x68], ebx
and ebx, eax
mov eax, ebx
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x4c]
shl ebx, 4
lea ebx, [eax + ebx + 0x19300]
movzx ebx, word [esi + ebx*2 + 8]
shr bx, 4
movzx ebx, bx
mov eax, dword [esi + ebx*4 + 0x30f34]
mov ebx, dword [esp + 0x14]
movzx esi, byte [ecx + edx]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x40]
and eax, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x48]
mov ebx, dword [esp + 0x44]
shl eax, cl
movzx edx, byte [ebx + edi - 3]
mov dword [esp + 0x40], eax
mov eax, 8
sub eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], ebp
sar edx, cl
movzx ecx, byte [ebx + edi - 2]
mov ebx, 0x100
add eax, edx
xor edx, edx
lea eax, [eax + eax*2]
mov edi, edx
or ch, 1
shl eax, 9
mov ebp, eax
lea esi, [esi]
lea edi, [edi]
add esi, esi
mov edx, ecx
mov eax, esi
shr edx, 8
and eax, ebx
add eax, ebx
add eax, edx
mov edx, dword [esp + 0x28]
lea eax, [edx + eax*2]
mov edx, ecx
add ecx, ecx
shl edx, 0x18
movzx eax, word [eax + ebp]
sar edx, 0x1f
and edx, 0x7ff
xor eax, edx
mov edx, dword [esp + 0x20]
sar eax, 4
add edi, dword [edx + eax*4]
mov eax, esi
xor eax, ecx
not eax
and ebx, eax
cmp ecx, 0xffff
mov edx, edi
jbe 0x468960
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x74]
mov ebx, dword [eax*4 + 0x731280]
add ecx, 1
and ecx, dword [esp + 0x68]
mov eax, ebx
lea esi, [edx + ebx*2]
mov ebx, dword [esp + 0x54]
shl eax, 4
mov dword [esp + 0x4c], ecx
add eax, ecx
lea eax, [edx + eax*2]
mov dword [esp + 0x74], eax
movzx eax, word [eax + 0x32608]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
mov eax, dword [edx + eax*4 + 0x30f34]
mov dword [esp + 0x68], eax
movzx eax, word [esi + 0x32788]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
mov eax, dword [edx + eax*4 + 0x30f34]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38]
add eax, edi
add ebx, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x48]
cmp ebx, eax
jbe 0x468a69
lea eax, [eax + eax*2]
lea ecx, [ebx + ebx*2]
shl eax, 4
shl ecx, 4
lea eax, [edx + eax + 0x764]
lea ecx, [edx + ecx + 0x764]
mov edx, dword [esp + 0x40]
mov dword [eax], 0x40000000
add eax, 0x30
cmp ecx, eax
jne 0x468a54
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], ebx
movzx eax, word [esi + 0x327a0]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x50]
shr ax, 4
movzx eax, ax
add ecx, dword [esi + eax*4 + 0x30f34]
mov eax, dword [esp + 0x70]
add eax, ecx
mov ecx, dword [esp + 0x74]
add eax, dword [esp + 0x68]
movzx ecx, word [ecx + 0x327e8]
shr cx, 4
xor ecx, 0x7f
movzx ecx, cx
add eax, dword [esi + ecx*4 + 0x30f34]
imul ecx, dword [esp + 0x4c], 0x110
add eax, dword [esp + 0x18]
lea ecx, [edx + ecx + 0xde29]
lea edx, [ebx + ebx*2]
add eax, dword [esi + ecx*4 + 0xc]
shl edx, 4
add eax, dword [esp + 0x40]
add edx, esi
cmp eax, dword [edx + 0x734]
jae 0x468b23
mov dword [edx + 0x734], eax
mov eax, dword [esp + 0x84]
mov dword [edx + 0x750], 0
mov dword [edx + 0x73c], 1
mov dword [edx + 0x740], 1
mov dword [edx + 0x74c], eax
mov eax, dword [esp + 0x38]
mov dword [edx + 0x744], eax
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [edx + 0x748], eax
add dword [esp + 0x1c], 2
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x7c]
je 0x468b89
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ebx + 0xc]
cmp eax, 0x7f
mov dword [esp + 0x10], eax
mov ebx, eax
jbe 0x4687e1
cmp eax, 0x20000
mov esi, dword [esp + 0x14]
mov edx, ebx
sbb eax, eax
and eax, 0xffffffec
cmp ebx, 0x20000
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x10
shr edx, cl
movzx edx, byte [esi + edx + 0x30734]
lea eax, [eax + edx + 0x20]
mov dword [esp + 0x3c], eax
jmp 0x4687e1
mov eax, edi
jmp 0x468895
mov eax, dword [esp + 0x94]
add dword [esp + 0x8c], 0x30
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x38], eax
je 0x469500
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0xc0]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x88], eax
jmp 0x468154
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 1]
cmp byte [edi], al
jne 0x46861b
cmp dword [esp + 0x18], 2
jbe 0x4694de
mov eax, edi
mov edi, dword [esp + 0x1c]
movzx eax, byte [eax + 1]
cmp byte [edi + 2], al
jne 0x4694de
mov eax, 2
jmp 0x468c15
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
movzx ebx, byte [ebx + eax + 1]
cmp byte [edi + edx - 1], bl
jne 0x468c1e
mov eax, edx
lea edx, [eax + 1]
cmp edx, dword [esp + 0x18]
jne 0x468c00
lea ebx, [eax - 1]
lea edi, [eax + 2]
mov dword [esp + 0x10], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
cmp eax, ecx
mov ebx, eax
mov dword [esp + 0x50], eax
jbe 0x468c75
lea eax, [ecx + ecx*2]
lea edx, [ebx + ebx*2]
shl eax, 4
shl edx, 4
lea eax, [esi + eax + 0x764]
lea edx, [esi + edx + 0x764]
mov dword [eax], 0x40000000
add eax, 0x30
cmp edx, eax
jne 0x468c60
mov eax, dword [esp + 0x50]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
test ebp, ebp
movzx eax, word [eax + 0x327a0]
je 0x4694aa
mov word [esp + 0x7c], ax
shr ax, 4
xor eax, 0x7f
cmp ebp, 1
movzx eax, ax
mov ebx, dword [esi + eax*4 + 0x30f34]
je 0x469487
mov ecx, dword [esp + 0x30]
movzx eax, word [ecx + 0x327b8]
movzx edx, word [ecx + 0x327d0]
mov word [esp + 0x7c], ax
shr ax, 4
xor eax, 0x7f
movzx eax, ax
add ebx, dword [esi + eax*4 + 0x30f34]
mov eax, 2
sub eax, ebp
and eax, 0x7ff
xor eax, edx
sar eax, 4
add ebx, dword [esi + eax*4 + 0x30f34]
mov eax, dword [esp + 0xc4]
add eax, dword [esp + 0x10]
add ebx, dword [esp + 0x70]
mov dword [esp + 0x7c], edi
mov dword [esp + 0xa4], esi
mov edi, dword [esp + 0x8c]
lea edx, [esi + eax*4]
mov eax, dword [esp + 0x50]
lea eax, [eax + eax*2]
shl eax, 4
lea eax, [esi + eax + 0x734]
mov esi, dword [esp + 0x38]
mov ecx, dword [edx]
add ecx, ebx
cmp ecx, dword [eax]
jae 0x468d37
mov dword [eax], ecx
mov dword [eax + 0x18], esi
mov dword [eax + 0x1c], ebp
mov dword [eax + 8], 0
sub eax, 0x30
sub edx, 4
cmp edi, eax
jne 0x468d20
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x2c]
test ebp, ebp
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0xa4]
cmove eax, edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x74]
add eax, edi
cmp eax, ecx
cmovbe ecx, eax
cmp ecx, edi
mov dword [esp + 0x7c], ecx
jbe 0x468da9
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x10]
movzx edx, byte [edx + edi]
cmp byte [ecx + eax], dl
jne 0x468da9
mov eax, dword [esp + 0x7c]
jmp 0x468da2
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
movzx edx, byte [edx + edi]
cmp byte [ecx + edi - 1], dl
jne 0x468da9
add edi, 1
cmp edi, eax
jb 0x468d90
mov eax, dword [esp + 0x10]
sub edi, eax
mov dword [esp + 0xa4], edi
sub edi, 1
cmp edi, 1
mov dword [esp + 0xa8], edi
jbe 0x46861b
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xcc], ebx
mov edi, dword [edi*4 + str._b_b_b_b_b_b_b_v_v_v_v_v]
add edx, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x7c], edi
mov edi, eax
mov eax, dword [esp + 0xc8]
lea eax, [ecx + eax + 0xde2c]
mov ecx, dword [esi + eax*4 + 0xc]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x4c]
shl eax, 4
and ecx, edx
mov edx, dword [esp + 0x40]
lea eax, [ecx + eax + 0x19300]
movzx eax, word [esi + eax*2 + 8]
shr ax, 4
movzx eax, ax
mov ecx, dword [esi + eax*4 + 0x30f34]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x1c], 0
movzx edi, byte [ecx + edi]
mov ecx, dword [esp + 0x5c]
movzx eax, byte [ecx + edx]
movzx ecx, byte [esp + 0x6c]
mov edx, eax
mov eax, dword [esp + 0x68]
and eax, dword [esp + 0x3c]
sar edx, cl
movzx ecx, byte [esp + 0x84]
shl eax, cl
mov ecx, dword [esp + 0x5c]
add eax, edx
lea eax, [eax + eax*2]
mov edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], 0x100
shl edx, 9
mov dword [esp + 0x40], edx
movzx ecx, byte [ecx + eax]
or ch, 1
mov ebx, dword [esp + 0x10]
add edi, edi
mov edx, ecx
shr edx, 8
mov eax, ebx
and eax, edi
add eax, ebx
mov ebx, dword [esp + 0x20]
add eax, edx
mov edx, dword [esp + 0x28]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x40]
movzx eax, word [eax + edx]
mov edx, ecx
add ecx, ecx
shl edx, 0x18
sar edx, 0x1f
and edx, 0x7ff
xor eax, edx
mov edx, dword [esp + 0x1c]
sar eax, 4
add edx, dword [ebx + eax*4]
mov eax, edi
xor eax, ecx
not eax
and dword [esp + 0x10], eax
cmp ecx, 0xffff
mov dword [esp + 0xbc], edx
mov dword [esp + 0x1c], edx
jbe 0x468e98
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0xcc]
mov edx, dword [eax*4 + 0x731280]
mov eax, dword [esp + 0x3c]
add eax, 1
and eax, dword [esp + 0x4c]
mov edi, eax
mov dword [esp + 0x10], eax
mov eax, edx
shl eax, 4
add eax, edi
lea edi, [esi + edx*2]
mov edx, dword [esp + 0xa8]
lea eax, [esi + eax*2]
mov dword [esp + 0x7c], eax
movzx eax, word [eax + 0x32608]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
mov eax, dword [esi + eax*4 + 0x30f34]
mov dword [esp + 0x1c], eax
movzx eax, word [edi + 0x32788]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
mov eax, dword [esi + eax*4 + 0x30f34]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x50]
add eax, 1
add edx, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
cmp edx, eax
jbe 0x468faa
lea eax, [eax + eax*2]
lea ecx, [edx + edx*2]
shl eax, 4
shl ecx, 4
lea eax, [esi + eax + 0x764]
lea ecx, [esi + ecx + 0x764]
mov dword [eax], 0x40000000
add eax, 0x30
cmp ecx, eax
jne 0x468f99
mov dword [esp + 0x48], edx
movzx eax, word [edi + 0x327a0]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
shr ax, 4
movzx eax, ax
add edi, dword [esi + eax*4 + 0x30f34]
mov eax, dword [esp + 0xac]
add eax, edi
add eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xa4]
add ecx, eax
mov eax, dword [esp + 0x7c]
movzx eax, word [eax + 0x327e8]
shr ax, 4
xor eax, 0x7f
movzx eax, ax
add ecx, dword [esi + eax*4 + 0x30f34]
imul eax, dword [esp + 0x10], 0x110
add ebx, ecx
lea eax, [edi + eax + 0xde29]
add ebx, dword [esi + eax*4 + 0xc]
lea eax, [edx + edx*2]
add ebx, dword [esp + 0xbc]
shl eax, 4
add eax, esi
cmp ebx, dword [eax + 0x734]
jae 0x46861b
mov edi, dword [esp + 0x40]
mov dword [eax + 0x734], ebx
mov dword [eax + 0x750], 0
mov dword [eax + 0x73c], 1
mov dword [eax + 0x740], 1
mov dword [eax + 0x748], ebp
mov dword [eax + 0x74c], edi
mov edi, dword [esp + 0x38]
mov dword [eax + 0x744], edi
jmp 0x46861b
lea edx, [eax + eax*2]
mov edi, dword [esp + 0x14]
shl edx, 4
cmp eax, ebx
mov edx, dword [edi + edx + 0x738]
je 0x4681d9
mov edi, dword [esp + 0x8c]
mov ebx, dword [edi - 0x14]
cmp ebx, 3
ja 0x4692f0
mov edi, dword [edx*4 + str._b_b_b_b_b_b_b_v_v_v_v_v]
mov dword [esp + 0x80], edi
lea edx, [eax + eax*2]
mov edi, dword [esp + 0x14]
lea eax, [ebx + edx*4 + 0x1d4]
mov esi, dword [edi + eax*4 + 4]
mov eax, edx
shl eax, 4
test ebx, ebx
mov dword [esp + 0xe0], esi
je 0x469174
add eax, edi
cmp ebx, 1
mov ecx, dword [eax + 0x754]
mov dword [esp + 0xe4], ecx
je 0x469321
mov edx, dword [eax + 0x758]
cmp ebx, 3
mov dword [esp + 0xe8], edx
jne 0x46930f
mov eax, dword [eax + 0x75c]
mov dword [esp + 0xec], eax
jmp 0x468215
movzx eax, byte [esp + 0x2c]
mov ebp, 0x100
xor ebx, ebx
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x18]
or ah, 1
mov ecx, eax
shl dword [esp + 0x10], 1
mov edx, ecx
mov eax, dword [esp + 0x10]
shr edx, 8
and eax, ebp
add eax, ebp
add eax, edx
mov edx, ecx
add ecx, ecx
movzx eax, word [edi + eax*2]
shl edx, 0x18
sar edx, 0x1f
and edx, 0x7ff
xor eax, edx
mov edx, dword [esp + 0x20]
sar eax, 4
add ebx, dword [edx + eax*4]
mov eax, dword [esp + 0x10]
xor eax, ecx
not eax
and ebp, eax
cmp ecx, 0xffff
jbe 0x46912a
jmp 0x468344
add eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x758]
mov edx, dword [eax + 0x75c]
mov eax, dword [eax + 0x760]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], eax
jmp 0x468215
mov edi, dword [esp + 0x8c]
mov eax, ecx
mov ebx, dword [edi - 0x1c]
mov edi, dword [esi*4 + str._b_b_b_b_b_b_b_v_v_v_v_v]
cmp ebx, 3
mov dword [esp + 0x80], edi
jbe 0x4690aa
lea eax, [eax + eax*2]
lea esi, [ebx - 4]
shl eax, 4
add eax, dword [esp + 0x14]
mov dword [esp + 0xe0], esi
mov ecx, dword [eax + 0x754]
mov edx, dword [eax + 0x758]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], edx
jmp 0x4690fe
mov edx, dword [edx*4 + str._a_a_a_a_a_a_a_n_n_n_n_n]
jmp 0x4681c8
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x38]
cmp dword [eax + 0x18], edi
jae 0x46921d
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x469280
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
movzx eax, word [eax + 0x327a0]
mov edx, eax
mov eax, dword [esp + 0x78]
shr dx, 4
movzx edx, dx
movzx eax, word [eax + 0x327e8]
mov word [esp + 0x10], ax
shr ax, 4
movzx eax, ax
mov eax, dword [edi + eax*4 + 0x30f34]
add eax, dword [edi + edx*4 + 0x30f34]
mov edi, dword [esp + 0x8c]
add eax, dword [esp + 0x70]
cmp eax, dword [edi]
ja 0x469280
mov dword [edi], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x1c], 0
mov dword [edi + 8], 0
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x28]
mov eax, 0xfff
sub eax, dword [esp + 0x38]
cmp eax, edx
cmovbe edx, eax
cmp edx, 1
mov dword [esp + 0x60], edx
jbe 0x468b89
mov eax, dword [esp + 0x14]
mov edi, edx
mov eax, dword [eax + 0x2c]
cmp eax, edx
mov dword [esp + 0x74], eax
cmovbe edi, eax
mov dword [esp + 0x18], edi
jmp 0x4685cc
lea edx, [eax + eax*2]
mov edi, dword [esp + 0x14]
shl edx, 4
cmp eax, ebx
mov edx, dword [edi + edx + 0x738]
mov edx, dword [edx*4 + 0x731280]
je 0x4681d9
mov edi, dword [esp + 0x8c]
mov ebx, dword [edi - 0x14]
cmp ebx, 3
jbe 0x46909c
mov edi, dword [edx*4 + str._a_a_a_a_a_a_a_n_n_n_n_n]
mov dword [esp + 0x80], edi
jmp 0x4691c7
mov eax, dword [edx*4 + 0x731280]
jmp 0x4681f2
mov eax, dword [eax + 0x760]
mov dword [esp + 0xec], eax
jmp 0x468215
mov edx, dword [eax + 0x75c]
mov eax, dword [eax + 0x760]
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], eax
jmp 0x468215
lea eax, [esp + 0xdc]
mov edx, eax
mov eax, edi
call fcn.004654a0
mov dword [esp + 0x14], eax
jmp 0x4677bd
mov eax, dword [esp + 0x10]
add eax, 1
cmp edx, eax
je 0x469475
ja 0x4672a2
mov eax, dword [esp + 0x10]
add edx, 1
cmp eax, edx
ja 0x46938b
cmp eax, 2
je 0x46938b
mov eax, ebx
shr eax, 7
cmp ecx, eax
jb 0x4672a2
mov eax, dword [edi]
xor esi, esi
mov dword [esp], eax
call dword [edi + 0xc]
mov ecx, eax
movzx eax, byte [eax - 1]
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x10]
lea ebp, [eax - 1]
mov eax, ecx
sub eax, dword [edi + esi*4 + 0x34]
lea edx, [eax - 2]
movzx eax, byte [esp + 0x14]
cmp byte [edx], al
je 0x4693fe
add esi, 1
cmp esi, 4
jne 0x4693a6
mov eax, dword [esp + 0x10]
lea ebp, [ebx + 4]
sub eax, 2
jne 0x467a35
mov eax, dword [esp + 0x58]
and eax, dword [edi + 0x58]
mov ebx, dword [edi + 0x44]
mov dword [esp + 0x14], 2
mov esi, eax
mov dword [esp + 0x10], eax
mov eax, ebx
shl eax, 4
lea eax, [esi + eax + 0x19300]
movzx ecx, word [edi + eax*2 + 8]
jmp 0x4669a0
movzx eax, byte [edx + 1]
cmp byte [ecx], al
jne 0x4693b8
cmp ebp, 2
jbe 0x469460
movzx eax, byte [ecx + 1]
cmp byte [edx + 2], al
jne 0x4693b8
mov eax, 2
mov dword [esp + 0x18], ebx
jmp 0x46942a
movzx ebx, byte [edx + eax]
cmp byte [ecx + eax - 1], bl
jne 0x469457
add eax, 1
cmp ebp, eax
jne 0x469420
mov ebp, 0xffffffff
mov dword [esp + 0x14], 1
jmp 0x466c5c
mov eax, esi
xor edx, edx
call fcn.00465870
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x18]
jmp 0x4693b8
mov eax, dword [esp + 0x58]
and eax, dword [edi + 0x58]
mov ebp, 0xffffffff
mov dword [esp + 0x10], eax
jmp 0x466c72
mov eax, ecx
shr eax, 7
cmp eax, ebx
ja 0x46936e
jmp 0x4672a2
mov eax, dword [esp + 0x30]
movzx eax, word [eax + 0x327b8]
mov word [esp + 0x7c], ax
shr ax, 4
movzx eax, ax
add ebx, dword [esi + eax*4 + 0x30f34]
jmp 0x468ce7
shr ax, 4
movzx edx, ax
mov eax, dword [esp + 0x78]
movzx eax, word [eax + 0x327e8]
mov word [esp + 0x7c], ax
shr ax, 4
xor eax, 0x7f
movzx eax, ax
mov ebx, dword [esi + eax*4 + 0x30f34]
add ebx, dword [esi + edx*4 + 0x30f34]
jmp 0x468ce7
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], 0
mov edi, 3
mov dword [esp + 0x10], 2
jmp 0x468c30
mov edx, eax
mov edi, dword [esp + 0x14]
lea eax, [eax + eax*2]
mov ebp, edx
shl eax, 4
add eax, edi
mov esi, dword [eax + 0x750]
mov ebx, dword [eax + 0x74c]
mov dword [edi + 0x18], edx
mov dword [esp + 0x10], esi
jmp 0x4695b3
lea ecx, [ebx - 1]
add eax, edi
mov dword [eax + 0x750], 0xffffffff
mov dword [eax + 0x73c], 0
mov dword [eax + 0x74c], ecx
mov esi, dword [edx + 0x740]
test esi, esi
je 0x469589
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, edi
mov dword [ecx + 0x73c], 0
mov esi, dword [edx + 0x744]
mov dword [ecx + 0x74c], esi
mov edx, dword [edx + 0x748]
mov dword [ecx + 0x750], edx
mov ecx, dword [eax + 0x74c]
lea eax, [ebx + ebx*2]
mov esi, dword [esp + 0x10]
shl eax, 4
add eax, edi
test ebx, ebx
mov edx, dword [eax + 0x750]
mov dword [eax + 0x74c], ebp
mov ebp, ebx
mov dword [eax + 0x750], esi
je 0x4695ef
mov dword [esp + 0x10], edx
mov ebx, ecx
lea edx, [ebp + ebp*2]
lea eax, [ebx + ebx*2]
shl edx, 4
shl eax, 4
add edx, edi
mov ecx, dword [edx + 0x73c]
test ecx, ecx
jne 0x469530
mov ecx, dword [edi + eax + 0x74c]
jmp 0x469589
mov eax, 4
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x24]
jmp 0x468712
mov eax, dword [edi + 0x74c]
mov ebp, dword [edi + 0x750]
mov dword [esp + 0x14], eax
mov dword [edi + 0x1c], eax
jmp 0x466c5c
mov ebx, eax
mov eax, esi
jmp 0x4686e1
mov edx, dword [esp + 0x24]
mov eax, 2
mov edi, dword [esp + 0x18]
jmp 0x468663
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0x38]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x34]
mov ebp, edx
mov dword [edi + 0x20], eax
lea eax, [edx + edx*2]
shl eax, 4
add eax, edi
mov esi, dword [eax + 0x750]
mov ebx, dword [eax + 0x74c]
mov dword [edi + 0x18], edx
mov dword [esp + 0x10], esi
jmp 0x4696e7
lea ecx, [ebx - 1]
add eax, edi
mov dword [eax + 0x750], 0xffffffff
mov dword [eax + 0x73c], 0
mov dword [eax + 0x74c], ecx
mov esi, dword [edx + 0x740]
test esi, esi
je 0x4696b9
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, edi
mov dword [ecx + 0x73c], 0
mov esi, dword [edx + 0x744]
mov dword [ecx + 0x74c], esi
mov edx, dword [edx + 0x748]
mov dword [ecx + 0x750], edx
mov ecx, dword [eax + 0x74c]
lea eax, [ebx + ebx*2]
mov esi, dword [esp + 0x10]
shl eax, 4
add eax, edi
test ebx, ebx
mov edx, dword [eax + 0x750]
mov dword [eax + 0x74c], ebp
mov ebp, ebx
mov dword [eax + 0x750], esi
je 0x4695ef
mov dword [esp + 0x10], edx
mov ebx, ecx
lea edx, [ebp + ebp*2]
lea eax, [ebx + ebx*2]
shl edx, 4
shl eax, 4
add edx, edi
mov ecx, dword [edx + 0x73c]
test ecx, ecx
jne 0x469660
mov ecx, dword [edi + eax + 0x74c]
jmp 0x4696b9
add dword [esp + 0x30], 2
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x3c]
je 0x46811c
add eax, 1
mov dword [esp + 0x18], eax
jmp 0x467ffe
mov dword [esp + 0x30], 0
jmp 0x467f70
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 0x327a0]
shr ax, 4
movzx edx, ax
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x327e8]
mov word [esp + 0x1c], ax
shr ax, 4
movzx eax, ax
mov eax, dword [edi + eax*4 + 0x30f34]
add eax, dword [edi + edx*4 + 0x30f34]
add eax, dword [esp + 0x2c]
cmp esi, eax
jbe 0x467dd4
mov dword [edi + 0x764], eax
mov dword [edi + 0x780], 0
xor ebp, ebp
jmp 0x467dd4
movzx eax, byte [esp + 0x38]
mov dword [esp + 0x2c], 0x100
xor esi, esi
mov dword [esp + 0x18], eax
movzx eax, byte [esp + 0x1c]
or ah, 1
mov ebp, eax
shl dword [esp + 0x18], 1
mov edx, ebp
mov eax, dword [esp + 0x18]
and eax, dword [esp + 0x2c]
shr edx, 8
add eax, dword [esp + 0x2c]
add eax, edx
mov edx, dword [esp + 0x3c]
movzx eax, word [edx + eax*2]
mov edx, ebp
add ebp, ebp
shl edx, 0x18
sar edx, 0x1f
and edx, 0x7ff
xor eax, edx
mov edx, dword [esp + 0x20]
sar eax, 4
add esi, dword [edx + eax*4]
mov eax, dword [esp + 0x18]
xor eax, ebp
not eax
and dword [esp + 0x2c], eax
cmp ebp, 0xffff
jbe 0x4697b0
jmp 0x467d62
mov edx, dword [esp + 0x18]
movzx edx, word [edx + 0x327b8]
mov word [esp + 0x1c], dx
shr dx, 4
movzx edx, dx
add ebx, dword [edi + edx*4 + 0x30f34]
jmp 0x467ee3
mov eax, dword [esi + 0x2ac]
test eax, eax
jne 0x4674bc
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ebx
sub eax, 1
jne 0x469877
mov eax, dword [esp + 0x58]
and eax, dword [edi + 0x58]
mov ebx, dword [edi + 0x44]
mov edx, eax
mov dword [esp + 0x10], eax
mov eax, ebx
shl eax, 4
lea eax, [edx + eax + 0x19300]
movzx ecx, word [edi + eax*2 + 8]
jmp 0x467876
mov ebx, 2
jmp 0x467227
add dword [edi + 0x30], eax
mov dword [esp + 4], eax
mov ebp, esi
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 0x14]
mov dword [esp + 0x14], ebx
jmp 0x466c5c
mov edi, dword [esp + 0x58]
sub edi, dword [esp + 0x90]
jmp 0x466c13
shl eax, 8
mov dword [esi + 0x98], eax
lea eax, [esi + 0x98]
call fcn.00465790
mov edi, dword [esi + 0x44]
jmp 0x4667e6
sub dword [esi + 0x30], 1
mov dword [esp + 0x58], 1
jmp 0x46689d