Function at 0x4661d0
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 0x466312
mov eax, dword [esi]
mov dword [esp], eax
call dword [esi + 8]
test eax, eax
je 0x468ec3
lea edx, [esp + 0xf0]
mov eax, esi
call fcn.00464f20
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 0x469321
mov eax, dword [edi*4 + 0x732320]
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 0x4662cc
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 0x4662be
shl eax, 8
mov dword [esi + 0x98], eax
mov eax, dword [esp + 0x10]
call fcn.00465210
add ebp, ebp
cmp ebp, 0xffff
ja 0x46933d
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 0x466290
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 0x46629c
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 0x469311
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 0x4666b1
mov esi, dword [edi + 0x30]
test esi, esi
je 0x4671df
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 0x466d22
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 0x466c64
add esi, 1
cmp esi, 4
jne 0x4663a8
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
cmp esi, ebx
jb 0x4670d6
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 0x4674b5
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 0x466d43
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 0x46648f
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465210
mov ebx, dword [edi + 0x44]
mov esi, dword [edi + 0x98]
cmp ebp, 3
lea eax, [edi + ebx*2]
ja 0x46670f
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 0x466501
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465210
mov ebx, dword [edi + 0x44]
mov esi, dword [edi + 0x98]
test ebp, ebp
jne 0x466f93
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 0x466555
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465210
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 0x466e6e
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 0x4665c2
mov eax, dword [esp + 0x64]
shl ecx, 8
mov dword [edi + 0x98], ecx
call fcn.00465210
cmp dword [esp + 0x14], 1
jne 0x466ea4
mov ebx, dword [edi + 0x44]
mov eax, dword [ebx*4 + 0x732260]
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 0x466343
mov esi, dword [edi + 0x64]
test esi, esi
jne 0x46660d
cmp dword [edi + 0x80], 0x7f
ja 0x4675c0
cmp dword [edi + 0x84], 0xf
ja 0x4674d1
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 8]
test eax, eax
je 0x4675a9
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0x58]
sub esi, dword [esp + 0x90]
test ebx, ebx
je 0x466eed
lea eax, [esi + 0x112c]
cmp eax, dword [esp + 0x120]
jae 0x46668d
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 0x46668d
cmp eax, dword [esp + 0xb8]
jb 0x466343
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.004652f0
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [edi + 0x1c]
cmp dword [edi + 0x18], edx
je 0x467213
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 0x4671f8
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 0x46640f
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 0x46675c
mov eax, dword [esp + 0x64]
shl edx, 8
mov dword [edi + 0x98], edx
call fcn.00465210
mov ebx, dword [edi + 0x44]
mov eax, dword [ebx*4 + 0x7322e0]
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.00465b90
lea eax, [ebp - 4]
cmp eax, 0x7f
mov dword [esp + 0x2c], eax
ja 0x466f60
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 0x466815
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 0x466878
mov eax, dword [esp + 0x10]
add eax, eax
or eax, dword [esp + 0x18]
test ebp, ebp
mov dword [esp + 0x10], eax
je 0x466985
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 0x4667e3
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 0x4667ff
mov ecx, dword [edi + 0xa0]
shl eax, 8
mov edx, dword [edi + 0xa4]
mov dword [edi + 0x98], eax
cmp ecx, 0xfeffffff
jbe 0x46689d
test edx, edx
je 0x466e5d
movzx eax, byte [edi + 0x9c]
mov ebx, dword [edi + 0xb0]
jmp 0x4668e1
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 0x46694a
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 0x4668b0
mov eax, dword [edi + 0xc8]
test eax, eax
jne 0x4668b0
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 0x46692b
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 0x4668b0
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 0x4667ff
mov esi, dword [esp + 0x20]
cmp esi, 3
mov eax, esi
jbe 0x466c3f
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 0x467362
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 0x466a20
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 0x466a09
shl eax, 8
mov dword [ebp + 0x98], eax
mov eax, dword [esp + 0x64]
call fcn.00465210
add ebx, ebx
shr dword [esp + 0x10], 1
or ebx, dword [esp + 0x18]
add esi, 1
cmp dword [esp + 0x1c], esi
jle 0x46735b
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 0x4669db
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 0x4669e7
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 0x467607
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 0x466ae3
mov eax, dword [esp + 0x64]
shl ecx, 8
mov dword [edi + 0x98], ecx
call fcn.00465210
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 0x4675f6
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 0x466b55
mov eax, dword [esp + 0x64]
shl ebx, 8
mov dword [edi + 0x98], ebx
call fcn.00465210
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 0x467618
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 0x466bd1
mov eax, dword [esp + 0x64]
shl ecx, 8
mov dword [edi + 0x98], ecx
call fcn.00465210
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 0x467450
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 0x466c38
mov eax, dword [esp + 0x64]
shl ebx, 8
mov dword [edi + 0x98], ebx
call fcn.00465210
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 0x4665d4
movzx ebx, byte [eax + 1]
cmp byte [edx], bl
jne 0x4663b9
cmp dword [esp + 0x18], 2
je 0x4692ed
movzx ebx, byte [edx + 1]
cmp byte [eax + 2], bl
mov ebx, 2
jne 0x466ca7
mov byte [esp + 0x20], cl
jmp 0x466c99
movzx ecx, byte [eax + ebx]
cmp byte [edx + ebx - 1], cl
jne 0x466ca2
add ebx, 1
cmp ebx, dword [esp + 0x18]
jne 0x466c8f
movzx ecx, byte [esp + 0x20]
cmp ebx, dword [esp + 0x1c]
jae 0x4692c0
cmp ebx, dword [esp + 0x14]
jbe 0x4663b9
mov dword [esp + 0x14], ebx
mov ebp, esi
jmp 0x4663b9
mov eax, dword [esp + 0x14]
add eax, 3
cmp eax, dword [esp + 0x10]
jb 0x466cdf
cmp ebx, 0x7fff
ja 0x4671c4
cmp dword [esp + 0x10], 1
jbe 0x466d22
cmp dword [esp + 0x18], 2
jbe 0x466d22
lea edx, [edi + 0x24]
mov eax, edi
call fcn.00464f20
cmp eax, 1
mov edx, eax
mov dword [edi + 0x20], eax
jbe 0x468e0b
cmp dword [esp + 0x10], edx
mov eax, dword [edi + 0x24]
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + eax*4 - 4]
ja 0x468dd9
cmp ecx, ebx
jae 0x468dd9
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 0x466d90
mov eax, dword [esp + 0x64]
shl edx, 8
mov dword [edi + 0x98], edx
call fcn.00465210
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 0x467629
or bh, 1
mov ebp, ebx
jmp 0x466e17
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 0x466e09
shl eax, 8
mov dword [edi + 0x98], eax
mov eax, dword [esp + 0x64]
call fcn.00465210
add ebp, ebp
cmp ebp, 0xffff
ja 0x4675cc
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 0x466ddb
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 0x466de7
mov eax, dword [edi + 0xa8]
mov edx, dword [edi + 0xac]
jmp 0x46695b
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 0x4665a2
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.00465b90
mov eax, dword [edi + 0x44]
mov eax, dword [eax*4 + 0x7322a0]
mov dword [edi + 0x44], eax
jmp 0x4665d4
cmp esi, 0x1ffff
jbe 0x466343
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 0x4666a6
mov ecx, dword [esi + 0xc8]
test ecx, ecx
je 0x4692a7
mov edx, dword [esi + 0x2ac]
mov dword [esi + 0x90], 9
mov eax, 9
test edx, edx
je 0x466f4b
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 0x4667b9
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 0x467004
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465210
mov ebx, dword [edi + 0x44]
mov esi, dword [edi + 0x98]
cmp ebp, 1
je 0x467468
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 0x467078
mov eax, dword [esp + 0x64]
shl esi, 8
mov dword [edi + 0x98], esi
call fcn.00465210
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 0x4673c8
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 0x467405
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 0x4665b4
cmp dword [esp + 0x10], 1
jbe 0x467461
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 0x467173
mov esi, dword [esi + ecx - 0xc]
lea eax, [esi + 1]
cmp dword [esp + 0x10], eax
jne 0x467173
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + ecx - 8]
mov eax, ebx
shr eax, 7
cmp eax, ecx
jbe 0x467173
mov dword [esp + 0x20], edi
lea eax, [edx - 2]
mov dword [esp + 0x1c], ebp
mov edi, dword [esp + 0x24]
jmp 0x467159
mov edx, dword [edi + eax*4 - 0x10]
lea ebx, [edx + 1]
cmp ebx, esi
mov dword [esp + 0x10], ebx
jne 0x46715e
lea esi, [eax - 2]
mov ebp, ecx
shr ebp, 7
mov ebx, dword [edi + esi*4 - 4]
cmp ebp, ebx
jbe 0x467b4c
mov eax, esi
mov ecx, ebx
mov esi, edx
cmp eax, 2
ja 0x467130
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 0x4675e6
cmp ebx, 0x7f
jbe 0x4675e6
mov dword [esp + 0x10], 1
cmp dword [esp + 0x14], 1
jbe 0x466d22
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, esi
add eax, 1
cmp eax, ecx
jae 0x4671c4
mov eax, esi
add eax, 2
cmp eax, ecx
jb 0x466cc6
cmp ebx, 0x1ff
jbe 0x466cc6
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 0x4666dc
lea eax, [esp + 0xf0]
mov edx, eax
mov eax, edi
call fcn.00464f20
mov dword [esp + 0x10], eax
jmp 0x46636a
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 0x466420
mov ebx, dword [edi + 0x30]
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
test ebx, ebx
je 0x468dc0
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 0x466d22
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 0x467305
mov eax, dword [esp + 0x30]
mov dword [eax + edx*4], 0
add edx, 1
cmp edx, 4
jne 0x467283
mov eax, dword [esp + ebp*4 + 0xf0]
mov ebx, eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x2c]
cmp ebx, eax
jb 0x467422
mov eax, ebx
sub eax, 1
jne 0x467b30
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 0x466420
movzx ecx, byte [eax + 1]
cmp byte [esi], cl
jne 0x46729d
cmp dword [esp + 0x10], 2
mov ecx, 2
je 0x467345
movzx ebx, byte [eax + 2]
cmp byte [esi + 1], bl
jne 0x467345
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
jmp 0x467336
movzx edx, byte [eax + ecx]
cmp byte [esi + ecx - 1], dl
jne 0x46733d
add ecx, 1
cmp ebx, ecx
jne 0x46732c
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 0x4672a8
mov edi, ebp
jmp 0x466c3f
mov esi, ebx
lea ecx, [edx - 5]
mov ebx, dword [edi + 0x98]
shr esi, 4
jmp 0x46737a
test ecx, ecx
je 0x466a77
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 0x467372
mov eax, dword [esp + 0x64]
shl ebx, 8
mov dword [edi + 0x98], ebx
mov dword [esp + 0x18], ecx
call fcn.00465210
mov ebx, dword [edi + 0x98]
mov ecx, dword [esp + 0x18]
jmp 0x467372
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 0x467405
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x40], eax
jmp 0x4670be
mov eax, dword [esp + 0x64]
shl ecx, 8
mov dword [edi + 0x98], ecx
call fcn.00465210
cmp ebp, 3
jne 0x4670be
jmp 0x4673fa
mov ebx, dword [esp + 0x14]
cmp eax, ebx
ja 0x4676eb
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 0x4663ee
jmp 0x4671cb
mov eax, 0x800
sub eax, esi
shr eax, 5
add esi, eax
jmp 0x466c14
xor ebx, ebx
jmp 0x46718f
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 0x4670c4
shl eax, 8
mov dword [edi + 0x98], eax
mov eax, dword [esp + 0x64]
call fcn.00465210
jmp 0x4670c4
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 0x4666dc
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 0x4674f2
mov edi, eax
mov dword [eax + 0x84], 0
mov eax, dword [edi]
mov dword [esp], eax
call dword [edi + 8]
test eax, eax
jne 0x46661d
mov esi, edi
mov edi, dword [esp + 0x58]
sub edi, dword [esp + 0x90]
jmp 0x466693
mov eax, edi
call fcn.00464fd0
jmp 0x466600
mov eax, dword [edi + 0x44]
mov dword [esp + 0x14], 1
mov eax, dword [eax*4 + 0x732320]
mov dword [edi + 0x44], eax
jmp 0x4665d4
cmp dword [esp + 0x14], 1
ja 0x46719a
jmp 0x466cdf
mov eax, 0x800
sub eax, esi
shr eax, 5
add esi, eax
jmp 0x466b2b
mov eax, 0x800
sub eax, esi
shr eax, 5
add esi, eax
jmp 0x466ab6
mov eax, 0x800
sub eax, esi
shr eax, 5
add esi, eax
jmp 0x466ba7
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 0x46768c
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 0x467674
shl eax, 8
mov dword [edi + 0x98], eax
mov eax, dword [esp + 0x64]
call fcn.00465210
mov eax, dword [esp + 0x10]
add ebp, ebp
xor eax, ebp
not eax
and esi, eax
cmp ebp, 0xffff
ja 0x4675cc
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 0x467642
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 0x46764e
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 0x466d22
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 0x469213
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 0x4677b1
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 0x4691b9
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 0x46640f
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 0x4678be
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 0x4679a5
mov ebx, dword [esp + 0x18]
test ebp, ebp
movzx ebx, word [ebx + 0x327a0]
je 0x467b62
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 0x469284
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 0x46799b
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 0x467980
add ebp, 1
cmp ebp, 4
jne 0x4678de
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 0x467ba0
cmp eax, dword [edi + 0x31134]
jbe 0x4691ac
mov ebx, dword [esp + 0x24]
xor eax, eax
add eax, 2
cmp ebp, dword [ebx + eax*4]
ja 0x4679e4
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 0x467a84
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 0x467a6c
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 0x46918d
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 0x467a40
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 0x467a52
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 0x4666dc
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0xf0], eax
jmp 0x467173
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 0x467963
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.00464f20
cmp eax, dword [edi + 0x2c]
mov dword [esp + 0x34], eax
jae 0x4690a2
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 0x468af0
mov edx, dword [edi - 0x24]
sub eax, 1
test edx, edx
je 0x468d3d
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 0x468c7a
mov edx, dword [edx*4 + 0x7322a0]
mov esi, dword [edx*4 + 0x732320]
cmp eax, ebx
mov edx, esi
jne 0x468c24
mov eax, dword [esp + 0x8c]
mov ebp, dword [eax - 0x14]
test ebp, ebp
jne 0x468d83
mov eax, dword [edx*4 + 0x732260]
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 0x468b90
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 0x467d9b
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 0x467dff
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 0x468c86
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 0x468609
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 0x46804c
mov eax, edi
add eax, 1
cmp ecx, eax
cmovbe eax, ecx
cmp eax, 1
mov ecx, eax
jbe 0x46804c
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x44]
sub eax, esi
movzx ebx, byte [edi]
cmp byte [eax], bl
jne 0x46804c
mov eax, dword [esp + 0x3c]
mov ebx, 1
mov esi, ecx
add eax, edi
jmp 0x467eec
mov edi, dword [esp + 0x44]
movzx ecx, byte [edx + eax - 1]
cmp byte [edi + edx - 1], cl
jne 0x467ef3
mov ebx, edx
lea edx, [ebx + 1]
cmp edx, esi
jne 0x467edb
cmp ebx, 1
je 0x46804c
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x14]
mov ecx, dword [eax*4 + 0x732320]
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 0x467fb9
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 0x467fa0
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 0x46804c
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 0x468644
add ebp, 1
cmp ebp, 4
jne 0x468076
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x34], eax
jbe 0x4680f0
mov edi, dword [esp + 0x14]
mov dword [esp + 0xdc], 0
cmp dword [edi + 0x31134], eax
jae 0x469090
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 0x4680d7
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 0x468609
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 0x469087
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 0x468150
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
cmp edi, dword [eax + 0x31134]
jbe 0x469059
xor eax, eax
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
jmp 0x46817f
mov eax, edx
lea edx, [eax + 2]
cmp dword [edi + edx*4], esi
jb 0x46817d
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 0x46826b
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 0x468249
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 0x4682c0
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 0x468211
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 0x468229
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 0x468602
mov esi, dword [esp + 0x44]
movzx eax, byte [esi + edi - 1]
cmp byte [ecx + edi], al
mov eax, edi
jne 0x468315
mov dword [esp + 0x40], edx
jmp 0x46830a
movzx edx, byte [ecx + eax]
cmp byte [esi + eax - 1], dl
jne 0x468311
add eax, 1
cmp eax, ebx
jb 0x468300
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 0x4685a3
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x88]
mov dword [esp + 0x74], edi
mov eax, dword [eax*4 + 0x7322e0]
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 0x4683e0
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 + 0x732320]
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 0x4684e9
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 0x4684d4
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 0x4685a3
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 0x468609
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 0x468261
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 0x468261
mov eax, edi
jmp 0x468315
mov eax, dword [esp + 0x94]
add dword [esp + 0x8c], 0x30
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x38], eax
je 0x468f80
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0xc0]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x88], eax
jmp 0x467bd4
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 1]
cmp byte [edi], al
jne 0x46809b
cmp dword [esp + 0x18], 2
jbe 0x468f5e
mov eax, edi
mov edi, dword [esp + 0x1c]
movzx eax, byte [eax + 1]
cmp byte [edi + 2], al
jne 0x468f5e
mov eax, 2
jmp 0x468695
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
movzx ebx, byte [ebx + eax + 1]
cmp byte [edi + edx - 1], bl
jne 0x46869e
mov eax, edx
lea edx, [eax + 1]
cmp edx, dword [esp + 0x18]
jne 0x468680
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 0x4686f5
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 0x4686e0
mov eax, dword [esp + 0x50]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
test ebp, ebp
movzx eax, word [eax + 0x327a0]
je 0x468f2a
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 0x468f07
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 0x4687b7
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 0x4687a0
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 0x468829
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 0x468829
mov eax, dword [esp + 0x7c]
jmp 0x468822
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
movzx edx, byte [edx + edi]
cmp byte [ecx + edi - 1], dl
jne 0x468829
add edi, 1
cmp edi, eax
jb 0x468810
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 0x46809b
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 + 0x7322a0]
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 0x468918
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0xcc]
mov edx, dword [eax*4 + 0x732320]
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 0x468a2a
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 0x468a19
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 0x46809b
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 0x46809b
lea edx, [eax + eax*2]
mov edi, dword [esp + 0x14]
shl edx, 4
cmp eax, ebx
mov edx, dword [edi + edx + 0x738]
je 0x467c59
mov edi, dword [esp + 0x8c]
mov ebx, dword [edi - 0x14]
cmp ebx, 3
ja 0x468d70
mov edi, dword [edx*4 + 0x7322a0]
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 0x468bf4
add eax, edi
cmp ebx, 1
mov ecx, dword [eax + 0x754]
mov dword [esp + 0xe4], ecx
je 0x468da1
mov edx, dword [eax + 0x758]
cmp ebx, 3
mov dword [esp + 0xe8], edx
jne 0x468d8f
mov eax, dword [eax + 0x75c]
mov dword [esp + 0xec], eax
jmp 0x467c95
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 0x468baa
jmp 0x467dc4
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 0x467c95
mov edi, dword [esp + 0x8c]
mov eax, ecx
mov ebx, dword [edi - 0x1c]
mov edi, dword [esi*4 + 0x7322a0]
cmp ebx, 3
mov dword [esp + 0x80], edi
jbe 0x468b2a
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 0x468b7e
mov edx, dword [edx*4 + 0x7322e0]
jmp 0x467c48
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x38]
cmp dword [eax + 0x18], edi
jae 0x468c9d
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x468d00
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 0x468d00
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 0x468609
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 0x46804c
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 + 0x732320]
je 0x467c59
mov edi, dword [esp + 0x8c]
mov ebx, dword [edi - 0x14]
cmp ebx, 3
jbe 0x468b1c
mov edi, dword [edx*4 + 0x7322e0]
mov dword [esp + 0x80], edi
jmp 0x468c47
mov eax, dword [edx*4 + 0x732320]
jmp 0x467c72
mov eax, dword [eax + 0x760]
mov dword [esp + 0xec], eax
jmp 0x467c95
mov edx, dword [eax + 0x75c]
mov eax, dword [eax + 0x760]
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], eax
jmp 0x467c95
lea eax, [esp + 0xdc]
mov edx, eax
mov eax, edi
call fcn.00464f20
mov dword [esp + 0x14], eax
jmp 0x46723d
mov eax, dword [esp + 0x10]
add eax, 1
cmp edx, eax
je 0x468ef5
ja 0x466d22
mov eax, dword [esp + 0x10]
add edx, 1
cmp eax, edx
ja 0x468e0b
cmp eax, 2
je 0x468e0b
mov eax, ebx
shr eax, 7
cmp ecx, eax
jb 0x466d22
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 0x468e7e
add esi, 1
cmp esi, 4
jne 0x468e26
mov eax, dword [esp + 0x10]
lea ebp, [ebx + 4]
sub eax, 2
jne 0x4674b5
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 0x466420
movzx eax, byte [edx + 1]
cmp byte [ecx], al
jne 0x468e38
cmp ebp, 2
jbe 0x468ee0
movzx eax, byte [ecx + 1]
cmp byte [edx + 2], al
jne 0x468e38
mov eax, 2
mov dword [esp + 0x18], ebx
jmp 0x468eaa
movzx ebx, byte [edx + eax]
cmp byte [ecx + eax - 1], bl
jne 0x468ed7
add eax, 1
cmp ebp, eax
jne 0x468ea0
mov ebp, 0xffffffff
mov dword [esp + 0x14], 1
jmp 0x4666dc
mov eax, esi
xor edx, edx
call fcn.004652f0
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x18]
jmp 0x468e38
mov eax, dword [esp + 0x58]
and eax, dword [edi + 0x58]
mov ebp, 0xffffffff
mov dword [esp + 0x10], eax
jmp 0x4666f2
mov eax, ecx
shr eax, 7
cmp eax, ebx
ja 0x468dee
jmp 0x466d22
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 0x468767
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 0x468767
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], 0
mov edi, 3
mov dword [esp + 0x10], 2
jmp 0x4686b0
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 0x469033
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 0x469009
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 0x46906f
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 0x468fb0
mov ecx, dword [edi + eax + 0x74c]
jmp 0x469009
mov eax, 4
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x24]
jmp 0x468192
mov eax, dword [edi + 0x74c]
mov ebp, dword [edi + 0x750]
mov dword [esp + 0x14], eax
mov dword [edi + 0x1c], eax
jmp 0x4666dc
mov ebx, eax
mov eax, esi
jmp 0x468161
mov edx, dword [esp + 0x24]
mov eax, 2
mov edi, dword [esp + 0x18]
jmp 0x4680e3
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 0x469167
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 0x469139
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 0x46906f
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 0x4690e0
mov ecx, dword [edi + eax + 0x74c]
jmp 0x469139
add dword [esp + 0x30], 2
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x3c]
je 0x467b9c
add eax, 1
mov dword [esp + 0x18], eax
jmp 0x467a7e
mov dword [esp + 0x30], 0
jmp 0x4679f0
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 0x467854
mov dword [edi + 0x764], eax
mov dword [edi + 0x780], 0
xor ebp, ebp
jmp 0x467854
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 0x469230
jmp 0x4677e2
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 0x467963
mov eax, dword [esi + 0x2ac]
test eax, eax
jne 0x466f3c
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ebx
sub eax, 1
jne 0x4692f7
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 0x4672f6
mov ebx, 2
jmp 0x466ca7
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 0x4666dc
mov edi, dword [esp + 0x58]
sub edi, dword [esp + 0x90]
jmp 0x466693
shl eax, 8
mov dword [esi + 0x98], eax
lea eax, [esi + 0x98]
call fcn.00465210
mov edi, dword [esi + 0x44]
jmp 0x466266
sub dword [esi + 0x30], 1
mov dword [esp + 0x58], 1
jmp 0x46631d