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

Disassembly:
sub esp, 0x154
mov eax, dword [0x101fd700]
xor eax, esp
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x160]
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 0x24], ecx
push esi
mov esi, dword [esp + 0x15c]
mov dword [esp + 8], esi
test edx, edx
jne 0x1016493f
lea eax, [esp + 0x174]
cmp dword [esp + 0x174], edx
jne 0x10164920
push 1
push edx
push edx
push edx
push edx
push edx
push eax
call fcn.10164890
add esp, 0x1c
pop esi
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.10176fcb
add esp, 0x154
ret
sub eax, esi
cdq
xor eax, edx
sub eax, edx
neg eax
pop esi
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.10176fcb
add esp, 0x154
ret
push ebx
push ebp
mov ebp, dword [eax + 0x4c]
mov eax, dword [eax]
push edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x24], ebp
cmp eax, dword [edi + 4]
jae 0x101717b4
nop dword [eax + eax]
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x180]
cmp eax, dword [edi + 8]
jae 0x101717ad
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 2
jne 0x101649aa
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x74], esi
mov dword [esp + 0x34], ecx
mov dword [eax + 0x98], 0
mov ebx, eax
jmp 0x101649da
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649e0
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
jmp 0x101649e0
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
nop
mov cl, byte [edx]
movzx edx, cl
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], edx
cmp edx, 0xa1
ja case.0x10164a0c.98
movzx eax, byte [edx + 0x10171924]
jmp dword [eax*4 + 0x101717d8]
mov eax, dword [ebx + 0x28]
inc eax
mov dword [ebx + 0x28], eax
cmp eax, dword [ebx + 0x2c]
ja 0x1016e928
mov edx, dword [esp + 0x18]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x101c2588]
movzx eax, byte [edx + 1]
add edx, eax
add edx, ecx
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x10]
mov ebp, esi
mov edx, dword [esp + 0x18]
mov ebx, edx
mov dword [esp + 0x44], ebp
mov edi, dword [eax + 0xac]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
lea eax, [edx + 3]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164890
add esp, 0x1c
cmp eax, 1
je 0x10164af4
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x10164ac0
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, 0xfffffc20
add edx, ecx
mov ecx, eax
cmp dword [ebp + 0x7c], edx
mov ebp, dword [esp + 0x44]
jae 0x10164ac0
mov ecx, dword [esp + 0x18]
cmp byte [ecx], 0x77
je 0x10164ac8
cmp byte [edx], 0x77
mov ecx, eax
je 0x10164ac8
test eax, eax
jne case.default.0x10165181
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x10]
add edx, ecx
mov dword [esp + 0x18], edx
mov dword [eax + 0xac], edi
cmp byte [edx], 0x77
je 0x10164a55
jmp 0x10164b03
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x2c], eax
mov al, byte [edx]
cmp al, 0x82
je 0x10164b11
cmp al, 0x77
jne case.default.0x10166bdb
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov cl, byte [edx]
cmp cl, 0x77
je 0x10164b11
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov edi, dword [eax + 0x8c]
mov esi, dword [eax + 0x80]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], esi
cmp cl, 0x78
je 0x10164b50
cmp esi, ebp
jne 0x1016e0c8
mov ebp, dword [esp + 0x24]
add edx, 3
mov dword [esp + 0x18], edx
mov ebx, eax
jmp 0x101649e0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], 0
jmp 0x101656da
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], 0
jmp 0x101656fb
mov edx, dword [esp + 0x18]
movzx ebp, byte [edx + 1]
movzx eax, byte [edx + 2]
add edx, 3
shl ebp, 8
or ebp, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x50], ebp
cmp byte [edx], 0x76
jne 0x10164ca2
mov edi, dword [0x102036a4]
test edi, edi
je 0x10164c8f
mov dword [esp + 0x78], 2
movzx eax, byte [edx + 1]
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x74]
mov dword [esp + 0x84], ecx
mov eax, dword [eax + 0x78]
sub eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x8c], eax
mov eax, esi
sub eax, ecx
mov dword [esp + 0x90], eax
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0xa0], ecx
movzx ecx, byte [edx + 4]
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x1c]
cdq
sub eax, edx
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x10]
mov edx, 0xffffffff
sar eax, 1
mov dword [esp + 0x94], eax
mov eax, dword [ecx + 0x90]
and eax, 0xffff
cmove eax, edx
mov dword [esp + 0x98], eax
mov eax, dword [ecx + 0xa8]
mov dword [esp + 0x9c], eax
mov eax, dword [ecx + 0xb0]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x78]
push eax
call edi
add esp, 4
test eax, eax
jg case.default.0x10166bdb
js 0x101717bc
mov edx, dword [esp + 0x18]
movzx eax, byte [0x101c25fe]
add edx, eax
sub ebp, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x50], ebp
movzx edi, byte [edx]
xor ebx, ebx
mov dword [esp + 0x44], edi
lea eax, [edi - 0x8d]
cmp eax, 0x10
ja case.0x10164cc1.146
movzx eax, byte [eax + 0x101719e0]
jmp dword [eax*4 + 0x101719c8]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xa4]
test edx, edx
je case.0x10164cc1.145
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
cmp ecx, 0xffff
je 0x10164cfc
cmp ecx, dword [edx + 4]
jne case.0x10164cc1.145
mov eax, dword [esp + 0x44]
mov ebx, 1
movzx ebp, byte [eax + 0x101c2588]
jmp case.0x10164cc1.145
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa4], ebx
je case.0x10164cc1.145
movzx edi, byte [edx + 3]
movzx eax, byte [edx + 4]
movzx ecx, byte [edx + 1]
movzx edx, byte [edx + 2]
shl edi, 8
or edi, eax
shl ecx, 8
mov eax, dword [esp + 0x10]
or edx, ecx
imul edx, dword [eax + 0x24]
add edx, dword [eax + 0x30]
test edi, edi
je case.0x10164cc1.145
mov eax, dword [eax + 0xa4]
mov esi, edx
mov ebp, dword [eax + 4]
nop dword [eax]
movzx eax, byte [edx]
xor ebx, ebx
movzx ecx, byte [edx + 1]
dec edi
shl eax, 8
or ecx, eax
cmp ecx, ebp
sete bl
je 0x10164d85
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
add edx, esi
mov esi, edx
test edi, edi
jg 0x10164d60
mov esi, dword [esp + 0x14]
mov eax, ebx
mov ebp, dword [esp + 0x50]
jmp 0x10164e35
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, ecx
cmp ecx, dword [esp + 0x1c]
jge 0x10164dbe
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], ebx
jl 0x10164dbe
mov ebx, 1
mov eax, ebx
jmp 0x10164e35
xor ebx, ebx
mov eax, ebx
jmp 0x10164e35
movzx edi, byte [edx + 3]
movzx eax, byte [edx + 4]
movzx edx, byte [edx + 1]
mov ecx, dword [esp + 0x18]
shl edi, 8
or edi, eax
shl edx, 8
movzx eax, byte [ecx + 2]
or edx, eax
mov eax, dword [esp + 0x10]
imul edx, dword [eax + 0x24]
add edx, dword [eax + 0x30]
test edi, edi
je case.0x10164cc1.145
movzx ecx, byte [edx]
dec edi
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
add ecx, ecx
cmp ecx, dword [esp + 0x1c]
jge 0x10164e1e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x10164e1e
mov ebx, 1
jmp 0x10164e20
xor ebx, ebx
mov eax, ebx
test ebx, ebx
jne 0x10164ee6
mov ecx, dword [esp + 0x10]
add edx, dword [ecx + 0x24]
test edi, edi
jg 0x10164df5
test eax, eax
je case.0x10164cc1.145
mov eax, dword [esp + 0x44]
movzx ebp, byte [eax + 0x101c2588]
jmp case.0x10164cc1.145
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x98], 1
mov eax, dword [esp + 0x180]
inc eax
push eax
push 0
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edx
push esi
call fcn.10164890
add esp, 0x1c
cmp eax, 1
jne 0x10164ef3
mov eax, dword [esp + 0x10]
mov ebx, 1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0x8c]
cmp eax, ecx
cmovg ecx, eax
cmp byte [edx], 0x92
mov dword [esp + 0x1c], ecx
jne 0x10164ea4
inc edx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
cmp byte [eax], 0x77
jne 0x10164ed6
nop word [eax + eax]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov eax, edx
cmp byte [eax], 0x77
je 0x10164ec0
movzx eax, byte [edi + 0x101c2588]
sub edx, eax
add edx, 3
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x44]
movzx ebp, byte [eax + 0x101c2588]
jmp case.0x10164cc1.145
test eax, eax
je case.0x10164cc1.145
cmp eax, 0xfffffc20
jne 0x101717bc
mov edx, dword [esp + 0x18]
add edx, ebp
mov dword [esp + 0x18], edx
test ebx, ebx
jne 0x1016e133
cmp byte [edx - 3], 0x77
je 0x1016e133
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov eax, dword [esp + 0x18]
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edx, 8
or edx, eax
mov eax, dword [ebx + 0x90]
and eax, 0xffff0000
or eax, edx
mov dword [ebx + 0x90], eax
lea edi, [edx + edx]
cmp edi, dword [ebx + 0x14]
jl 0x10164f7a
mov edx, dword [esp + 0x18]
or eax, 0x10000
mov edi, dword [esp + 0x1c]
add edx, 3
mov ebp, dword [esp + 0x24]
mov dword [ebx + 0x90], eax
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov dword [ecx + edi*4], eax
mov ecx, esi
mov eax, dword [esp + 0x10]
sub ecx, dword [eax + 0x74]
mov eax, dword [eax + 0xc]
mov dword [eax + edi*4 + 4], ecx
mov ecx, dword [esp + 0x1c]
cmp edi, ecx
jl 0x10167647
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + edi*4]
cmp ecx, edx
jae 0x10164fcf
mov eax, ecx
nop dword [eax + eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x10164fc0
mov edx, dword [esp + 0x18]
add edi, 2
mov ebp, dword [esp + 0x24]
add edx, 3
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x1016500e
mov dword [eax + 0x98], 0
mov ebx, 1
jmp 0x10165010
xor ebx, ebx
mov edx, dword [esp + 0x18]
mov ebp, eax
mov eax, dword [esp + 0x180]
inc eax
push eax
push 0
push ebp
push dword [esp + 0x28]
lea eax, [edx + 3]
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164890
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x101650ae
cmp edx, 0xfffffc19
je 0x101650ae
mov dword [ebp + 0xac], edi
cmp edx, 0xfffffc20
jne 0x10165084
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, edx
add ecx, dword [esp + 0x18]
cmp dword [ebp + 0x7c], ecx
jae 0x10165084
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10165080
cmp byte [ecx], 0x77
mov eax, edx
jne 0x10165084
xor edx, edx
xor eax, eax
test edx, edx
jne 0x101717bc
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esp + 0x18], edx
cmp byte [edx], 0x77
je 0x10165016
jmp 0x101650bb
mov edx, dword [esp + 0x18]
mov eax, ebp
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x2c], eax
cmp byte [edx], 0x78
je case.default.0x10166bdb
test ebx, ebx
jne 0x1016eaaa
nop dword [eax]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x77
je 0x101650d0
mov eax, ebp
add edx, 3
mov ebp, dword [esp + 0x24]
mov ebx, eax
mov dword [esp + 0x18], edx
mov edi, dword [eax + 0x8c]
mov dword [esp + 0x1c], edi
jmp 0x101649e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x10165126
mov dword [eax + 0x98], 0
mov ebx, 1
jmp 0x10165128
xor ebx, ebx
mov edx, dword [esp + 0x18]
nop dword [eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push 0
push dword [esp + 0x18]
lea eax, [edx + 3]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164890
mov ecx, eax
add esp, 0x1c
mov eax, dword [esp + 0x10]
mov dword [eax + 0xac], edi
cmp ecx, 0xfffffc1c
jle 0x101651d2
test ecx, ecx
jg 0x1016e973
je 0x101651b0
lea eax, [ecx + 0x3e3]
cmp eax, 3
ja case.default.0x10165181
jmp dword [eax*4 + 0x101719f4]
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
mov ecx, dword [esp + 0x10]
add eax, edx
cmp dword [ecx + 0x7c], eax
jae 0x101651e0
cmp byte [edx], 0x77
je 0x101651b4
cmp byte [eax], 0x77
jne 0x101651e0
jmp 0x101651b4
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esp + 0x18], edx
cmp byte [edx], 0x77
je 0x10165130
jmp 0x101651f4
jne 0x1016e97a
mov edx, dword [esp + 0x18]
nop dword [eax]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x77
je 0x101651e0
test ebx, ebx
jne 0x1016eaaa
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x101649d6
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
test ebp, ebp
je 0x10165258
or ecx, eax
mov eax, dword [esp + 0x10]
jbe 0x1016526d
mov edx, dword [eax + 0x74]
dec esi
dec ecx
mov dword [esp + 0x14], esi
cmp esi, edx
jb case.default.0x10166bdb
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016524e
nop dword [eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x10165240
mov dword [esp + 0x14], esi
test ecx, ecx
jg 0x10165226
mov eax, dword [esp + 0x10]
jmp 0x1016526d
or ecx, eax
mov eax, dword [esp + 0x10]
sub esi, ecx
mov dword [esp + 0x14], esi
cmp esi, dword [eax + 0x74]
jb case.default.0x10166bdb
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
cmp esi, dword [eax + 0x84]
jae 0x10167653
mov ebp, dword [esp + 0x24]
add edx, 3
mov dword [eax + 0x84], esi
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov edi, dword [0x102036a4]
test edi, edi
je 0x10165386
mov edx, dword [esp + 0x18]
mov dword [esp + 0xac], 2
movzx eax, byte [edx + 1]
mov dword [esp + 0xb0], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x10]
mov ecx, dword [eax + 0x74]
mov dword [esp + 0xb8], ecx
mov eax, dword [eax + 0x78]
sub eax, ecx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0xc0], eax
mov eax, esi
sub eax, ecx
mov dword [esp + 0xc4], eax
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0xd4], ecx
movzx ecx, byte [edx + 4]
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x1c]
cdq
sub eax, edx
mov dword [esp + 0xd8], ecx
sar eax, 1
mov ecx, 0xffffffff
mov dword [esp + 0xc8], eax
mov eax, dword [ebx + 0x90]
and eax, 0xffff
cmove eax, ecx
mov dword [esp + 0xcc], eax
mov eax, dword [ebx + 0xa8]
mov dword [esp + 0xd0], eax
mov eax, dword [ebx + 0xb0]
mov dword [esp + 0xdc], eax
lea eax, [esp + 0xac]
push eax
call edi
add esp, 4
test eax, eax
jg case.default.0x10166bdb
js 0x101717bc
mov edx, dword [esp + 0x18]
add edx, 6
mov dword [esp + 0x18], edx
jmp 0x101649da
mov edi, dword [esp + 0x18]
mov edx, dword [ebx + 0x70]
movzx ebx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ebx, 8
or ebx, eax
add ebx, edx
cmp ebx, edx
jne 0x101653b4
xor edx, edx
jmp 0x101653c1
movzx edx, byte [ebx + 3]
movzx eax, byte [ebx + 4]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je 0x101653ea
nop
cmp edx, dword [ecx + 4]
jne 0x101653de
cmp esi, dword [ecx + 0x14]
je 0x1016e98d
mov eax, dword [ecx]
mov ecx, eax
test eax, eax
jne 0x101653d0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], edx
lea ecx, [esp + 0x58]
mov eax, dword [eax + 0x90]
add edi, 3
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x18], edi
mov eax, dword [eax + 0xa4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0xa4], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x64], ecx
cmp ecx, 0x1e
jg 0x10165438
lea eax, [esp + 0xe0]
mov dword [esp + 0x60], eax
jmp 0x10165459
lea eax, [ecx*4]
push eax
call dword [0x101fd4b0]
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
je 0x1016e9b7
mov ecx, dword [esp + 0x64]
shl ecx, 2
push ecx
mov ecx, dword [esp + 0x14]
push dword [ecx + 0xc]
push eax
call fcn.10178960
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [ebx], 0x88
sbb ebp, ebp
inc ebp
test ebp, ebp
je 0x1016548b
mov eax, dword [esp + 0x10]
mov edx, eax
mov dword [eax + 0x98], 2
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [ebx]
push edx
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101c2588]
push dword [esp + 0x3c]
add eax, ebx
push eax
push esi
call fcn.10164890
mov ecx, dword [esp + 0x80]
mov edi, eax
mov eax, dword [esp + 0x2c]
shl ecx, 2
push ecx
push dword [esp + 0x80]
push dword [eax + 0xc]
call fcn.10178960
mov edx, dword [esp + 0x38]
add esp, 0x28
mov eax, dword [esp + 0x68]
mov dword [edx + 0x90], eax
mov eax, dword [esp + 0x58]
mov dword [edx + 0xa4], eax
cmp edi, 1
je 0x10165564
cmp edi, 0xfffffc19
je 0x10165564
cmp edi, 0xfffffc1c
jl 0x1016550c
cmp edi, 0xfffffc20
jle 0x10165540
test edi, edi
jne 0x1016e997
lea eax, [esp + 0x58]
mov dword [edx + 0xa4], eax
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x10165477
mov eax, dword [esp + 0x58]
mov dword [edx + 0xa4], eax
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xe0]
cmp eax, ecx
je case.default.0x10166bdb
push eax
call dword [0x101fd4b4]
add esp, 4
xor eax, eax
jmp 0x101717bc
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xe0]
cmp eax, ecx
je 0x1016557d
push eax
call dword [0x101fd4b4]
add esp, 4
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x80]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov edx, dword [esp + 0x18]
nop word [eax + eax]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x77
je 0x101655b0
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x180]
mov edi, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x38]
inc edi
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edi
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edx, edi
nop dword [eax]
movzx ecx, byte [edi + 1]
movzx edi, byte [edi + 2]
shl ecx, 8
or edi, ecx
add edi, edx
mov edx, edi
cmp byte [edi], 0x77
je 0x10165600
lea edx, [edi + 3]
mov dword [esp + 0x18], edx
jmp 0x101649da
mov edx, dword [esp + 0x18]
inc edx
mov edi, edx
nop dword [eax]
movzx ecx, byte [edx + 1]
movzx edx, byte [edx + 2]
shl ecx, 8
or edx, ecx
add edx, edi
mov edi, edx
cmp byte [edx], 0x77
je 0x10165630
mov eax, dword [esp + 0x180]
mov edi, dword [esp + 0x1c]
inc eax
push eax
push dword [esp + 0x38]
lea eax, [edx + 3]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x18]
inc eax
mov edx, eax
nop dword [eax + eax]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
cmp byte [eax], 0x77
je 0x10165690
lea edx, [eax + 3]
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x18], ecx
movzx edx, byte [ecx]
mov dword [esp + 0x38], edx
cmp edx, 0x86
je 0x101656da
cmp edx, 0x8b
jne 0x101656fb
movzx ebx, byte [ecx + 3]
movzx eax, byte [ecx + 4]
mov edi, dword [esp + 0x10]
shl ebx, 8
or ebx, eax
mov dword [esp + 0x44], ebx
lea eax, [ebx + ebx]
cmp eax, dword [edi + 0x14]
jl 0x10165868
mov eax, dword [esp + 0x10]
mov edi, ecx
xor ebp, ebp
mov ebx, dword [eax + 0x90]
sub edi, dword [eax + 0x70]
mov dword [esp + 0x44], ebx
cmp edx, 0x88
jb 0x10165722
mov dword [eax + 0x98], 2
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [ecx]
push dword [esp + 0x18]
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101c2588]
push dword [esp + 0x3c]
add eax, ecx
push eax
push esi
call fcn.10164890
add esp, 0x1c
cmp eax, 0xfffffc1a
jne 0x101657a0
mov eax, dword [esp + 0x10]
mov ebp, 1
mov dword [esp + 0x50], ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [eax + 0x7c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x70]
mov eax, dword [eax + 0x80]
add ecx, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], edx
cmp esi, eax
je 0x1016581d
mov edx, dword [esp + 0x38]
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
jmp 0x10165710
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x101657e0
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, 0xfffffc20
add edx, ecx
mov ecx, eax
cmp dword [ebx + 0x7c], edx
mov ebx, dword [esp + 0x44]
jae 0x101657e0
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x101657e8
cmp byte [edx], 0x77
mov eax, ecx
je 0x101657e8
test eax, eax
jne case.default.0x10165181
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esp + 0x18], edx
mov eax, edx
cmp byte [edx], 0x77
jne 0x10165844
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x90], ebx
jmp 0x10165710
mov edx, ecx
nop
mov ebp, dword [esp + 0x18]
movzx ecx, byte [ecx + 1]
shl ecx, 8
movzx eax, byte [ebp + 2]
or ecx, eax
add ecx, edx
mov dword [esp + 0x18], ecx
mov eax, ecx
mov edx, ecx
cmp byte [ecx], 0x77
je 0x10165820
mov ebp, dword [esp + 0x50]
test ebp, ebp
jne 0x10165854
mov edx, eax
cmp dword [esp + 0x20], ebp
je case.default.0x10166bdb
mov ebx, dword [esp + 0x10]
add edx, 3
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x101649da
mov ebp, ecx
xor edx, edx
mov ecx, dword [edi + 0xc]
sub ebp, dword [edi + 0x70]
mov dword [esp + 0x40], edx
mov edx, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x10]
sub eax, ebx
mov dword [esp + 0x50], edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, edi
mov edi, dword [eax + 0x90]
nop dword [eax]
mov ecx, dword [eax + 0x10]
mov edx, esi
sub edx, dword [eax + 0x74]
sub ecx, ebx
cmp dword [esp + 0x38], 0x88
mov eax, dword [eax + 0xc]
mov dword [eax + ecx*4], edx
jb 0x101658c8
mov eax, dword [esp + 0x10]
mov dword [eax + 0x98], 2
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
movzx eax, byte [ecx]
push dword [esp + 0x28]
push dword [esp + 0x3c]
movzx eax, byte [eax + 0x101c2588]
add eax, ecx
push eax
push esi
call fcn.10164890
add esp, 0x1c
cmp eax, 0xfffffc1a
jne 0x1016594b
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], 1
mov ecx, dword [eax + 0x8c]
mov edx, dword [eax + 0x7c]
mov edi, dword [eax + 0x90]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x70]
mov eax, dword [eax + 0x80]
add ecx, ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], edx
cmp esi, eax
je 0x101659c2
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
jmp 0x101658a0
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x1016598b
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, 0xfffffc20
add edx, ecx
mov ecx, eax
cmp dword [ebx + 0x7c], edx
mov ebx, dword [esp + 0x44]
jae 0x1016598b
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10165993
cmp byte [edx], 0x77
mov eax, ecx
je 0x10165993
test eax, eax
jne case.default.0x10165181
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x90], edi
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esp + 0x18], edx
cmp byte [edx], 0x77
jne 0x101659ec
mov eax, dword [esp + 0x10]
jmp 0x101658a0
mov edx, ecx
mov esi, dword [esp + 0x18]
movzx ecx, byte [ecx + 1]
shl ecx, 8
movzx eax, byte [esi + 2]
or ecx, eax
add ecx, edx
mov dword [esp + 0x18], ecx
mov edx, ecx
cmp byte [ecx], 0x77
je 0x101659c4
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
jmp 0x10165a21
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x10165a21
mov ebp, dword [esp + 0x10]
lea ecx, [ebx + ebx]
mov edi, dword [esp + 0x50]
mov eax, dword [ebp + 0xc]
mov dword [eax + ecx*4], edi
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edi
mov eax, ebp
mov edi, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
sub ecx, ebx
mov dword [eax + ecx*4], edi
cmp dword [esp + 0x20], 0
jne 0x10167647
test edx, edx
jmp 0x10167641
mov edx, dword [esp + 0x18]
mov ebx, edx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
sub ebx, ecx
mov dword [esp + 0x20], ebx
mov cl, byte [ebx]
cmp cl, 0x88
jae 0x10165a5c
cmp cl, 0x81
je 0x10165a5c
xor ebp, ebp
jmp 0x10165a6c
mov ebp, dword [esp + 0x34]
lea eax, [ebp + 4]
mov ebp, dword [ebp]
mov dword [esp + 0x34], ebp
mov ebp, dword [eax]
cmp cl, 0x7d
jb 0x10165a7a
cmp cl, 0x80
jbe 0x1016ea93
cmp cl, 0x82
je 0x1016ea93
cmp cl, 0x85
je 0x10165a9b
cmp cl, 0x8a
je 0x10165a9b
cmp cl, 0x86
je 0x10165a9b
cmp cl, 0x8b
jne 0x10165b5e
movzx edi, byte [ebx + 3]
movzx eax, byte [ebx + 4]
mov ecx, dword [esp + 0x10]
shl edi, 8
or edi, eax
mov eax, dword [ecx + 0xa4]
lea ebx, [edi + edi]
test eax, eax
je 0x10165ac2
cmp dword [eax + 4], edi
je 0x1016e9c1
mov eax, dword [ecx + 0x90]
and eax, 0xffff0000
or eax, edi
mov dword [ecx + 0x90], eax
cmp ebx, dword [ecx + 0x14]
jl 0x10165aef
mov ebx, dword [esp + 0x20]
or eax, 0x10000
mov edi, dword [esp + 0x1c]
mov dword [ecx + 0x90], eax
jmp 0x10165b62
cmp ebx, dword [esp + 0x1c]
jle 0x10165b23
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + ebx*4]
lea ecx, [eax + ecx*4]
cmp ecx, edx
jae 0x10165b1f
mov eax, ecx
nop dword [eax + eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x10165b10
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, edi
mov edi, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + ebx*4], eax
mov ecx, esi
mov eax, dword [esp + 0x10]
sub ecx, dword [eax + 0x74]
mov eax, dword [eax + 0xc]
mov dword [eax + ebx*4 + 4], ecx
mov ecx, dword [esp + 0x10]
cmp edi, ebx
jg 0x10165b58
lea edi, [ebx + 2]
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x20]
jmp 0x10165b62
mov ecx, dword [esp + 0x10]
mov al, byte [edx]
cmp al, 0x7b
je 0x1016ea76
cmp al, 0x78
je 0x10165b78
cmp esi, ebp
jne 0x1016e174
cmp byte [ebx], 0x81
je 0x1016ea3a
mov ebx, dword [esp + 0x10]
add edx, 3
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0
je 0x10165bae
cmp esi, dword [eax + 0x74]
je case.default.0x10166bdb
jmp 0x10165bae
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x74]
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0
je 0x10165be0
cmp esi, dword [eax + 0x74]
je case.default.0x10166bdb
mov edx, dword [eax + 0x74]
cmp esi, edx
je 0x10167932
cmp esi, dword [eax + 0x78]
je case.default.0x10166bdb
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x10165c3a
cmp esi, edx
jbe 0x10165c1a
push ebp
add eax, 0x1c
push eax
push edx
push ecx
push esi
call fcn.10173af0
add esp, 0x14
test eax, eax
je 0x10165c1a
mov eax, 1
jmp 0x10165c1c
xor eax, eax
test eax, eax
je case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov ecx, dword [eax + 0x1c]
lea eax, [ecx + edx]
cmp esi, eax
jb case.default.0x10166bdb
mov ebx, dword [esp + 0x10]
mov eax, esi
sub eax, ecx
mov al, byte [eax]
cmp al, byte [ebx + 0x34]
jne case.default.0x10166bdb
cmp ecx, 1
je case.0x10166bdb.10
mov eax, esi
sub eax, ecx
mov al, byte [eax + 1]
cmp al, byte [ebx + 0x35]
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [ebx + 0x94]
add eax, dword [ebx + 0x74]
cmp esi, eax
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10165d37
mov edx, dword [eax + 0x18]
test edx, edx
je 0x10165d03
push ebp
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.10173960
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
je 0x1016eab4
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov edx, dword [eax + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016eab8
mov ebx, dword [esp + 0x10]
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10165d30
cmp edx, 1
je case.0x10166bdb.10
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x10166bdb.10
mov eax, ebx
jmp 0x1016eab8
cmp dword [eax + 0x48], 0
jne case.default.0x10166bdb
mov eax, dword [eax + 0x88]
mov ebx, dword [esp + 0x10]
test eax, eax
je case.0x10166bdb.10
cmp esi, dword [ebx + 0x84]
jbe case.0x10166bdb.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x48], 0
jne case.default.0x10166bdb
cmp dword [eax + 0x58], 0
je 0x10165daa
jmp 0x10165d9b
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jb case.default.0x10166bdb
jmp 0x10165d41
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10165d41
mov edx, dword [eax + 0x18]
test edx, edx
je 0x10165dde
push ebp
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.10173960
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
je 0x1016eab4
mov ecx, dword [esp + 0x10]
jmp 0x10165e0b
mov edx, dword [eax + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016eab8
mov ecx, dword [esp + 0x10]
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x1016eaed
cmp edx, 1
je 0x10165e0b
mov al, byte [esi + 1]
cmp al, byte [ecx + 0x35]
jne 0x1016eaed
mov eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x1c]
cmp esi, eax
mov eax, dword [esp + 0x10]
jne 0x1016eab8
jmp 0x10165d41
test ebp, ebp
je 0x1016610a
cmp esi, dword [ebx + 0x74]
je 0x10165f81
mov al, byte [esi - 1]
lea edx, [esi - 1]
and al, 0xc0
mov ecx, edx
cmp al, 0x80
jne 0x10165e4d
mov al, byte [edx - 1]
dec edx
and al, 0xc0
mov ecx, edx
cmp al, 0x80
je 0x10165e41
cmp ecx, dword [ebx + 0x84]
jae 0x10165e5b
mov dword [ebx + 0x84], edx
movzx ebx, byte [edx]
mov eax, ebx
mov ecx, ebx
mov ebp, ebx
mov edi, ebx
cmp ebx, 0xc0
jb 0x10165f16
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x10165e8b
and eax, 0x1f
mov ebx, ecx
shl eax, 6
jmp 0x10165f0c
movzx eax, byte [edx + 2]
test bl, 0x10
jne 0x10165e9e
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x10165f06
and eax, 0x3f
test bl, 8
jne 0x10165eb9
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
jmp 0x10165f06
test bl, 4
jne 0x10165edd
and ebx, 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
jmp 0x10165f06
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 5]
shl ebx, 6
and eax, 0x3f
or ebx, eax
mov eax, ebx
mov ecx, ebx
mov ebp, ebx
mov edi, ebx
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x54], 0
je 0x10165f69
cmp ebp, 0x5f
je 0x10165f62
shr eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x10165f3f
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x10165f62
cmp eax, 3
jne 0x10165f85
mov ebp, 1
jmp 0x10165f87
cmp edi, 0x100
jae 0x10165f85
mov eax, dword [edx + 0x40]
test byte [ebx + eax], 0x10
je 0x10165f85
mov ebp, 1
jmp 0x10165f87
mov edx, dword [esp + 0x10]
xor ebp, ebp
cmp esi, dword [edx + 0x78]
jb 0x10165fbb
mov eax, dword [edx + 0x88]
test eax, eax
je 0x10165fae
cmp esi, dword [edx + 0x84]
jbe 0x10165fae
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov ebx, dword [esp + 0x10]
xor ecx, ecx
xor edx, edx
jmp 0x101661b9
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
cmp edx, 0xc0
jb 0x10166072
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10165fe9
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016606a
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10165ffc
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x10166064
and eax, 0x3f
test dl, 8
jne 0x10166017
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10166064
test dl, 4
jne 0x1016603b
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x10166064
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 0x54], 0
mov ebx, edx
je 0x101660dd
cmp ebx, 0x5f
je 0x101660cd
shr eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016609d
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x101660cd
cmp eax, 3
je 0x101660cd
mov ebx, dword [esp + 0x10]
xor edx, edx
xor ecx, ecx
jmp 0x101661b9
mov ebx, dword [esp + 0x10]
mov edx, 1
mov ecx, edx
jmp 0x101661b9
cmp edi, 0x100
jae 0x10165fae
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je 0x10165fae
mov ebx, dword [esp + 0x10]
mov ecx, 1
mov edx, ecx
jmp 0x101661b9
cmp esi, dword [ebx + 0x74]
je 0x1016618c
cmp esi, dword [ebx + 0x84]
ja 0x10166120
lea eax, [esi - 1]
mov dword [ebx + 0x84], eax
cmp dword [ebx + 0x54], 0
movzx ecx, byte [esi - 1]
je 0x1016617c
cmp ecx, 0x5f
je 0x10166175
mov eax, ecx
test eax, eax
jns 0x10166138
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x10166152
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x10166175
cmp eax, 3
jne 0x1016618c
mov ebp, 1
jmp 0x1016618e
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x1016618c
mov ebp, 1
jmp 0x1016618e
xor ebp, ebp
cmp esi, dword [ebx + 0x78]
jb 0x101661d8
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101661b5
cmp esi, dword [ebx + 0x84]
jbe 0x101661b5
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
xor ecx, ecx
xor edx, edx
mov edi, dword [esp + 0x18]
mov al, byte [edi]
inc edi
mov dword [esp + 0x18], edi
cmp al, 5
jne 0x10166257
xor eax, eax
cmp ecx, ebp
sete al
jmp 0x1016625e
cmp dword [ebx + 0x54], 0
movzx ecx, byte [esi]
je 0x1016623e
cmp ecx, 0x5f
je 0x10166232
mov eax, ecx
test eax, eax
jns 0x101661ef
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x10166209
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x10166232
cmp eax, 3
je 0x10166232
xor edx, edx
xor ecx, ecx
jmp 0x101661b9
mov edx, 1
mov ecx, edx
jmp 0x101661b9
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x101661b5
mov ecx, 1
mov edx, ecx
jmp 0x101661b9
xor eax, eax
cmp edx, ebp
setne al
test eax, eax
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x101662a8
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016629c
push ebp
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.10173960
add esp, 0x14
test eax, eax
je 0x1016629c
mov eax, 1
jmp 0x1016629e
xor eax, eax
test eax, eax
jne case.default.0x10166bdb
jmp 0x101662d0
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x101662d0
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x101662d0
cmp ecx, 1
je case.default.0x10166bdb
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10166bdb
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je case.0x10164a0c.13
mov eax, dword [ebx + 0x78]
dec eax
cmp esi, eax
jne case.0x10164a0c.13
cmp dword [ebx + 0x18], 0
jne case.0x10164a0c.13
cmp dword [ebx + 0x1c], 2
jne case.0x10164a0c.13
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne case.0x10164a0c.13
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x101713f5
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016eaf1
inc esi
mov dword [esp + 0x14], esi
test ebp, ebp
je case.0x10166bdb.10
cmp esi, edx
jae case.0x10166bdb.10
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne case.0x10166bdb.10
lea esi, [ecx + 1]
mov dword [esp + 0x14], esi
mov ecx, esi
cmp esi, edx
jb 0x10166327
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
mov edx, dword [esp + 0x18]
inc esi
inc edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x10166470
cmp ecx, 0xc0
jb 0x10166470
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101663ae
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016646a
test cl, 0x10
jne 0x101663cf
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016646a
test cl, 8
jne 0x101663f9
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016646a
test cl, 4
jne 0x1016642f
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016646a
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
cmp eax, 0x100
jae case.0x10166bdb.10
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x101665b0
cmp edx, 0xc0
jb 0x101665b0
test dl, 0x20
jne 0x101664dc
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101665aa
test dl, 0x10
jne 0x10166503
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x101665aa
test dl, 8
jne 0x10166533
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x101665aa
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016656f
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x101665aa
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, edx
cmp eax, 0xff
ja case.default.0x10166bdb
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 4
je case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x101666f0
cmp edx, 0xc0
jb 0x101666f0
test dl, 0x20
jne 0x1016661c
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101666ea
test dl, 0x10
jne 0x10166643
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x101666ea
test dl, 8
jne 0x10166673
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x101666ea
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101666af
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x101666ea
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, edx
cmp eax, 0x100
jae case.0x10166bdb.10
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x10166830
cmp edx, 0xc0
jb 0x10166830
test dl, 0x20
jne 0x1016675c
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x1016682a
test dl, 0x10
jne 0x10166783
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016682a
test dl, 8
jne 0x101667b3
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1016682a
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101667ef
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1016682a
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, edx
cmp eax, 0xff
ja case.default.0x10166bdb
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
je case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x1016695c
cmp ecx, 0xc0
jb 0x1016695c
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016689a
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166956
test cl, 0x10
jne 0x101668bb
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10166956
test cl, 8
jne 0x101668e5
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10166956
test cl, 4
jne 0x1016691b
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10166956
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
cmp eax, 0x100
jae case.0x10166bdb.10
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x10166a88
cmp ecx, 0xc0
jb 0x10166a88
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101669c6
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166a82
test cl, 0x10
jne 0x101669e7
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10166a82
test cl, 8
jne 0x10166a11
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10166a82
test cl, 4
jne 0x10166a47
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10166a82
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
cmp eax, 0xff
ja case.default.0x10166bdb
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
test ebp, ebp
je 0x10166bb8
cmp ecx, 0xc0
jb 0x10166bb8
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166af4
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166bb0
test cl, 0x10
jne 0x10166b15
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10166bb0
test cl, 8
jne 0x10166b3f
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10166bb0
test cl, 4
jne 0x10166b75
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10166bb0
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
cmp eax, 0x85
ja 0x10166c43
cmp edx, 0x85
je case.0x10166bdb.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x10166bdb
jmp dword [ecx*4 + 0x10171a04]
cmp esi, dword [ebx + 0x78]
jb 0x10166c23
mov eax, dword [ebx + 0x88]
test eax, eax
je case.0x10166bdb.10
cmp esi, dword [ebx + 0x84]
jbe case.0x10166bdb.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp byte [esi], 0xa
jne case.0x10166bdb.10
mov edx, dword [esp + 0x18]
inc esi
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x101649e0
sub ecx, 0x2028
je case.0x10166bdb.11
sub ecx, 1
jne case.default.0x10166bdb
cmp dword [ebx + 0x68], 0
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov eax, edx
mov dword [esp + 0x14], esi
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
je 0x10166d99
cmp edx, 0xc0
jb 0x10166d99
test dl, 0x20
jne 0x10166cbd
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10166d8b
test dl, 0x10
jne 0x10166ce4
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x10166d8b
test dl, 8
jne 0x10166d14
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x10166d8b
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10166d50
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x10166d8b
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, edx
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
cmp eax, 0x2000
ja 0x10166e00
cmp edi, 0x2000
je case.default.0x10166bdb
cmp ebp, 0xa0
ja 0x10166dec
cmp edx, 0xa0
je case.default.0x10166bdb
cmp edx, 9
je case.default.0x10166bdb
cmp edx, 0x20
je case.default.0x10166bdb
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp edx, 0x1680
je case.default.0x10166bdb
cmp edx, 0x180e
jmp 0x10166dcc
cmp ecx, 0x3000
ja case.0x10166e26.8203
cmp ebx, 0x3000
je case.default.0x10166bdb
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10166e26.8203
movzx eax, byte [edx + 0x10171a1c]
jmp dword [eax*4 + 0x10171a14]
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov eax, ecx
mov dword [esp + 0x14], esi
mov edi, ecx
mov ebp, ecx
mov edx, ecx
mov ebx, ecx
je 0x10166f42
cmp ecx, 0xc0
jb 0x10166f42
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166e78
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166f34
test cl, 0x10
jne 0x10166e99
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10166f34
test cl, 8
jne 0x10166ec3
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10166f34
test cl, 4
jne 0x10166ef9
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10166f34
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
mov edi, ecx
mov ebp, ecx
mov edx, ecx
mov ebx, ecx
cmp eax, 0x2000
ja 0x10166f9d
cmp edi, 0x2000
je case.0x10166e26.8203
cmp ebp, 0xa0
ja 0x10166f80
cmp ecx, 0xa0
je case.0x10166e26.8203
cmp ecx, 9
je case.0x10166e26.8203
cmp ecx, 0x20
jne case.default.0x10166bdb
jmp case.0x10166e26.8203
cmp ecx, 0x1680
je case.0x10166e26.8203
cmp ecx, 0x180e
jne case.default.0x10166bdb
jmp case.0x10166e26.8203
cmp edx, 0x3000
ja case.default.0x10166bdb
cmp ebx, 0x3000
je case.0x10166e26.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x10166bdb
movzx eax, byte [ecx + 0x10171a84]
jmp dword [eax*4 + 0x10171a7c]
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
test ebp, ebp
je 0x101670d8
cmp ecx, 0xc0
jb 0x101670d8
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10167014
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101670d0
test cl, 0x10
jne 0x10167035
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x101670d0
test cl, 8
jne 0x1016705f
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x101670d0
test cl, 4
jne 0x10167095
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x101670d0
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
cmp eax, 0x85
ja 0x101670fe
cmp edx, 0x85
je case.default.0x10166bdb
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x10166bdb.10
jmp dword [ecx*4 + 0x10171ae4]
sub ecx, 0x2028
je case.default.0x10166bdb
sub ecx, 1
je case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
mov ecx, edx
test ebp, ebp
je 0x1016723f
cmp edx, 0xc0
jb 0x1016723f
test dl, 0x20
jne 0x10167169
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10167237
test dl, 0x10
jne 0x10167190
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x10167237
test dl, 8
jne 0x101671c0
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x10167237
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101671fc
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x10167237
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, edx
mov ecx, edx
cmp eax, 0x85
ja 0x10167265
cmp ecx, 0x85
je case.0x10166bdb.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10166bdb
jmp dword [edx*4 + 0x10171af4]
sub edx, 0x2028
je case.0x10166bdb.10
sub edx, 1
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov eax, edx
mov dword [esp + 0x14], esi
mov ecx, edx
mov edi, edx
mov dword [esp + 0x20], edx
mov ebx, edx
mov dword [esp + 0x40], edx
mov ebp, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], edx
je 0x101673e5
mov dword [esp + 0x20], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], edx
cmp edx, 0xc0
jb 0x101673e5
test dl, 0x20
jne 0x101672f9
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101673c7
test dl, 0x10
jne 0x10167320
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x101673c7
test dl, 8
jne 0x10167350
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x101673c7
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016738c
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x101673c7
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
mov dword [esp + 0x14], esi
mov ecx, eax
mov dword [esp + 0x20], edx
mov edi, edx
mov dword [esp + 0x40], eax
mov ebx, edx
mov dword [esp + 0x28], eax
mov ebp, edx
mov dword [esp + 0x3c], eax
shr eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x101673ff
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x101c6588]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
movzx eax, byte [eax + 1]
cmp eax, 0xa
ja case.default.0x1016742a
mov dword [esp + 0x44], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x44], ebp
jmp dword [eax*4 + 0x10171b04]
cmp dword [esp + 0x38], 0xf
jmp 0x10167641
mov al, byte [ecx*8 + 0x101c2d09]
cmp al, 9
je 0x10167630
cmp al, 5
je 0x10167630
cmp al, 8
je 0x10167630
xor ecx, ecx
jmp 0x10167635
mov eax, dword [esp + 0x18]
xor edx, edx
movzx ecx, byte [ecx*8 + 0x101c2d09]
movzx eax, byte [eax + 2]
cmp eax, dword [ecx*4 + 0x101c26a0]
setne dl
xor eax, eax
cmp dword [esp + 0x38], 0x10
sete al
cmp edx, eax
jmp 0x10167641
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + 0x50]
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x101c2d09]
setne cl
xor eax, eax
cmp dword [esp + 0x38], 0x10
jmp 0x1016763c
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + 0x50]
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x101c2d08]
setne cl
xor eax, eax
cmp dword [esp + 0x38], 0x10
jmp 0x1016763c
movzx eax, byte [ecx*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x10167630
cmp eax, 3
je 0x10167630
xor ecx, ecx
jmp 0x10167635
cmp edx, 0x20
ja 0x10167516
je case.0x1016742a.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x10167591.8203
jmp dword [edx*4 + 0x10171b30]
cmp dword [esp + 0x20], 0x2000
ja 0x10167571
cmp edx, 0x2000
je case.0x1016742a.0
cmp edx, 0x1680
ja 0x10167569
je case.0x1016742a.0
sub edx, 0x85
je case.0x1016742a.0
sub edx, 0x1b
je case.0x1016742a.0
movzx eax, byte [ecx*8 + 0x101c2d09]
xor ecx, ecx
cmp dword [eax*4 + 0x101c26a0], 6
sete cl
jmp 0x10167635
cmp edx, 0x180e
jmp 0x10167549
cmp edx, 0x3000
ja case.0x10167591.8203
je case.0x1016742a.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10167591.8203
movzx eax, byte [edx + 0x10171b4c]
jmp dword [eax*4 + 0x10171b44]
movzx eax, byte [ecx*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x10167630
cmp eax, 3
je 0x10167630
cmp edx, 0x5f
je 0x10167630
xor ecx, ecx
jmp 0x10167635
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
movzx eax, byte [eax + 2]
cmp ecx, dword [eax*4 + 0x101c2bc8]
lea eax, [eax*4 + 0x101c2bc8]
jb 0x101675ed
mov ecx, dword [eax]
nop dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x101675f4
mov ecx, dword [eax]
cmp edx, ecx
jae 0x101675e0
cmp dword [esp + 0x38], 0x10
jmp 0x10167641
cmp dword [esp + 0x38], 0x10
jne case.default.0x10166bdb
jmp 0x10167647
cmp dword [esp + 0x28], 0x24
je 0x10167630
cmp dword [esp + 0x3c], 0x40
je 0x10167630
cmp edx, 0x60
je 0x10167630
cmp edx, 0xa0
jb 0x10167624
cmp edx, 0xd7ff
jbe 0x10167630
cmp edx, 0xe000
jae 0x10167630
xor ecx, ecx
jmp 0x10167635
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x38], 0xf
sete al
cmp ecx, eax
je case.default.0x10166bdb
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
mov edi, esi
je 0x10167780
cmp eax, 0xc0
jb 0x10167780
test al, 0x20
jne 0x101676aa
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10167778
test al, 0x10
jne 0x101676d0
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10167778
test al, 8
jne 0x101676ff
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10167778
test al, 4
movzx eax, byte [esi]
jne 0x1016773a
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10167778
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edi, esi
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016779a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx ebx, byte [eax*8 + 0x101c2d0a]
cmp edi, ebp
jae 0x101678e5
nop dword [eax]
nop dword [eax + eax]
cmp dword [esp + 0x24], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x10167899
cmp edx, 0xc0
jb 0x10167899
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10167801
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10167895
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10167819
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016788f
and eax, 0x3f
test dl, 8
jne 0x10167839
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016788f
test dl, 4
jne 0x10167862
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016788f
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
movzx eax, byte [edx + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x101678b3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx ecx, byte [eax*8 + 0x101c2d0a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101c2718], eax
je 0x101678e1
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x101677c0
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10166dd6
cmp esi, dword [ebx + 0x78]
jb 0x10166dd6
cmp esi, dword [ebx + 0x84]
jbe 0x10166dd6
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
inc edx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov edx, dword [esp + 0x18]
mov ebx, eax
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov ebp, dword [esp + 0x18]
xor eax, eax
cmp edx, 0x74
sete al
movzx edx, byte [ebp + 3]
movzx ecx, byte [ebp + 1]
mov dword [esp + 0x40], eax
movzx eax, byte [ebp + 4]
shl ecx, 8
shl edx, 8
or edx, eax
movzx eax, byte [ebp + 2]
or ecx, eax
add ebp, 5
imul ecx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x18], ebp
add eax, ecx
mov ecx, dword [ebx + 0x50]
neg ecx
sbb ecx, ecx
xor edi, edi
neg ecx
dec ecx
mov dword [esp + 0x20], ecx
test edx, edx
je 0x101679d2
mov ebx, eax
mov ebp, eax
movzx ecx, byte [eax]
dec edx
movzx eax, byte [eax + 1]
shl ecx, 8
or ecx, eax
lea edi, [ecx + ecx]
mov ecx, dword [esp + 0x10]
cmp edi, dword [esp + 0x1c]
jge 0x101679bd
mov eax, dword [ecx + 0xc]
mov ebx, ebp
cmp dword [eax + edi*4], 0
jge 0x101679fa
mov eax, dword [ecx + 0x24]
add eax, ebx
mov ebx, eax
mov ebp, eax
test edx, edx
jg 0x10167998
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
mov al, byte [ebp]
movzx ebx, al
add ebx, 0xffffff9e
mov byte [esp + 0x57], al
cmp ebx, 7
ja case.default.0x101679f3
movzx eax, byte [ebx + 0x10171bb4]
jmp dword [eax*4 + 0x10171bac]
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
mov dword [esp + 0x20], ecx
jmp 0x101679ce
mov ebp, dword [esp + 0x18]
xor edx, edx
cmp dword [esp + 0x38], 0x72
sete dl
movzx ecx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
add ebp, 3
shl ecx, 8
or ecx, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x18], ebp
lea edi, [ecx + ecx]
cmp edi, dword [esp + 0x1c]
jge 0x10167a4c
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edi*4]
test eax, eax
js 0x10167a4c
mov ecx, dword [ecx + edi*4 + 4]
sub ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x101679d6
mov ecx, dword [ebx + 0x50]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [esp + 0x20], ecx
jmp 0x101679d6
mov eax, ebx
inc ebp
and eax, 1
mov dword [esp + 0x18], ebp
movsx ebp, byte [ebx + 0x101c1be0]
mov dword [esp + 0x44], eax
movsx eax, byte [ebx + 0x101c1bec]
mov ebx, bind
test eax, eax
cmove eax, ebx
mov dword [esp + 0x38], eax
jmp 0x10167acc
movzx ebp, byte [ebp + 1]
xor eax, eax
cmp byte [esp + 0x57], 0x69
sete al
shl ebp, 8
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 2]
or ebp, eax
mov eax, dword [esp + 0x18]
movzx ebx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ebx, 8
or ebx, eax
mov eax, bind
cmove ebx, eax
add dword [esp + 0x18], 5
mov dword [esp + 0x38], ebx
mov eax, ebp
test ecx, ecx
je 0x101649ce
jns 0x10167ae0
test eax, eax
je 0x101649bc
cmp ebp, 1
jl 0x10167b1b
mov ebx, 1
nop word [eax + eax]
push edx
push dword [esp + 0x14]
push ecx
push esi
push edi
call fcn.10172610
add esp, 0x14
test eax, eax
js 0x1016eb1a
mov ecx, dword [esp + 0x20]
add esi, eax
mov edx, dword [esp + 0x40]
inc ebx
mov dword [esp + 0x14], esi
cmp ebx, ebp
jle 0x10167af0
mov ebx, dword [esp + 0x38]
cmp ebp, ebx
je 0x101649ce
cmp dword [esp + 0x44], 0
je 0x1016eb2f
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov ebx, dword [esp + 0x20]
mov ecx, ebp
cmp ecx, dword [esp + 0x38]
jge case.default.0x10166bdb
push dword [esp + 0x40]
push dword [esp + 0x14]
push ebx
push esi
push edi
call fcn.10172610
add esp, 0x14
test eax, eax
js 0x1016eb1a
add esi, eax
inc ebp
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x10167b66
jmp 0x101717bc
mov ebx, dword [esp + 0x10]
push edx
push ebx
push ecx
push esi
push edi
call fcn.10172610
add esp, 0x14
test eax, eax
js 0x1016ebd9
mov edx, dword [esp + 0x18]
add esi, eax
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x14], esi
jmp 0x101649da
mov edi, dword [esp + 0x18]
mov dl, byte [edi + 0x21]
lea ebx, [edi + 1]
add edi, 0x21
movzx ecx, dl
add ecx, 0xffffff9e
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], edi
cmp ecx, 0xb
ja case.default.0x10167c16
movzx eax, byte [ecx + 0x10171bc4]
jmp dword [eax*4 + 0x10171bbc]
inc edi
mov dword [esp + 0x18], edi
cmp ecx, 8
jae 0x10167c32
mov eax, ecx
and eax, 1
mov dword [esp + 0x3c], eax
jmp 0x10167c3a
mov dword [esp + 0x40], 1
movsx edx, byte [ecx + 0x101c1bec]
mov eax, bind
movsx ebp, byte [ecx + 0x101c1be0]
test edx, edx
mov ecx, ebp
cmove edx, eax
mov eax, ebp
mov dword [esp + 0x20], edx
jmp 0x10167cb4
movzx ebp, byte [edi + 1]
xor eax, eax
cmp dl, 0x69
sete al
mov dword [esp + 0x3c], eax
xor eax, eax
cmp dl, 0x6d
movzx edx, byte [edi + 3]
sete al
shl ebp, 8
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 2]
or ebp, eax
shl edx, 8
movzx eax, byte [edi + 4]
or edx, eax
mov eax, bind
cmove edx, eax
add edi, 5
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], edi
jmp 0x10167cb0
mov dword [esp + 0x20], 1
mov ebp, 1
mov ecx, ebp
mov eax, ecx
mov edx, dword [esp + 0x24]
mov edi, 1
test edx, edx
je 0x10167e08
cmp ecx, edi
jl 0x10167e4d
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
cmp esi, ebx
jae 0x1016ebfd
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], ecx
mov edx, ecx
mov dword [esp + 0x14], esi
mov eax, ecx
cmp ecx, 0xc0
jb 0x10167dd5
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10167d11
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10167dcd
test cl, 0x10
jne 0x10167d32
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10167dcd
test cl, 8
jne 0x10167d5c
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10167dcd
test cl, 4
jne 0x10167d92
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10167dcd
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edx, ecx
mov eax, ecx
cmp eax, 0xff
jbe 0x10167de3
cmp dword [esp + 0x38], 0x6e
jmp 0x10167df7
and ecx, 7
shr edx, 3
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x30]
test byte [edx + ecx], al
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x10167cd4
jmp 0x10167e45
cmp eax, 1
jl 0x10167e4d
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
cmp esi, ebx
jae 0x1016ebfd
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
inc esi
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], esi
test byte [edx + ecx], al
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x10167e14
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x101649ae
cmp dword [esp + 0x3c], 0
jne 0x1016ecd6
mov edi, esi
mov dword [esp + 0x28], edi
test edx, edx
je 0x10167fe5
cmp ebp, eax
jge 0x10167fa1
nop
mov ebx, dword [esp + 0x10]
cmp esi, dword [ebx + 0x78]
jae 0x10167fbd
movzx edx, byte [esi]
mov ebx, 1
mov edi, edx
mov ecx, ebx
mov eax, edx
cmp edx, 0xc0
jb 0x10167f64
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10167ec5
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebx, 2
jmp 0x10167f5c
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10167ee0
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x10167f56
and eax, 0x3f
test dl, 8
jne 0x10167f00
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10167f56
test dl, 4
jne 0x10167f29
and edx, 3
mov ebx, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x10167f56
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, ebx
mov edi, edx
mov eax, edx
cmp eax, 0xff
jbe 0x10167f72
cmp dword [esp + 0x38], 0x6e
jmp 0x10167f8a
and edx, 7
shr edi, 3
mov ebx, ecx
mov eax, 1
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 0x30]
test byte [edi + ecx], al
je 0x10167f9d
add esi, ebx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x10167e80
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016ec27
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10167fdf
cmp esi, dword [ebx + 0x84]
jbe 0x10167fdf
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov edi, dword [esp + 0x28]
jmp 0x10167fa5
cmp ebp, eax
jge 0x1016801b
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
jae 0x10168037
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
test byte [edx + ebx], al
je 0x10168017
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x10167ff0
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016ec99
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016805d
cmp esi, dword [ebx + 0x84]
jbe 0x1016805d
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov edi, dword [esp + 0x28]
jmp 0x1016801f
mov edi, dword [esp + 0x18]
movzx ecx, byte [edi + 1]
lea ebp, [edi + 3]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x44], ebp
add edi, ecx
mov dword [esp + 0x18], edi
mov dl, byte [edi]
movzx ecx, dl
add ecx, 0xffffff9e
cmp ecx, 0xb
ja case.default.0x10168099
movzx eax, byte [ecx + 0x10171bd8]
jmp dword [eax*4 + 0x10171bd0]
inc edi
mov dword [esp + 0x18], edi
cmp ecx, 8
jae 0x101680b5
mov eax, ecx
and eax, 1
mov dword [esp + 0x3c], eax
jmp 0x101680bd
mov dword [esp + 0x40], 1
movsx eax, byte [ecx + 0x101c1bec]
movsx ebx, byte [ecx + 0x101c1be0]
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [esp + 0x20], eax
jmp 0x10168120
movzx ebx, byte [edi + 1]
xor eax, eax
cmp dl, 0x69
sete al
mov dword [esp + 0x3c], eax
xor eax, eax
cmp dl, 0x6d
movzx edx, byte [edi + 3]
sete al
shl ebx, 8
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 2]
or ebx, eax
shl edx, 8
movzx eax, byte [edi + 4]
or edx, eax
mov eax, bind
cmove edx, eax
add edi, 5
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], edi
mov ecx, ebx
mov edi, 1
cmp ecx, edi
jl 0x1016827f
jmp 0x10168140
mov ebx, 1
mov dword [esp + 0x20], 1
mov edi, ebx
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ec01
movzx edx, byte [esi]
inc esi
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], esi
test ecx, ecx
je 0x10168263
cmp edx, 0xc0
jb 0x10168263
test dl, 0x20
jne 0x10168186
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016825f
test dl, 0x10
jne 0x101681b1
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ecx, dword [esp + 0x24]
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016825f
test dl, 8
jne 0x101681e8
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ecx, dword [esp + 0x24]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1016825f
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10168224
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1016825f
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
push ecx
push ebp
push edx
call fcn.10173fd0
add esp, 0xc
test eax, eax
je case.default.0x10166bdb
inc edi
cmp edi, ebx
jle 0x10168140
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
cmp ebx, eax
je 0x101649ae
cmp dword [esp + 0x3c], 0
jne 0x1016efa3
mov ebp, esi
cmp ebx, eax
jge 0x101683de
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x101683bc
mov ecx, dword [esp + 0x24]
mov edi, 1
movzx edx, byte [esi]
test ecx, ecx
je 0x10168397
cmp edx, 0xc0
jb 0x10168397
test dl, 0x20
jne 0x101682f3
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x1016838f
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x10168315
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016838b
and eax, 0x3f
test dl, 8
jne 0x10168335
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016838b
test dl, 4
jne 0x1016835e
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016838b
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
mov ecx, dword [esp + 0x24]
and eax, 0x3f
shl edx, 6
or edx, eax
push ecx
push dword [esp + 0x48]
push edx
call fcn.10173fd0
add esp, 0xc
test eax, eax
je 0x101683de
add esi, edi
inc ebx
mov dword [esp + 0x14], esi
cmp ebx, dword [esp + 0x20]
jl 0x101682b0
jmp 0x101683de
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x101683de
cmp esi, dword [ecx + 0x84]
jbe 0x101683de
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x101713f5
cmp dword [esp + 0x40], 0
mov ebx, dword [esp + 0x10]
je 0x1016ef20
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
test ebp, ebp
je 0x1016847e
mov ebp, dword [esp + 0x18]
mov edx, 1
inc ebp
mov ecx, edx
movzx eax, byte [ebp]
cmp eax, 0xc0
jb 0x10168448
test al, 0x20
jne 0x10168422
lea edx, [ecx + 1]
jmp 0x10168446
test al, 0x10
jne 0x1016842d
mov edx, 3
jmp 0x10168446
test al, 8
jne 0x10168438
mov edx, 4
jmp 0x10168446
mov edx, 5
test al, 4
je 0x10168446
mov edx, 6
mov ecx, edx
mov edi, dword [ebx + 0x78]
mov eax, edi
sub eax, esi
cmp ecx, eax
jg 0x1016f139
mov cl, byte [ebp]
dec edx
mov al, byte [esi]
inc ebp
inc esi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], esi
cmp cl, al
jne case.default.0x10166bdb
test edx, edx
jg 0x10168457
mov edx, ebp
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov eax, dword [ebx + 0x78]
sub eax, esi
cmp eax, 1
jl 0x1016eaf1
mov edx, dword [esp + 0x18]
mov al, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp byte [edx + 1], al
jne case.default.0x10166bdb
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x101649e0
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
test ebp, ebp
je 0x10168712
mov ebp, dword [esp + 0x18]
mov edi, 1
inc ebp
mov dword [esp + 0x18], ebp
movzx ebx, byte [ebp]
mov eax, ebx
cmp ebx, 0xc0
jb 0x10168596
movzx ecx, byte [ebp + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x101684fb
and eax, 0x1f
mov ebx, ecx
shl eax, 6
mov edi, 2
jmp 0x10168592
movzx eax, byte [ebp + 2]
test bl, 0x10
jne 0x10168516
and ebx, 0xf
mov edi, 3
shl ebx, 6
or ebx, ecx
jmp 0x1016858c
and eax, 0x3f
test bl, 8
jne 0x10168536
and ebx, 7
mov edi, 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [ebp + 3]
jmp 0x1016858c
test bl, 4
jne 0x1016855f
and ebx, 3
mov edi, 5
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [ebp + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ebp + 4]
jmp 0x1016858c
and ebx, edi
mov edi, 6
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [ebp + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ebp + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ebp + 5]
shl ebx, 6
and eax, 0x3f
or ebx, eax
mov eax, ebx
movzx ecx, byte [esi]
cmp eax, 0x80
jae 0x101685c6
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
mov al, byte [ebx + edx]
cmp al, byte [ecx + edx]
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
inc edx
inc esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jmp 0x101649d2
inc esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x14], esi
mov edx, ecx
cmp ecx, 0xc0
jb 0x101686b8
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101685f6
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101686b2
test cl, 0x10
jne 0x10168617
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x101686b2
test cl, 8
jne 0x10168641
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x101686b2
test cl, 4
jne 0x10168677
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x101686b2
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edx, ecx
add ebp, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x24]
cmp ebx, ecx
je 0x101649c4
mov eax, ebx
test eax, eax
jns 0x101686d7
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x101c4388]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x101686f2
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x101c6588]
mov eax, dword [eax*8 + 0x101c2d0c]
add eax, ebx
cmp edx, eax
jne case.default.0x10166bdb
jmp 0x101649ce
mov eax, dword [esp + 0x18]
mov edx, dword [ebx + 0x38]
movzx ecx, byte [esi]
movzx eax, byte [eax + 1]
mov al, byte [eax + edx]
cmp al, byte [ecx + edx]
jne case.default.0x10166bdb
mov edx, dword [esp + 0x18]
inc esi
add edx, 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov eax, dword [esp + 0x18]
movzx edi, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x18]
add eax, 3
mov ebp, edi
mov dword [esp + 0x20], ebp
mov ecx, eax
mov dword [esp + 0x18], eax
jmp 0x10168851
mov dword [esp + 0x40], 1
mov eax, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x20], ebp
movzx edi, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edi, 8
or edi, eax
mov dword [esp + 0x28], edi
cmp cl, 0x28
je 0x1016879b
mov dword [esp + 0x3c], ebp
cmp cl, 0x35
jne 0x101687a3
mov dword [esp + 0x3c], 1
mov eax, dword [esp + 0x18]
add eax, 3
mov dword [esp + 0x18], eax
mov ecx, eax
jmp 0x10168855
mov eax, dword [esp + 0x18]
xor ebp, ebp
inc eax
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], ebp
mov ecx, eax
mov dword [esp + 0x18], eax
jmp 0x1016884c
mov eax, dword [esp + 0x18]
mov ebp, 1
inc eax
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], ebp
mov ecx, eax
mov dword [esp + 0x18], eax
jmp 0x1016884c
mov eax, dword [esp + 0x18]
xor ebp, ebp
inc eax
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], ebp
mov ecx, eax
mov dword [esp + 0x18], eax
lea edi, [ebp + 1]
jmp 0x10168851
mov ecx, dword [esp + 0x18]
cmp edx, 0x2e
mov ebx, edx
sbb eax, eax
inc ecx
and eax, 0xfffffff3
mov dword [esp + 0x18], ecx
add eax, 0x2e
sub ebx, eax
mov eax, ebx
and ebx, 1
mov dword [esp + 0x3c], ebx
movsx edi, byte [eax + 0x101c1bec]
movsx ebp, byte [eax + 0x101c1be0]
mov eax, ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], edi
test edi, edi
jne 0x10168855
mov edi, bind
mov dword [esp + 0x28], edi
cmp dword [esp + 0x24], 0
movzx ebx, byte [eax]
je 0x10168cea
mov dword [esp + 0x44], 1
mov dword [esp + 0x44], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], ebx
cmp ebx, 0xc0
jb 0x10168ce7
movzx ecx, byte [eax + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x101688af
and ebx, 0x1f
mov dword [esp + 0x30], 2
shl ebx, 6
or ecx, ebx
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x10168975
movzx eax, byte [eax + 2]
test bl, 0x10
jne 0x101688d2
and ebx, 0xf
mov dword [esp + 0x30], 3
shl ebx, 6
mov edi, 3
or ecx, ebx
jmp 0x10168969
and eax, 0x3f
test bl, 8
jne 0x101688fe
and ebx, 7
mov dword [esp + 0x30], 4
shl ebx, 6
mov edi, 4
or ecx, ebx
shl ecx, 6
or ecx, eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 3]
jmp 0x10168969
mov edx, dword [esp + 0x18]
test bl, 4
jne 0x10168933
and ebx, 3
mov dword [esp + 0x30], 5
shl ebx, 6
mov edi, 5
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x10168969
and ebx, 1
mov dword [esp + 0x30], 6
shl ebx, 6
mov edi, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
add dword [esp + 0x18], edi
cmp dword [esp + 0x38], 0x2e
mov edx, ecx
mov dword [esp + 0x20], ecx
mov ebx, ecx
mov edi, ecx
jb 0x101689d3
mov eax, ecx
test eax, eax
jns 0x1016898f
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x101689a9
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
mov eax, dword [eax*8 + 0x101c2d0c]
add eax, edi
cmp eax, ebx
je 0x101689d3
lea ecx, [esp + 0x158]
push ecx
push eax
call fcn.10173c90
add esp, 8
jmp 0x101689d5
xor eax, eax
mov ebx, 1
mov dword [esp + 0x20], eax
cmp ebp, ebx
jl 0x10168af8
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
mov ecx, dword [eax + 0x78]
mov eax, ecx
sub eax, edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], eax
nop dword [eax]
cmp esi, eax
ja 0x10168a62
mov edx, dword [esp + 0x50]
mov ecx, esi
sub edi, 4
jb 0x10168a21
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10168a26
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10168a10
cmp edi, 0xfffffffc
je 0x10168a53
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10168a5e
cmp edi, 0xfffffffd
je 0x10168a53
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10168a5e
cmp edi, 0xfffffffe
je 0x10168a53
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10168a5e
cmp edi, 0xffffffff
je 0x10168a53
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10168a5e
mov edi, dword [esp + 0x30]
add esi, edi
jmp 0x10168ae3
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
test edi, edi
jle 0x1016f154
mov eax, ecx
sub eax, edi
cmp esi, eax
ja 0x1016f154
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x10168a99
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10168a9e
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10168a88
cmp edi, 0xfffffffc
je 0x10168adb
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016f154
cmp edi, 0xfffffffd
je 0x10168adb
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016f154
cmp edi, 0xfffffffe
je 0x10168adb
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016f154
cmp edi, 0xffffffff
je 0x10168adb
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016f154
add esi, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
inc ebx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], esi
cmp ebx, ebp
jle 0x10168a00
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x101649ae
cmp dword [esp + 0x3c], 0
jne 0x1016f174
mov ebx, esi
mov dword [esp + 0x3c], ebx
cmp ebp, eax
jge 0x10168c3a
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
mov ecx, dword [eax + 0x78]
mov eax, ecx
sub eax, ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], eax
cmp esi, eax
ja 0x10168b9e
mov edx, dword [esp + 0x50]
mov edi, ebx
mov ecx, esi
sub edi, 4
jb 0x10168b61
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10168b66
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10168b50
cmp edi, 0xfffffffc
je 0x10168b93
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10168b9a
cmp edi, 0xfffffffd
je 0x10168b93
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10168b9a
cmp edi, 0xfffffffe
je 0x10168b93
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10168b9a
cmp edi, 0xffffffff
je 0x10168b93
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10168b9a
add esi, ebx
jmp 0x10168c1f
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
test ebx, ebx
jle 0x10168cb3
mov eax, ecx
sub eax, ebx
cmp esi, eax
ja 0x10168cb3
mov edi, ebx
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x10168bd7
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10168bdc
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10168bc6
cmp edi, 0xfffffffc
je 0x10168c19
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10168cb3
cmp edi, 0xfffffffd
je 0x10168c19
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10168cb3
cmp edi, 0xfffffffe
je 0x10168c19
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10168cb3
cmp edi, 0xffffffff
je 0x10168c19
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10168cb3
add esi, ebx
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
inc ebp
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10168b38
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
jne 0x101649ce
cmp esi, ebx
jbe 0x1016e244
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x10168ca0
nop dword [eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x10168c90
mov dword [esp + 0x14], esi
cmp ecx, ebx
mov ecx, dword [esp + 0x10]
ja 0x10168c51
mov edx, dword [esp + 0x18]
mov edi, ecx
jmp 0x1016e24c
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x10168cde
cmp esi, dword [ecx + 0x78]
jb 0x10168cde
cmp esi, dword [ecx + 0x84]
jbe 0x10168cde
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov ebx, dword [esp + 0x3c]
jmp 0x10168c3e
inc eax
jmp 0x10168ced
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
mov ecx, 1
cmp edx, 0x2e
jb 0x10168dbf
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x3c]
movzx edi, byte [eax + ebx]
cmp ebp, 1
jl 0x10168d3c
mov edx, dword [ecx + 0x78]
mov ecx, 1
cmp esi, edx
jae 0x1016ebfd
movzx eax, byte [esi]
cmp ebx, eax
je 0x10168d2e
cmp edi, eax
jne case.default.0x10166bdb
inc esi
inc ecx
mov dword [esp + 0x14], esi
cmp ecx, ebp
jle 0x10168d17
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
cmp ebp, eax
je 0x101649ce
cmp dword [esp + 0x3c], 0
jne 0x1016f2dd
mov edx, dword [esp + 0x20]
mov ebp, esi
cmp edx, eax
jge 0x10168d7b
mov ecx, dword [ecx + 0x78]
cmp esi, ecx
jae 0x10168d97
movzx eax, byte [esi]
cmp ebx, eax
je 0x10168d6f
cmp edi, eax
jne 0x10168d7b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, dword [esp + 0x28]
jl 0x10168d60
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e204
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168d7f
cmp esi, dword [ebx + 0x84]
jbe 0x10168d7f
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
jmp 0x10168d7f
cmp ebp, 1
jl 0x10168ded
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x78]
nop dword [eax + eax]
cmp esi, edx
jae 0x1016ebfd
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp ebx, eax
jne case.default.0x10166bdb
inc ecx
cmp ecx, ebp
jle 0x10168dd0
cmp ebp, edi
je 0x101649ce
cmp dword [esp + 0x3c], 0
jne 0x1016f36e
mov edx, dword [esp + 0x28]
mov edi, esi
cmp ebp, edx
jge 0x10168e26
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10168e42
movzx eax, byte [esi]
cmp ebx, eax
jne 0x10168e26
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x10168e11
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e267
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168e2a
cmp esi, dword [ebx + 0x84]
jbe 0x10168e2a
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
jmp 0x10168e2a
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
mov eax, dword [esp + 0x18]
test ebp, ebp
je 0x101690ef
movzx ebx, byte [eax + 1]
lea ecx, [eax + 2]
mov dword [esp + 0x18], ecx
cmp ebx, 0xc0
jb 0x10168f72
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 0x20
jne 0x10168eaf
and ebx, 0x1f
shl ebx, 6
or ebx, eax
inc ecx
jmp 0x10168f6e
test bl, 0x10
jne 0x10168ed0
and ebx, 0xf
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add ecx, 2
jmp 0x10168f6e
test bl, 8
jne 0x10168efd
and ebx, 7
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add ecx, 3
jmp 0x10168f6e
test bl, 4
jne 0x10168f33
and ebx, 3
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add ecx, 4
jmp 0x10168f6e
and ebx, 1
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 4]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add ecx, 5
mov dword [esp + 0x18], ecx
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], edx
mov ecx, edx
mov dword [esp + 0x14], esi
mov edi, edx
mov ebp, edx
mov eax, edx
cmp edx, 0xc0
jb 0x10169076
movzx eax, byte [esi]
and eax, 0x3f
test dl, 0x20
jne 0x10168fab
and edx, 0x1f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016906a
test dl, 0x10
jne 0x10168fcc
and edx, 0xf
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 2
jmp 0x1016906a
test dl, 8
jne 0x10168ff9
and edx, 7
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1016906a
test dl, 4
jne 0x1016902f
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1016906a
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov ecx, edx
mov edi, edx
mov ebp, edx
mov eax, edx
cmp dword [esp + 0x38], 0x1f
jne 0x10169096
cmp ebx, eax
je case.default.0x10166bdb
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
cmp ebx, 0x7f
jbe 0x101690d4
mov eax, ebx
test eax, eax
jns 0x101690a4
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x101c4388]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x101690bf
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x101c6588]
mov eax, dword [eax*8 + 0x101c2d0c]
add eax, ebx
jmp 0x101690e3
mov eax, dword [esp + 0x10]
mov edx, ecx
mov edi, ebp
mov eax, dword [eax + 0x3c]
movzx eax, byte [eax + ebx]
cmp ebx, edx
je case.default.0x10166bdb
cmp eax, edi
jmp 0x1016907f
movzx edx, byte [esi]
inc esi
movzx ecx, byte [eax + 1]
mov dword [esp + 0x14], esi
cmp ecx, edx
je case.default.0x10166bdb
cmp dword [esp + 0x38], 0x20
jne 0x10169119
mov eax, dword [ebx + 0x3c]
movzx eax, byte [eax + ecx]
cmp eax, edx
je case.default.0x10166bdb
mov edx, dword [esp + 0x18]
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x101649e0
mov ebx, dword [esp + 0x18]
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, 3
mov ebp, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], ebp
mov ecx, ebx
jmp 0x10169248
mov ebx, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x20], ebp
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
mov dword [esp + 0x28], edx
cmp cl, 0x42
je 0x10169177
mov dword [esp + 0x3c], ebp
cmp cl, 0x4f
jne 0x1016917f
mov dword [esp + 0x3c], 1
add ebx, 3
mov ecx, ebx
jmp 0x10169248
mov ebx, dword [esp + 0x18]
xor ebp, ebp
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], ebp
mov ecx, ebx
jmp 0x10169240
mov ebx, dword [esp + 0x18]
mov ebp, 1
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], ebp
mov ecx, ebx
jmp 0x10169240
mov ebx, dword [esp + 0x18]
xor ebp, ebp
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], ebp
mov ecx, ebx
mov dword [esp + 0x28], 1
jmp 0x10169248
mov ebx, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], ebp
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, 3
mov dword [esp + 0x28], ecx
mov ecx, ebx
jmp 0x10169248
mov ebx, dword [esp + 0x18]
cmp edx, 0x48
sbb eax, eax
inc ebx
and eax, 0xfffffff3
mov ecx, ebx
add eax, 0x48
sub edx, eax
mov eax, edx
and edx, 1
mov dword [esp + 0x3c], edx
movsx ebp, byte [eax + 0x101c1be0]
movsx eax, byte [eax + 0x101c1bec]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], eax
test eax, eax
jne 0x10169248
mov dword [esp + 0x28], bind
cmp dword [esp + 0x24], 0
lea eax, [ecx + 1]
movzx ebx, byte [ebx]
mov dword [esp + 0x18], eax
mov ecx, ebx
mov dword [esp + 0x30], ebx
mov eax, ebx
mov edi, ebx
mov edx, ebx
je 0x1016938d
cmp ebx, 0xc0
jb 0x1016938d
test bl, 0x20
jne 0x10169298
mov edx, dword [esp + 0x18]
and eax, 0x1f
shl eax, 6
movzx ecx, byte [edx]
and ecx, 0x3f
mov ebx, ecx
or ebx, eax
inc edx
mov dword [esp + 0x18], edx
jmp 0x10169381
test bl, 0x10
jne 0x101692c7
mov edx, dword [esp + 0x18]
and ebx, 0xf
shl ebx, 6
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
or ebx, ecx
and eax, 0x3f
shl ebx, 6
or ebx, eax
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x10169381
test bl, 8
jne 0x10169302
mov edx, dword [esp + 0x18]
and ebx, 7
shl ebx, 6
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
or ebx, ecx
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x10169381
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 4
jne 0x10169342
and ebx, 3
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add ecx, 4
jmp 0x1016937d
and ebx, 1
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [ecx + 4]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add ecx, 5
mov dword [esp + 0x18], ecx
mov eax, ebx
mov dword [esp + 0x30], ebx
mov ecx, eax
mov edi, eax
mov edx, eax
cmp dword [esp + 0x38], 0x48
jb 0x1016972f
cmp dword [esp + 0x24], 0
je 0x101693d7
cmp edx, 0x7f
jbe 0x101693d7
shr eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x101693be
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx eax, word [eax*2 + 0x101c6588]
mov edx, dword [eax*8 + 0x101c2d0c]
add edx, edi
jmp 0x101693e2
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x3c]
movzx edx, byte [eax + ebx]
cmp dword [esp + 0x24], 0
mov edi, 1
mov dword [esp + 0x38], edx
je 0x10169512
cmp ebp, edi
jl 0x10169545
nop
cmp esi, dword [ecx + 0x78]
jae 0x1016ec01
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], edx
mov eax, edx
mov dword [esp + 0x14], esi
cmp edx, 0xc0
jb 0x101694f3
test dl, 0x20
jne 0x1016943c
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x101694ed
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x10169463
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x101694e9
test dl, 8
jne 0x10169486
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x101694e9
test dl, 4
jne 0x101694b5
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x101694e9
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
mov eax, edx
cmp ebx, edx
je case.default.0x10166bdb
mov edx, dword [esp + 0x38]
cmp edx, eax
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x10169400
jmp 0x10169545
cmp ebp, 1
jl 0x10169545
mov ecx, dword [ecx + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x1016ebfd
movzx eax, byte [esi]
cmp ebx, eax
je case.default.0x10166bdb
cmp edx, eax
je case.default.0x10166bdb
inc esi
inc edi
mov dword [esp + 0x14], esi
cmp edi, ebp
jle 0x10169520
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x101649c0
cmp dword [esp + 0x3c], 0
jne 0x1016f3f0
cmp dword [esp + 0x24], 0
mov edi, esi
mov dword [esp + 0x20], edi
je 0x101696bf
cmp ebp, eax
jge 0x10169677
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
jae 0x10169693
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x10169658
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101695bc
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x10169654
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101695d7
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016964e
and eax, 0x3f
test dl, 8
jne 0x101695f7
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016964e
test dl, 4
jne 0x10169620
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016964e
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp ebx, edx
je 0x10169673
cmp dword [esp + 0x38], eax
je 0x10169673
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10169580
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e2a6
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101696b9
cmp esi, dword [ebx + 0x84]
jbe 0x101696b9
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov edi, dword [esp + 0x20]
jmp 0x1016967b
cmp ebp, eax
jge 0x101696eb
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x10169707
movzx eax, byte [esi]
cmp ebx, eax
je 0x101696eb
cmp edx, eax
je 0x101696eb
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x101696d0
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e309
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101696ef
cmp esi, dword [ebx + 0x84]
jbe 0x101696ef
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
jmp 0x101696ef
mov edx, dword [esp + 0x24]
mov ecx, 1
mov dword [esp + 0x38], ecx
test edx, edx
je 0x101698a0
mov edi, dword [esp + 0x30]
cmp ebp, ecx
jl 0x101698d5
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x1016f575
movzx ebx, byte [esi]
inc esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x14], esi
cmp ebx, 0xc0
jb 0x10169889
mov al, byte [esi]
test bl, 0x20
jne 0x10169794
and ebx, 0x1f
movzx eax, al
and eax, 0x3f
shl ebx, 6
inc esi
or ebx, eax
jmp 0x10169885
lea ecx, [esi + 1]
test bl, 0x10
jne 0x101697bd
and ebx, 0xf
movzx edx, al
movzx eax, byte [ecx]
and edx, 0x3f
shl ebx, 6
and eax, 0x3f
or ebx, edx
add esi, 2
shl ebx, 6
or ebx, eax
jmp 0x1016987d
lea edx, [esi + 2]
test bl, 8
jne 0x101697f1
and ebx, 7
movzx edi, al
movzx eax, byte [ecx]
and edi, 0x3f
shl ebx, 6
and eax, 0x3f
or ebx, edi
add esi, 3
shl ebx, 6
or ebx, eax
movzx eax, byte [edx]
shl ebx, 6
and eax, 0x3f
or ebx, eax
jmp 0x10169879
lea edi, [esi + 3]
test bl, 4
jne 0x10169831
movzx ebx, al
add esi, 4
mov eax, dword [esp + 0x50]
and ebx, 0x3f
and eax, 3
shl eax, 6
or ebx, eax
movzx eax, byte [ecx]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edi]
shl ebx, 6
and eax, 0x3f
or ebx, eax
jmp 0x10169879
movzx ebp, al
lea ebx, [esi + 4]
mov eax, dword [esp + 0x50]
and ebp, 0x3f
movzx ebx, byte [ebx]
and eax, 1
shl eax, 6
and ebx, 0x3f
or ebp, eax
add esi, 5
movzx eax, byte [ecx]
shl ebp, 6
and eax, 0x3f
or ebp, eax
movzx eax, byte [edx]
shl ebp, 6
and eax, 0x3f
or ebp, eax
movzx eax, byte [edi]
shl ebp, 6
and eax, 0x3f
or ebp, eax
shl ebp, 6
or ebx, ebp
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], esi
cmp edi, ebx
je case.default.0x10166bdb
inc ecx
mov dword [esp + 0x38], ecx
cmp ecx, ebp
jle 0x10169754
jmp 0x101698d1
cmp ebp, 1
jl 0x10169947
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x1016eefa
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp ebx, eax
je case.default.0x10166bdb
inc ecx
cmp ecx, ebp
jle 0x101698b0
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp ebp, eax
je 0x101649ce
cmp dword [esp + 0x3c], 0
jne 0x1016f601
mov ebx, esi
mov dword [esp + 0x20], ebx
test edx, edx
je 0x10169aae
cmp ebp, eax
jge 0x10169a06
mov ebx, dword [esp + 0x30]
nop word [eax + eax]
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x10169a83
movzx edx, byte [esi]
mov edi, 1
cmp edx, 0xc0
jb 0x101699ef
test dl, 0x20
jne 0x1016994d
movzx eax, byte [esi + 1]
mov edi, 2
and edx, 0x1f
jmp 0x101699e3
mov edi, dword [esp + 0x30]
jmp 0x101698d5
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x1016996c
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x101699e3
and eax, 0x3f
test dl, 8
jne 0x1016998c
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x101699e3
test dl, 4
jne 0x101699b5
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x101699e3
and edx, 1
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, dword [esp + 0x28]
cmp ebx, edx
je 0x10169a02
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, eax
jl 0x10169910
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
jne 0x101649ce
cmp esi, ebx
jbe 0x1016e244
nop dword [eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push edx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x10169a70
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x10169a60
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x10]
cmp ecx, ebx
ja 0x10169a20
mov edi, edx
mov edx, dword [esp + 0x18]
jmp 0x1016e24c
mov eax, dword [edx + 0x88]
test eax, eax
je 0x10169aa5
cmp esi, dword [edx + 0x84]
jbe 0x10169aa5
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov ebx, dword [esp + 0x20]
jmp 0x10169a0a
mov edx, dword [esp + 0x10]
cmp ebp, eax
jge 0x10169afb
mov ecx, dword [edx + 0x78]
nop dword [eax]
cmp esi, ecx
jae 0x10169ad9
movzx eax, byte [esi]
cmp edi, eax
je 0x10169afb
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10169ac0
jmp 0x10169afb
mov eax, dword [edx + 0x88]
test eax, eax
je 0x10169afb
cmp esi, dword [edx + 0x84]
jbe 0x10169afb
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x101713f5
cmp dword [esp + 0x40], 0
jne 0x101649ce
cmp esi, ebx
je 0x1016e244
nop
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push edx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edx, dword [esp + 0x10]
dec esi
mov dword [esp + 0x14], esi
cmp esi, ebx
jne 0x10169b10
mov edi, edx
mov edx, dword [esp + 0x18]
jmp 0x1016e24c
mov edi, dword [esp + 0x18]
mov dword [esp + 0x3c], 1
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, 3
mov ebp, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], ebp
mov ecx, edi
jmp 0x10169c63
mov edi, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x38], ebp
movzx edx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl edx, 8
or edx, eax
xor eax, eax
cmp cl, 0x5c
mov dword [esp + 0x28], edx
sete al
add edi, 3
mov dword [esp + 0x3c], eax
mov ecx, edi
jmp 0x10169c63
mov edi, dword [esp + 0x18]
xor ebp, ebp
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], ebp
mov ecx, edi
jmp 0x10169c5b
mov edi, dword [esp + 0x18]
mov ebp, 1
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], ebp
mov ecx, edi
jmp 0x10169c5b
mov edi, dword [esp + 0x18]
xor ebp, ebp
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], ebp
mov ecx, edi
mov dword [esp + 0x28], 1
jmp 0x10169c63
mov edi, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], ebp
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, 3
mov dword [esp + 0x28], ecx
mov ecx, edi
jmp 0x10169c63
mov edi, dword [esp + 0x18]
add edx, 0xffffffab
mov eax, edx
inc edi
and edx, 1
mov ecx, edi
mov dword [esp + 0x3c], edx
movsx ebp, byte [eax + 0x101c1be0]
movsx eax, byte [eax + 0x101c1bec]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x28], eax
test eax, eax
jne 0x10169c63
mov dword [esp + 0x28], bind
movzx eax, byte [edi]
lea edi, [ecx + 1]
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], edi
cmp eax, 0x10
je 0x10169c84
cmp eax, 0xf
je 0x10169c84
or edx, 0xffffffff
or eax, edx
or ecx, edx
jmp 0x10169ca6
movzx edx, byte [edi]
xor ecx, ecx
cmp eax, 0xf
lea eax, [edi + 1]
sete cl
mov dword [esp + 0x48], ecx
movzx ecx, byte [eax]
inc eax
mov dword [esp + 0x4c], ecx
mov ecx, edx
mov dword [esp + 0x18], eax
mov eax, edx
mov dword [esp + 0x50], edx
test ebp, ebp
jle 0x1016a891
test eax, eax
js 0x1016aba1
cmp ecx, 0xa
ja case.default.0x1016742a
jmp dword [edx*4 + 0x10171be4]
cmp dword [esp + 0x48], 0
jne case.default.0x10166bdb
mov ecx, 1
cmp ebp, ecx
jl 0x1016a891
mov edx, dword [ebx + 0x78]
mov edi, dword [esp + 0x24]
nop dword [eax]
cmp esi, edx
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
test edi, edi
je 0x10169d34
cmp eax, 0xc0
jb 0x10169d34
test al, 0x20
jne 0x10169d12
inc esi
jmp 0x10169d30
test al, 0x10
jne 0x10169d1b
add esi, 2
jmp 0x10169d30
test al, 8
jne 0x10169d24
add esi, 3
jmp 0x10169d30
test al, 4
jne 0x10169d2d
add esi, 4
jmp 0x10169d30
add esi, 5
mov dword [esp + 0x14], esi
inc ecx
cmp ecx, ebp
jle 0x10169cf0
jmp 0x1016a891
mov edi, 1
cmp ebp, edi
jl 0x1016a891
mov ebx, dword [ebx + 0x78]
nop
cmp esi, ebx
jae 0x1016ebfd
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10169e69
cmp eax, 0xc0
jb 0x10169e69
test al, 0x20
jne 0x10169d92
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10169e63
test al, 0x10
jne 0x10169db8
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10169e63
test al, 8
jne 0x10169dea
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10169e63
test al, 4
movzx eax, byte [esi]
jne 0x10169e25
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10169e63
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x10169e83
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp eax, 9
je 0x10169ea8
cmp eax, 5
je 0x10169ea8
cmp eax, 8
je 0x10169ea8
xor eax, eax
jmp 0x10169ead
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x10169d50
jmp 0x1016a891
mov edi, 1
cmp ebp, edi
jl 0x1016a891
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ebfd
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10169fee
cmp eax, 0xc0
jb 0x10169fee
test al, 0x20
jne 0x10169f17
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10169fe8
test al, 0x10
jne 0x10169f3d
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10169fe8
test al, 8
jne 0x10169f6f
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10169fe8
test al, 4
movzx eax, byte [esi]
jne 0x10169faa
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10169fe8
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016a008
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x4c]
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp dword [eax*4 + 0x101c26a0], edx
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x10169ed5
jmp 0x1016a891
mov edi, 1
cmp ebp, edi
jl 0x1016a891
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ebfd
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x1016a16d
cmp eax, 0xc0
jb 0x1016a16d
test al, 0x20
jne 0x1016a094
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016a167
test al, 0x10
jne 0x1016a0ba
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016a167
test al, 8
jne 0x1016a0ec
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016a167
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016a129
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016a167
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016a187
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x1016a052
jmp 0x1016a891
mov edi, 1
cmp ebp, edi
jl 0x1016a891
mov ebx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, ebx
jae 0x1016ebfd
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x1016a2eb
cmp eax, 0xc0
jb 0x1016a2eb
test al, 0x20
jne 0x1016a212
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016a2e5
test al, 0x10
jne 0x1016a238
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016a2e5
test al, 8
jne 0x1016a26a
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016a2e5
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016a2a7
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016a2e5
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016a305
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d08]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x1016a1d0
jmp 0x1016a891
mov edi, 1
cmp ebp, edi
jl 0x1016a891
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ebfd
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x1016a461
cmp eax, 0xc0
jb 0x1016a461
test al, 0x20
jne 0x1016a38a
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016a45b
test al, 0x10
jne 0x1016a3b0
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016a45b
test al, 8
jne 0x1016a3e2
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016a45b
test al, 4
movzx eax, byte [esi]
jne 0x1016a41d
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016a45b
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016a47b
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x1016a4a2
cmp eax, 3
je 0x1016a4a2
xor eax, eax
jmp 0x1016a4a7
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x1016a348
jmp 0x1016a891
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016a891
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov eax, ecx
mov dword [esp + 0x14], esi
mov edx, ecx
mov edi, ecx
mov dword [esp + 0x20], ecx
mov ebx, ecx
mov ebp, ecx
je 0x1016a5f1
mov dword [esp + 0x20], ecx
cmp ecx, 0xc0
jb 0x1016a5f1
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016a523
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016a5df
test cl, 0x10
jne 0x1016a544
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016a5df
test cl, 8
jne 0x1016a56e
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016a5df
test cl, 4
jne 0x1016a5a4
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016a5df
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
mov dword [esp + 0x20], ecx
mov edi, ecx
mov ebx, ecx
mov ebp, ecx
cmp eax, 0x20
ja 0x1016a60e
cmp edx, 0x20
je case.0x1016a6e8.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x1016a6e8.8203
jmp dword [eax*4 + 0x10171c10]
cmp edi, 0x2000
ja 0x1016a6c0
cmp ebx, 0x2000
je case.0x1016a6e8.8193
cmp ecx, 0x1680
ja 0x1016a6b8
je case.0x1016a6e8.8193
mov eax, ecx
sub eax, 0x85
je case.0x1016a6e8.8193
sub eax, 0x1b
je case.0x1016a6e8.8193
mov eax, ecx
test eax, eax
jns 0x1016a657
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016a671
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp dword [eax*4 + 0x101c26a0], 6
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166bdb
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
inc eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x1016a4d0
jmp 0x1016a891
cmp ecx, 0x180e
jmp 0x1016a648
cmp ebp, 0x3000
ja case.0x1016a6e8.8203
cmp dword [esp + 0x20], 0x3000
je case.0x1016a6e8.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x1016a6e8.8203
movzx eax, byte [eax + 0x10171c2c]
jmp dword [eax*4 + 0x10171c24]
cmp dword [esp + 0x48], 0
jne case.default.0x10166bdb
jmp 0x1016a69a
mov ebx, 1
cmp ebp, ebx
jl 0x1016a891
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x1016ebfd
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
mov edi, eax
je 0x1016a82d
cmp eax, 0xc0
jb 0x1016a82d
test al, 0x20
jne 0x1016a754
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016a825
test al, 0x10
jne 0x1016a77a
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016a825
test al, 8
jne 0x1016a7ac
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016a825
test al, 4
movzx eax, byte [esi]
jne 0x1016a7e7
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016a825
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edx, ecx
mov edi, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016a847
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x1016a873
cmp eax, 3
je 0x1016a873
cmp edi, 0x5f
je 0x1016a873
xor eax, eax
jmp 0x1016a878
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166bdb
inc ebx
cmp ebx, dword [esp + 0x38]
jle 0x1016a710
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, edx
je 0x101649c0
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x50]
jne 0x1016f812
mov edi, esi
mov dword [esp + 0x3c], edi
test eax, eax
js 0x1016cc59
cmp eax, 0xa
ja case.default.0x1016742a
jmp dword [eax*4 + 0x10171c8c]
mov edi, 1
cmp ebp, edi
jl 0x1016a891
mov ebx, dword [ebx + 0x78]
nop
cmp esi, ebx
jae 0x1016ebfd
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov edx, ecx
mov dword [esp + 0x14], esi
je 0x1016a9e4
cmp ecx, 0xc0
jb 0x1016a9e4
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016a922
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016a9de
test cl, 0x10
jne 0x1016a943
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016a9de
test cl, 8
jne 0x1016a96d
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016a9de
test cl, 4
jne 0x1016a9a3
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016a9de
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edx, ecx
mov eax, dword [esp + 0x4c]
cmp edx, dword [eax*4 + 0x101c2bc8]
lea eax, [eax*4 + 0x101c2bc8]
jb 0x1016aa0d
mov edx, dword [eax]
nop word [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x1016aa26
mov edx, dword [eax]
cmp ecx, edx
jae 0x1016aa00
cmp dword [esp + 0x48], 0
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x1016a8e0
jmp 0x1016a891
cmp dword [esp + 0x48], 0
jne case.default.0x10166bdb
jmp 0x1016aa18
mov ebp, 1
cmp dword [esp + 0x38], ebp
jl 0x1016a88d
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov eax, ecx
mov dword [esp + 0x14], esi
mov edx, ecx
mov edi, ecx
mov ebx, ecx
je 0x1016ab53
cmp ecx, 0xc0
jb 0x1016ab53
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016aa8b
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016ab47
test cl, 0x10
jne 0x1016aaac
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016ab47
test cl, 8
jne 0x1016aad6
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016ab47
test cl, 4
jne 0x1016ab0c
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016ab47
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
mov dword [esp + 0x14], esi
mov edx, eax
mov edi, eax
mov ebx, eax
cmp eax, 0x24
je 0x1016ab7e
cmp edx, 0x40
je 0x1016ab7e
cmp edi, 0x60
je 0x1016ab7e
cmp ebx, 0xa0
jb 0x1016ab72
cmp ecx, 0xd7ff
jbe 0x1016ab7e
cmp ecx, 0xe000
jae 0x1016ab7e
xor eax, eax
jmp 0x1016ab83
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166bdb
mov ebx, dword [esp + 0x10]
inc ebp
cmp ebp, dword [esp + 0x38]
jle 0x1016aa42
jmp 0x1016a88d
mov ecx, dword [esp + 0x30]
cmp ecx, 0x16
jne 0x1016ae8a
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016a895
nop
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
mov edi, esi
je 0x1016ace2
cmp eax, 0xc0
jb 0x1016ace2
test al, 0x20
jne 0x1016ac07
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016acda
test al, 0x10
jne 0x1016ac2d
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016acda
test al, 8
jne 0x1016ac5f
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016acda
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016ac9c
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016acda
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edi, esi
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016acfc
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx ebx, byte [eax*8 + 0x101c2d0a]
cmp edi, ebp
jae 0x1016ae45
nop word [eax + eax]
cmp dword [esp + 0x24], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x1016adf9
cmp edx, 0xc0
jb 0x1016adf9
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016ad61
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016adf5
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016ad79
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016adef
and eax, 0x3f
test dl, 8
jne 0x1016ad99
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016adef
test dl, 4
jne 0x1016adc2
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016adef
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
movzx eax, byte [edx + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016ae13
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx ecx, byte [eax*8 + 0x101c2d0a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101c2718], eax
je 0x1016ae41
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x1016ad20
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016ae70
cmp esi, dword [ebx + 0x78]
jb 0x1016ae70
cmp esi, dword [ebx + 0x84]
jbe 0x1016ae70
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
inc eax
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x1016abc0
jmp 0x1016a891
cmp dword [esp + 0x24], 0
lea eax, [ecx - 6]
je 0x1016ba19
cmp eax, 0xf
ja case.default.0x1016742a
jmp dword [eax*4 + 0x10171cb8]
mov edi, 1
cmp ebp, edi
jl 0x1016a895
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016eaf1
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016aeec
push dword [esp + 0x24]
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.10173960
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10166bdb
jmp 0x1016af11
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016af11
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016af11
cmp edx, 1
je case.default.0x10166bdb
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10166bdb
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016af46
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016af46
cmp dword [ebx + 0x18], 0
jne 0x1016af46
cmp dword [ebx + 0x1c], 2
jne 0x1016af46
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016af46
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x101713f5
mov edx, dword [ebx + 0x78]
inc esi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x1016af69
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016af65
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016af54
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x1016aeb5
jmp 0x1016a891
mov edi, 1
cmp ebp, edi
jl 0x1016a895
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ebfd
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x1016afb6
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016afb2
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016afa1
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x1016af87
jmp 0x1016a891
mov eax, dword [ebx + 0x78]
sub eax, ebp
cmp esi, eax
ja case.default.0x10166bdb
add esi, ebp
mov dword [esp + 0x14], esi
jmp 0x1016a895
mov ebx, 1
cmp ebp, ebx
jl 0x1016a895
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
nop dword [eax]
cmp esi, ebp
jae 0x1016ec01
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov edx, ecx
mov edi, esi
cmp ecx, 0xc0
jb 0x1016b0f8
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016b02f
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016b0ee
test cl, 0x10
jne 0x1016b050
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016b0ee
test cl, 8
jne 0x1016b07d
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016b0ee
test cl, 4
jne 0x1016b0b3
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016b0ee
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
mov edi, esi
cmp eax, 0x85
ja 0x1016b12e
cmp edx, 0x85
je case.0x1016b113.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x10166bdb
jmp dword [ecx*4 + 0x10171cf8]
cmp edi, ebp
jae case.0x1016b113.10
cmp byte [esi], 0xa
mov ecx, dword [esp + 0x10]
jne 0x1016b153
inc esi
mov dword [esp + 0x14], esi
jmp 0x1016b153
sub ecx, 0x2028
je case.0x1016b113.11
sub ecx, 1
jne case.default.0x10166bdb
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x68], 0
jne case.default.0x10166bdb
jmp 0x1016b153
mov ecx, dword [esp + 0x10]
inc ebx
cmp ebx, dword [esp + 0x38]
jle 0x1016aff0
jmp 0x1016a88d
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016a895
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov edi, ecx
mov ebp, ecx
mov edx, ecx
mov ebx, ecx
cmp ecx, 0xc0
jb 0x1016b285
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016b1b8
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016b277
test cl, 0x10
jne 0x1016b1d9
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016b277
test cl, 8
jne 0x1016b206
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016b277
test cl, 4
jne 0x1016b23c
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016b277
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
mov edi, ecx
mov ebp, ecx
mov edx, ecx
mov ebx, ecx
cmp eax, 0x2000
ja 0x1016b2f6
cmp edi, 0x2000
je case.default.0x10166bdb
cmp ebp, 0xa0
ja 0x1016b2dc
cmp ecx, 0xa0
je case.default.0x10166bdb
cmp ecx, 9
je case.default.0x10166bdb
cmp ecx, 0x20
je case.default.0x10166bdb
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
inc eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x1016b174
jmp 0x1016a891
cmp ecx, 0x1680
je case.default.0x10166bdb
cmp ecx, 0x180e
je case.default.0x10166bdb
jmp case.0x1016b31c.8203
cmp edx, 0x3000
ja case.0x1016b31c.8203
cmp ebx, 0x3000
je case.default.0x10166bdb
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x1016b31c.8203
movzx eax, byte [ecx + 0x10171d10]
jmp dword [eax*4 + 0x10171d08]
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016a895
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], edx
mov eax, edx
mov dword [esp + 0x14], esi
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x1016b42f
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x1016b37a
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x1016b421
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x1016b39b
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016b421
test dl, 8
jne 0x1016b3be
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1016b421
test dl, 4
jne 0x1016b3ed
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1016b421
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, edx
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
cmp eax, 0x2000
ja 0x1016b490
cmp edi, 0x2000
je case.0x1016b4ba.8193
cmp ebp, 0xa0
ja 0x1016b47a
cmp edx, 0xa0
je case.0x1016b4ba.8193
cmp edx, 9
je case.0x1016b4ba.8193
cmp edx, 0x20
jne case.default.0x10166bdb
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
inc eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x1016b334
jmp 0x1016a891
cmp edx, 0x1680
je case.0x1016b4ba.8193
cmp edx, 0x180e
jne case.default.0x10166bdb
jmp case.0x1016b4ba.8193
cmp ecx, 0x3000
ja case.default.0x10166bdb
cmp ebx, 0x3000
je case.0x1016b4ba.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x10166bdb
movzx eax, byte [edx + 0x10171d78]
jmp dword [eax*4 + 0x10171d70]
mov edi, 1
cmp ebp, edi
jl 0x1016a895
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ebfd
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], edx
mov eax, edx
mov dword [esp + 0x14], esi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016b5bf
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x1016b510
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x1016b5b7
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x1016b531
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016b5b7
test dl, 8
jne 0x1016b554
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1016b5b7
test dl, 4
jne 0x1016b583
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1016b5b7
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, edx
mov ecx, edx
cmp eax, 0x85
ja 0x1016b5e1
cmp ecx, 0x85
je case.default.0x10166bdb
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x1016b5da
jmp dword [edx*4 + 0x10171dd8]
sub edx, 0x2028
je case.default.0x10166bdb
sub edx, 1
je case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x1016b4d1
jmp 0x1016a891
mov edi, 1
cmp ebp, edi
jl 0x1016a895
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ebfd
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], edx
mov eax, edx
mov dword [esp + 0x14], esi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016b702
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x1016b653
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x1016b6fa
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x1016b674
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016b6fa
test dl, 8
jne 0x1016b697
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1016b6fa
test dl, 4
jne 0x1016b6c6
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1016b6fa
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, edx
mov ecx, edx
cmp eax, 0x85
ja 0x1016b724
cmp ecx, 0x85
je case.0x1016b71d.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10166bdb
jmp dword [edx*4 + 0x10171de8]
sub edx, 0x2028
je case.0x1016b71d.10
sub edx, 1
jne case.default.0x10166bdb
inc edi
cmp edi, ebp
jle 0x1016b614
jmp 0x1016a891
mov edx, 1
cmp ebp, edx
jl 0x1016a895
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], ecx
mov eax, ecx
mov dword [esp + 0x14], esi
cmp ecx, 0xc0
jb 0x1016b853
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016b78e
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016b84d
test cl, 0x10
jne 0x1016b7af
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016b84d
test cl, 8
jne 0x1016b7dc
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016b84d
test cl, 4
jne 0x1016b812
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016b84d
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, ecx
cmp eax, 0x80
jae 0x1016b867
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10166bdb
inc edx
cmp edx, ebp
jle 0x1016b753
jmp 0x1016a891
cmp ebp, 1
jl 0x1016a895
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x10166bdb
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.default.0x10166bdb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016b886
jmp 0x1016a891
mov edi, 1
cmp ebp, edi
jl 0x1016a895
mov ebx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, ebx
jae 0x1016ebfd
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x1016b8f4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.default.0x10166bdb
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x1016b91b
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016b917
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016b906
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x1016b8d0
jmp 0x1016a891
cmp ebp, 1
jl 0x1016a895
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x10166bdb
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.default.0x10166bdb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016b936
jmp 0x1016a891
mov edi, 1
cmp ebp, edi
jl 0x1016a895
mov ebx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, ebx
jae 0x1016ebfd
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x1016b9a4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10166bdb
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x1016b9cb
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016b9c7
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016b9b6
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x1016b980
jmp 0x1016a891
cmp ebp, 1
jl 0x1016a895
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x10166bdb
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10166bdb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016b9e6
jmp 0x1016a891
cmp eax, 0xf
ja case.default.0x1016742a
jmp dword [eax*4 + 0x10171df8]
mov edi, 1
cmp ebp, edi
jl 0x1016a895
nop word [eax + eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016eaf1
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016ba75
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.10173960
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10166bdb
jmp 0x1016ba9a
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016ba9a
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016ba9a
cmp edx, 1
je case.default.0x10166bdb
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10166bdb
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016bacf
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016bacf
cmp dword [ebx + 0x18], 0
jne 0x1016bacf
cmp dword [ebx + 0x1c], 2
jne 0x1016bacf
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016bacf
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x101713f5
inc esi
inc edi
mov dword [esp + 0x14], esi
cmp edi, ebp
jle 0x1016ba40
jmp 0x1016a891
mov eax, dword [ebx + 0x78]
sub eax, ebp
cmp esi, eax
ja 0x1016eaf1
add esi, ebp
mov dword [esp + 0x14], esi
jmp 0x1016a895
mov ecx, 1
cmp ebp, ecx
jl 0x1016a891
mov edx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edx
jae 0x1016eaf1
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.default.0x10166bdb
movzx eax, byte [eax + 0x10171e48]
jmp dword [eax*4 + 0x10171e38]
cmp esi, edx
jae case.0x1016bb35.10
cmp byte [esi], 0xa
jne case.0x1016bb35.10
inc esi
mov dword [esp + 0x14], esi
jmp case.0x1016bb35.10
cmp dword [ebx + 0x68], 0
jne case.default.0x10166bdb
inc ecx
cmp ecx, ebp
jle 0x1016bb10
jmp 0x1016a891
mov ecx, 1
cmp ebp, ecx
jl 0x1016a891
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp eax, 9
je case.default.0x10166bdb
cmp eax, 0x20
je case.default.0x10166bdb
cmp eax, 0xa0
je case.default.0x10166bdb
inc ecx
cmp ecx, ebp
jle 0x1016bb70
jmp 0x1016a891
mov ecx, 1
cmp ebp, ecx
jl 0x1016a891
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp eax, 9
je 0x1016bbdc
cmp eax, 0x20
je 0x1016bbdc
cmp eax, 0xa0
jne case.default.0x10166bdb
inc ecx
cmp ecx, ebp
jle 0x1016bbb7
jmp 0x1016a891
mov ecx, 1
cmp ebp, ecx
jl 0x1016a891
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016eaf1
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.0x1016bc17.14
movzx eax, byte [eax + 0x10171ecc]
jmp dword [eax*4 + 0x10171ec4]
inc ecx
cmp ecx, ebp
jle 0x1016bbf6
jmp 0x1016a891
mov ecx, 1
cmp ebp, ecx
jl 0x1016a891
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016eaf1
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.default.0x10166bdb
movzx eax, byte [eax + 0x10171f50]
jmp dword [eax*4 + 0x10171f48]
inc ecx
cmp ecx, ebp
jle 0x1016bc38
jmp 0x1016a891
cmp ebp, 1
jl 0x1016a895
mov edi, dword [ebx + 0x78]
mov edx, 1
nop
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10166bdb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bc80
jmp 0x1016a891
cmp ebp, 1
jl 0x1016a895
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.default.0x10166bdb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bcb8
jmp 0x1016a891
cmp ebp, 1
jl 0x1016a895
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.default.0x10166bdb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bcf0
jmp 0x1016a891
cmp ebp, 1
jl 0x1016a895
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.default.0x10166bdb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bd28
jmp 0x1016a891
cmp ebp, 1
jl 0x1016a895
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10166bdb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bd60
jmp 0x1016a891
cmp ebp, 1
jl 0x1016a895
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016eaf1
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10166bdb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bd98
jmp 0x1016a891
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016bfd3
mov edx, dword [ebx + 0x78]
nop
cmp esi, edx
jae 0x1016be3a
cmp dword [esp + 0x24], 0
mov eax, 1
movzx ecx, byte [esi]
je 0x1016be1d
cmp ecx, 0xc0
jb 0x1016be1d
test cl, 0x20
jne 0x1016bdf7
mov eax, 2
jmp 0x1016be1d
test cl, 0x10
jne 0x1016be03
mov eax, 3
jmp 0x1016be1d
test cl, 8
jne 0x1016be0f
mov eax, 4
jmp 0x1016be1d
test cl, 4
mov eax, 0
setne al
add eax, 5
cmp dword [esp + 0x48], 0
jne 0x1016bfd3
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016bdd0
jmp 0x1016bfd3
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016bfd3
cmp esi, dword [ebx + 0x84]
jbe 0x1016bfd3
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
jmp 0x1016bfd3
cmp ebp, edx
jge 0x1016cc50
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x1016bfeb
cmp dword [esp + 0x24], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016bf70
cmp eax, 0xc0
jb 0x1016bf70
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016bec5
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016bf6c
test al, 0x10
jne 0x1016bedf
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016bf66
test al, 8
jne 0x1016bf02
and eax, 7
mov edi, 4
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
jmp 0x1016bf66
test al, 4
jne 0x1016bf31
and eax, 3
mov edi, 5
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
jmp 0x1016bf66
and eax, 1
mov edi, 6
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016bf8a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp eax, 9
je 0x1016bfaf
cmp eax, 5
je 0x1016bfaf
cmp eax, 8
je 0x1016bfaf
xor eax, eax
jmp 0x1016bfb4
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016bfcb
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016be80
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x40], 0
je 0x1016e34a
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016bfcf
cmp esi, dword [ebx + 0x84]
jbe 0x1016bfcf
mov dword [ebx + 0x64], edi
cmp eax, 1
jg 0x101713f5
jmp 0x1016bfcf
cmp ebp, edx
jge 0x1016cc50
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x1016c16c
cmp dword [esp + 0x24], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016c110
cmp eax, 0xc0
jb 0x1016c110
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016c065
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016c10c
test al, 0x10
jne 0x1016c07f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016c106
test al, 8
jne 0x1016c0a2
and eax, 7
mov edi, 4
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
jmp 0x1016c106
test al, 4
jne 0x1016c0d1
and eax, 3
mov edi, 5
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
jmp 0x1016c106
and eax, 1
mov edi, 6
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c12a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x4c]
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp dword [eax*4 + 0x101c26a0], edx
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016bfcb
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016c020
jmp 0x1016bfcb
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016bfcf
cmp esi, dword [ebx + 0x84]
jbe 0x1016bfcf
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
jmp 0x1016bfcf
cmp ebp, edx
jge 0x1016cc50
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x1016c16c
cmp dword [esp + 0x24], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016c29c
cmp eax, 0xc0
jb 0x1016c29c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016c1f1
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016c298
test al, 0x10
jne 0x1016c20b
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016c292
test al, 8
jne 0x1016c22e
and eax, 7
mov edi, 4
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
jmp 0x1016c292
test al, 4
jne 0x1016c25d
and eax, 3
mov edi, 5
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
jmp 0x1016c292
and eax, 1
mov edi, 6
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c2b6
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016bfcb
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016c1b0
jmp 0x1016bfcb
cmp ebp, edx
jge 0x1016cc50
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x1016c16c
cmp dword [esp + 0x24], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016c3f0
cmp eax, 0xc0
jb 0x1016c3f0
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016c345
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016c3ec
test al, 0x10
jne 0x1016c35f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016c3e6
test al, 8
jne 0x1016c382
and eax, 7
mov edi, 4
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
jmp 0x1016c3e6
test al, 4
jne 0x1016c3b1
and eax, 3
mov edi, 5
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
jmp 0x1016c3e6
and eax, 1
mov edi, 6
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c40a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d08]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016bfcb
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016c300
jmp 0x1016bfcb
cmp ebp, edx
jge 0x1016cc50
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x1016bfeb
cmp dword [esp + 0x24], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016c550
cmp eax, 0xc0
jb 0x1016c550
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016c4a5
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016c54c
test al, 0x10
jne 0x1016c4bf
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016c546
test al, 8
jne 0x1016c4e2
and eax, 7
mov edi, 4
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
jmp 0x1016c546
test al, 4
jne 0x1016c511
and eax, 3
mov edi, 5
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
jmp 0x1016c546
and eax, 1
mov edi, 6
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c56a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x1016c591
cmp eax, 3
je 0x1016c591
xor eax, eax
jmp 0x1016c596
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016bfcb
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016c460
jmp 0x1016bfcb
cmp ebp, edx
jge 0x1016cc50
nop
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x30], 1
cmp esi, dword [ebx + 0x78]
jae 0x1016c170
cmp dword [esp + 0x24], 0
movzx edx, byte [esi]
mov eax, edx
mov dword [esp + 0x20], edx
mov ecx, edx
mov edi, edx
mov ebx, edx
mov ebp, edx
je 0x1016c6d6
mov dword [esp + 0x20], edx
cmp edx, 0xc0
jb 0x1016c6d6
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016c622
and eax, 0x1f
mov dword [esp + 0x30], 2
shl eax, 6
mov edx, ecx
jmp 0x1016c6c6
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016c640
and edx, 0xf
mov dword [esp + 0x30], 3
shl edx, 6
or edx, ecx
jmp 0x1016c6c0
and eax, 0x3f
test dl, 8
jne 0x1016c663
and edx, 7
mov dword [esp + 0x30], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016c6c0
test dl, 4
jne 0x1016c68f
and edx, 3
mov dword [esp + 0x30], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016c6c0
and edx, 1
mov dword [esp + 0x30], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
mov dword [esp + 0x20], edx
mov ecx, edx
mov edi, edx
mov ebx, edx
mov ebp, edx
cmp eax, 0x20
ja 0x1016c6f3
cmp ecx, 0x20
je case.0x1016c7cf.8193
lea eax, [edx - 9]
cmp eax, 4
ja case.0x1016c7cf.8203
jmp dword [eax*4 + 0x10171fcc]
cmp edi, 0x2000
ja 0x1016c7a7
cmp ebx, 0x2000
je case.0x1016c7cf.8193
cmp edx, 0x1680
ja 0x1016c79f
je case.0x1016c7cf.8193
mov eax, edx
sub eax, 0x85
je case.0x1016c7cf.8193
sub eax, 0x1b
je case.0x1016c7cf.8193
mov eax, edx
test eax, eax
jns 0x1016c73c
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c756
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp dword [eax*4 + 0x101c26a0], 6
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016bfcb
mov eax, dword [esp + 0x38]
add esi, dword [esp + 0x30]
inc eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x28]
jl 0x1016c5c0
jmp 0x1016bfcb
cmp edx, 0x180e
jmp 0x1016c72d
cmp ebp, 0x3000
ja case.0x1016c7cf.8203
cmp dword [esp + 0x20], 0x3000
je case.0x1016c7cf.8193
lea eax, [edx - 0x2001]
cmp eax, 0x5e
ja case.0x1016c7cf.8203
movzx eax, byte [eax + 0x10171fe8]
jmp dword [eax*4 + 0x10171fe0]
cmp dword [esp + 0x48], 0
jne 0x1016bfcb
jmp 0x1016c77f
cmp ebp, edx
jge 0x1016cc50
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, 1
cmp esi, ebp
jae 0x1016c16c
cmp dword [esp + 0x24], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
mov edi, eax
je 0x1016c8e6
cmp eax, 0xc0
jb 0x1016c8e6
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016c839
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x1016c8e0
test al, 0x10
jne 0x1016c853
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016c8da
test al, 8
jne 0x1016c876
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
jmp 0x1016c8da
test al, 4
jne 0x1016c8a5
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
jmp 0x1016c8da
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edx, ecx
mov edi, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c900
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x1016c92c
cmp eax, 3
je 0x1016c92c
cmp edi, 0x5f
je 0x1016c92c
xor eax, eax
jmp 0x1016c931
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016bfcb
mov eax, dword [esp + 0x38]
add esi, ebx
inc eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x28]
jl 0x1016c7f2
jmp 0x1016bfcb
cmp ebp, edx
jge 0x1016cc50
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x1016bfeb
cmp dword [esp + 0x24], 0
movzx edx, byte [esi]
mov ecx, edx
je 0x1016ca54
cmp edx, 0xc0
jb 0x1016ca54
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016c9b9
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016ca50
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016c9d4
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016ca4a
and eax, 0x3f
test dl, 8
jne 0x1016c9f4
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016ca4a
test dl, 4
jne 0x1016ca1d
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016ca4a
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov eax, dword [esp + 0x4c]
cmp ecx, dword [eax*4 + 0x101c2bc8]
lea eax, [eax*4 + 0x101c2bc8]
jb 0x1016ca7d
mov ecx, dword [eax]
nop word [eax + eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x1016ca9e
mov ecx, dword [eax]
cmp edx, ecx
jae 0x1016ca70
cmp dword [esp + 0x48], 0
je 0x1016bfcb
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016c970
jmp 0x1016bfcb
cmp dword [esp + 0x48], 0
jne 0x1016bfcb
jmp 0x1016ca88
cmp ebp, edx
jge 0x1016cc50
mov ebx, dword [esp + 0x10]
mov ebp, 1
cmp esi, dword [ebx + 0x78]
jae 0x1016cc25
cmp dword [esp + 0x24], 0
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
je 0x1016cbcd
cmp edx, 0xc0
jb 0x1016cbcd
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016cb0f
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebp, 2
or edx, eax
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
jmp 0x1016cbcd
movzx eax, byte [esi + 2]
and eax, 0x3f
test dl, 0x10
jne 0x1016cb3a
and edx, 0xf
mov ebp, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
jmp 0x1016cbcd
test dl, 8
jne 0x1016cb67
and edx, 7
mov ebp, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
jmp 0x1016cbcd
test dl, 4
jne 0x1016cb90
and edx, 3
mov ebp, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016cbbd
and edx, ebp
mov ebp, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
mov ebx, eax
mov edi, eax
mov ecx, eax
cmp eax, 0x24
je 0x1016cbf8
cmp ecx, 0x40
je 0x1016cbf8
cmp edi, 0x60
je 0x1016cbf8
cmp ebx, 0xa0
jb 0x1016cbec
cmp edx, 0xd7ff
jbe 0x1016cbf8
cmp edx, 0xe000
jae 0x1016cbf8
xor eax, eax
jmp 0x1016cbfd
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016bfcb
mov eax, dword [esp + 0x38]
add esi, ebp
inc eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x28]
jl 0x1016cab3
jmp 0x1016bfcb
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016bfcf
cmp esi, dword [ebx + 0x84]
jbe 0x1016bfcf
mov dword [ebx + 0x64], ebp
cmp eax, 1
jg 0x101713f5
jmp 0x1016bfcf
mov ebx, dword [esp + 0x10]
jmp 0x1016bfd3
cmp ecx, 0x16
jne 0x1016cf73
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016cf5b
nop
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016cf35
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
mov edi, esi
je 0x1016cd92
cmp eax, 0xc0
jb 0x1016cd92
test al, 0x20
jne 0x1016ccb7
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016cd8a
test al, 0x10
jne 0x1016ccdd
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016cd8a
test al, 8
jne 0x1016cd0f
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016cd8a
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016cd4c
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016cd8a
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov edi, esi
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016cdac
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx ebx, byte [eax*8 + 0x101c2d0a]
cmp edi, ebp
jae 0x1016cef5
nop word [eax + eax]
cmp dword [esp + 0x24], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x1016cea9
cmp edx, 0xc0
jb 0x1016cea9
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016ce11
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016cea5
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016ce29
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016ce9f
and eax, 0x3f
test dl, 8
jne 0x1016ce49
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016ce9f
test dl, 4
jne 0x1016ce72
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016ce9f
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
movzx eax, byte [edx + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016cec3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx ecx, byte [eax*8 + 0x101c2d0a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101c2718], eax
je 0x1016cef1
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x1016cdd0
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016cf20
cmp esi, dword [ebx + 0x78]
jb 0x1016cf20
cmp esi, dword [ebx + 0x84]
jbe 0x1016cf20
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x28]
jl 0x1016cc70
jmp 0x1016cf57
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016cf57
cmp esi, dword [ebx + 0x84]
jbe 0x1016cf57
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x40], 0
je 0x1016e3ab
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
cmp dword [esp + 0x24], 0
lea eax, [ecx - 6]
je 0x1016dcf3
cmp eax, 0xf
ja case.default.0x1016742a
jmp dword [eax*4 + 0x10172048]
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016d294
nop dword [eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016d0bb
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016cfd3
push dword [esp + 0x24]
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.10173960
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne 0x1016d294
jmp 0x1016cff8
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016cff8
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016cff8
cmp edx, 1
je 0x1016d294
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je 0x1016d294
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016d02d
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016d02d
cmp dword [ebx + 0x18], 0
jne 0x1016d02d
cmp dword [ebx + 0x1c], 2
jne 0x1016d02d
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016d02d
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x101713f5
mov edx, dword [ebx + 0x78]
inc esi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x1016d055
mov ecx, esi
nop dword [eax + eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016d051
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016d040
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, dword [esp + 0x28]
jl 0x1016cfa0
jmp 0x1016d294
mov ebx, dword [esp + 0x10]
cmp edx, 0x7fffffff
jge 0x1016d0b4
cmp ebp, edx
jge 0x1016d294
mov edi, dword [ebx + 0x78]
mov eax, dword [esp + 0x28]
cmp esi, edi
jae 0x1016d0bb
inc esi
mov edx, edi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x1016d0aa
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016d0a2
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016d091
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, eax
jl 0x1016d080
jmp 0x1016d294
mov esi, dword [ebx + 0x78]
mov dword [esp + 0x14], esi
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016d294
cmp esi, dword [ebx + 0x84]
jbe 0x1016d294
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
jmp 0x1016d294
mov ebx, dword [esp + 0x10]
sub edx, ebp
mov ecx, dword [ebx + 0x78]
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x1016d117
mov eax, dword [ebx + 0x88]
mov esi, ecx
mov dword [esp + 0x14], esi
test eax, eax
je 0x1016d294
cmp ecx, dword [ebx + 0x84]
jmp 0x1016d0cf
add esi, edx
mov dword [esp + 0x14], esi
jmp 0x1016d294
cmp ebp, edx
jge 0x1016d290
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x44], eax
nop word [eax + eax]
mov ebp, 1
cmp esi, eax
jae 0x1016d2ac
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x1016d220
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d182
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebp, 2
jmp 0x1016d216
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d19a
and edx, 0xf
mov ebp, 3
shl edx, 6
or edx, ecx
jmp 0x1016d210
and eax, 0x3f
test dl, 8
jne 0x1016d1ba
and edx, 7
mov ebp, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d210
test dl, 4
jne 0x1016d1e3
and edx, 3
mov ebp, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016d210
and edx, ebp
mov ebp, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
cmp eax, 0xd
jne 0x1016d23a
mov eax, dword [esp + 0x44]
inc esi
mov dword [esp + 0x14], esi
cmp esi, eax
jae 0x1016d290
cmp byte [esi], 0xa
jne 0x1016d27d
inc esi
jmp 0x1016d279
cmp ecx, 0xa
je 0x1016d273
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x68], 0
jne 0x1016dcec
cmp edi, 0xb
je 0x1016d273
cmp ebx, 0xc
je 0x1016d273
cmp edx, 0x85
je 0x1016d273
cmp edx, 0x2028
je 0x1016d273
cmp edx, 0x2029
jne 0x1016dcec
mov eax, dword [esp + 0x44]
add esi, ebp
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x38]
inc ecx
mov dword [esp + 0x38], ecx
cmp ecx, dword [esp + 0x28]
jl 0x1016d140
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e62a
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016d294
cmp esi, dword [ebx + 0x84]
jbe 0x1016d294
mov dword [ebx + 0x64], ebp
cmp eax, 1
jg 0x101713f5
jmp 0x1016d294
cmp ebp, edx
jge 0x1016d290
nop dword [eax]
nop dword [eax + eax]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x20], 1
cmp esi, dword [ebx + 0x78]
jae 0x1016d0bb
movzx edx, byte [esi]
mov eax, edx
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x1016d3df
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d32f
and eax, 0x1f
mov dword [esp + 0x20], 2
shl eax, 6
mov edx, ecx
jmp 0x1016d3d3
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d34d
and edx, 0xf
mov dword [esp + 0x20], 3
shl edx, 6
or edx, ecx
jmp 0x1016d3cd
and eax, 0x3f
test dl, 8
jne 0x1016d370
and edx, 7
mov dword [esp + 0x20], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d3cd
test dl, 4
jne 0x1016d39c
and edx, 3
mov dword [esp + 0x20], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016d3cd
and edx, 1
mov dword [esp + 0x20], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
cmp eax, 0x2000
ja 0x1016d450
cmp edi, 0x2000
je case.0x1016d472.8193
cmp ebp, 0xa0
ja 0x1016d440
cmp edx, 0xa0
je case.0x1016d472.8193
cmp edx, 9
je case.0x1016d472.8193
cmp edx, 0x20
je case.0x1016d472.8193
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x30], 0x12
sete al
cmp ecx, eax
je 0x1016d290
mov eax, dword [esp + 0x38]
add esi, dword [esp + 0x20]
inc eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x28]
jl 0x1016d2e0
jmp 0x1016d290
cmp edx, 0x1680
je case.0x1016d472.8193
cmp edx, 0x180e
jmp 0x1016d40a
cmp ecx, 0x3000
ja case.0x1016d472.8203
cmp ebx, 0x3000
je case.0x1016d472.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x1016d472.8203
movzx eax, byte [edx + 0x10172090]
jmp dword [eax*4 + 0x10172088]
mov ecx, 1
jmp 0x1016d40e
cmp ebp, edx
jge 0x1016d290
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
mov edi, 1
cmp esi, ebx
jae 0x1016d5c4
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x1016d568
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d4ce
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov edi, 2
jmp 0x1016d562
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d4e6
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016d55c
and eax, 0x3f
test dl, 8
jne 0x1016d506
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d55c
test dl, 4
jne 0x1016d52f
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016d55c
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
mov ecx, edx
cmp eax, 0x85
ja 0x1016d586
cmp ecx, 0x85
je case.0x1016d57f.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x1016d57f
jmp dword [edx*4 + 0x101720f0]
sub edx, 0x2028
je case.0x1016d57f.10
sub edx, 1
je case.0x1016d57f.10
xor ecx, ecx
jmp 0x1016d59c
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x30], 0x14
sete al
cmp ecx, eax
je 0x1016d290
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d490
jmp 0x1016d290
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016d294
cmp esi, dword [ebx + 0x84]
jbe 0x1016d294
mov dword [ebx + 0x64], edi
cmp eax, 1
jg 0x101713f5
jmp 0x1016d294
cmp ebp, edx
jge 0x1016d290
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x1016d722
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016d6f1
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d642
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016d6eb
test dl, 0x10
jne 0x1016d65d
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x1016d6e5
test dl, 8
jne 0x1016d681
movzx eax, byte [esi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov edi, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d6e5
test dl, 4
jne 0x1016d6b1
movzx eax, byte [esi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
mov edi, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016d6e5
and edx, eax
mov edi, 6
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edi
mov ecx, edx
cmp ecx, 0x100
jae 0x1016d70c
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne 0x1016d290
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d602
jmp 0x1016d290
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016d294
cmp esi, dword [ebx + 0x84]
jbe 0x1016d294
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
jmp 0x1016d294
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016d294
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016d0bb
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x1016d839
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d7a0
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x1016d835
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d7b8
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016d82f
and eax, 0x3f
test dl, 8
jne 0x1016d7d8
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d82f
test dl, 4
jne 0x1016d801
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016d82f
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp eax, 0x100
jae 0x1016d294
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 4
je 0x1016d294
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d764
jmp 0x1016d294
cmp ebp, edx
jge 0x1016d290
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x1016d722
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016d965
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d8b6
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016d95f
test dl, 0x10
jne 0x1016d8d1
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x1016d959
test dl, 8
jne 0x1016d8f5
movzx eax, byte [esi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov edi, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d959
test dl, 4
jne 0x1016d925
movzx eax, byte [esi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
mov edi, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016d959
and edx, eax
mov edi, 6
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edi
mov ecx, edx
cmp ecx, 0x100
jae 0x1016d980
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne 0x1016d290
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d876
jmp 0x1016d290
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016d294
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016d0bb
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x1016da7a
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d9e1
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x1016da76
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d9f9
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016da70
and eax, 0x3f
test dl, 8
jne 0x1016da19
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016da70
test dl, 4
jne 0x1016da42
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016da70
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp eax, 0x100
jae 0x1016d294
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
je 0x1016d294
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d9a5
jmp 0x1016d294
cmp ebp, edx
jge 0x1016d290
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x1016d722
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016dba6
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016daf7
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016dba0
test dl, 0x10
jne 0x1016db12
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x1016db9a
test dl, 8
jne 0x1016db36
movzx eax, byte [esi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov edi, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016db9a
test dl, 4
jne 0x1016db66
movzx eax, byte [esi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
mov edi, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016db9a
and edx, eax
mov edi, 6
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edi
mov ecx, edx
cmp ecx, 0x100
jae 0x1016dbc1
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne 0x1016d290
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016dab7
jmp 0x1016d290
cmp ebp, edx
jge 0x1016d290
mov ebx, dword [esp + 0x10]
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016d0bb
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x1016dcbe
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016dc22
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x1016dcba
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016dc3d
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016dcb4
and eax, 0x3f
test dl, 8
jne 0x1016dc5d
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016dcb4
test dl, 4
jne 0x1016dc86
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016dcb4
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp eax, 0x100
jae 0x1016d294
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 0x10
je 0x1016d294
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016dbe6
jmp 0x1016d294
mov ebx, eax
jmp 0x1016d294
cmp eax, 0xf
ja case.default.0x1016742a
jmp dword [eax*4 + 0x10172100]
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
nop
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016e08e
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016dd41
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.10173960
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne case.0x1016def2.10
jmp 0x1016dd66
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016dd66
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016dd66
cmp edx, 1
je case.0x1016def2.10
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x1016def2.10
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016dd9b
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016dd9b
cmp dword [ebx + 0x18], 0
jne 0x1016dd9b
cmp dword [ebx + 0x1c], 2
jne 0x1016dd9b
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016dd9b
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x101713f5
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016dd10
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
sub edx, ebp
mov ecx, dword [ebx + 0x78]
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x1016dde0
mov eax, dword [ebx + 0x88]
mov esi, ecx
mov dword [esp + 0x14], esi
test eax, eax
je case.0x1016def2.10
cmp ecx, dword [ebx + 0x84]
jmp 0x1016e09e
add esi, edx
mov dword [esp + 0x14], esi
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov ecx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x1016e08e
mov al, byte [esi]
cmp al, 0xd
jne 0x1016de22
inc esi
mov dword [esp + 0x14], esi
cmp esi, ecx
jae case.0x1016def2.10
cmp byte [esi], 0xa
jne 0x1016de45
jmp 0x1016de40
cmp al, 0xa
je 0x1016de40
cmp dword [ebx + 0x68], 0
jne case.0x1016def2.10
cmp al, 0xb
je 0x1016de40
cmp al, 0xc
je 0x1016de40
cmp al, 0x85
jne case.0x1016def2.10
inc esi
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, edx
jl 0x1016de00
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov ecx, dword [ebx + 0x78]
nop
cmp esi, ecx
jae 0x1016e08e
mov al, byte [esi]
cmp al, 9
je case.0x1016def2.10
cmp al, 0x20
je case.0x1016def2.10
cmp al, 0xa0
je case.0x1016def2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016de60
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016e08e
mov al, byte [esi]
cmp al, 9
je 0x1016deba
cmp al, 0x20
je 0x1016deba
cmp al, 0xa0
jne case.0x1016def2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016dea0
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016e08e
movzx eax, byte [esi]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x1016def2.14
movzx eax, byte [eax + 0x10172148]
jmp dword [eax*4 + 0x10172140]
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016ded8
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016e08e
movzx eax, byte [esi]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x1016def2.10
movzx eax, byte [eax + 0x101721cc]
jmp dword [eax*4 + 0x101721c4]
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016df17
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov edx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edx
jae 0x1016e08e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.0x1016def2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016df60
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016e08e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.0x1016def2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016df98
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016e08e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.0x1016def2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016dfd0
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016e08e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.0x1016def2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016e008
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016e08e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.0x1016def2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016e040
jmp case.0x1016def2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016def2.10
mov edx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, edx
jae 0x1016e08e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.0x1016def2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016e070
jmp case.0x1016def2.10
mov eax, dword [ebx + 0x88]
test eax, eax
je case.0x1016def2.10
cmp esi, dword [ebx + 0x84]
jbe case.0x1016def2.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
cmp dword [esp + 0x40], 0
je 0x1016e6ac
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x101649da
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
cmp cl, 0x7a
jne 0x1016e104
push dword [esp + 0x18]
mov ebp, dword [esp + 0x38]
lea eax, [edx + 3]
push edi
push ebp
push eax
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edx, ebx
mov dword [esp + 0x18], edx
jmp 0x1016e248
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push ebx
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x1016e24c
cmp dword [esp + 0x38], 0x8c
jne 0x1016e248
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x98], 2
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edx
push esi
call fcn.10164890
add esp, 0x1c
jmp 0x101717bc
mov ebp, dword [esp + 0x2c]
cmp al, 0x7a
mov eax, dword [esp + 0x180]
jne 0x1016e1be
inc eax
push eax
push dword [esp + 0x38]
lea eax, [edx + 3]
push ecx
push edi
push ebp
push eax
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov al, byte [ebx]
cmp al, 0x81
je 0x1016e9fa
cmp al, 0x88
jae 0x1016e9d8
mov edx, ebx
mov dword [esp + 0x18], edx
jmp 0x1016e248
inc eax
push eax
push dword [esp + 0x38]
push ecx
push edi
push ebp
push ebx
push esi
call fcn.10164890
mov edx, dword [esp + 0x2c]
add esp, 0x1c
mov ecx, eax
cmp eax, 0xfffffc1b
jne 0x1016e1e6
cmp dword [edx + 0xb4], ebx
je 0x1016e1ee
test ecx, ecx
jne 0x101717bc
cmp byte [ebx], 0x81
je 0x1016ea10
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x1016e248
cmp esi, ebp
je 0x1016e244
nop dword [eax + eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
dec esi
add esp, 0x1c
mov dword [esp + 0x14], esi
test eax, eax
jne 0x101717bc
cmp esi, ebp
jne 0x1016e210
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
mov ebp, dword [edi + 0x4c]
mov dword [esp + 0x24], ebp
cmp eax, dword [edi + 4]
jae 0x101717b4
mov ecx, dword [esp + 0x34]
jmp 0x10164970
cmp esi, edi
je 0x1016e244
nop dword [eax + eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
dec esi
add esp, 0x1c
mov dword [esp + 0x14], esi
test eax, eax
jne 0x101717bc
cmp esi, edi
jne 0x1016e270
jmp 0x1016e244
cmp esi, edi
jbe 0x1016e244
nop word [eax + eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x1016e300
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x1016e2f0
mov dword [esp + 0x14], esi
cmp ecx, edi
ja 0x1016e2b0
jmp 0x1016e244
cmp esi, edi
je 0x1016e244
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
dec esi
mov dword [esp + 0x14], esi
cmp esi, edi
jne 0x1016e311
jmp 0x1016e244
cmp esi, edi
jbe 0x1016e244
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
dec esi
mov ecx, esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0x24], eax
je 0x1016e3a2
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016e3a2
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x1016e392
mov dword [esp + 0x14], esi
cmp ecx, edi
ja 0x1016e352
jmp 0x1016e244
cmp esi, edi
jbe 0x1016e244
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
dec esi
mov dword [esp + 0x14], esi
test ebp, ebp
jne 0x1016e3f3
movzx edx, byte [esi]
jmp 0x1016e4bf
mov cl, byte [esi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x1016e410
nop dword [eax]
mov al, byte [esi - 1]
dec esi
mov cl, al
and al, 0xc0
cmp al, 0x80
je 0x1016e400
mov dword [esp + 0x14], esi
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x1016e4c1
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016e43c
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x1016e4bd
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016e44f
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1016e4b7
and eax, 0x3f
test dl, 8
jne 0x1016e46a
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016e4b7
test dl, 4
jne 0x1016e48e
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x1016e4b7
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
movzx eax, byte [edx + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016e4db
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx ebx, byte [eax*8 + 0x101c2d0a]
nop dword [eax]
cmp esi, edi
jbe 0x1016e244
lea edi, [esi - 1]
test ebp, ebp
jne 0x1016e507
movzx edx, byte [edi]
jmp 0x1016e5cc
mov cl, byte [edi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x1016e51d
mov al, byte [edi - 1]
dec edi
mov cl, al
and al, 0xc0
cmp al, 0x80
je 0x1016e511
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x1016e5ce
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016e549
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x1016e5ca
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x1016e55c
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1016e5c4
and eax, 0x3f
test dl, 8
jne 0x1016e577
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x1016e5c4
test dl, 4
jne 0x1016e59b
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x1016e5c4
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
movzx eax, byte [edx + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016e5e8
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x101c6588]
movzx edx, byte [eax*8 + 0x101c2d0a]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x101c2718], eax
je 0x1016e61d
mov esi, edi
mov ebx, edx
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
jmp 0x1016e4f0
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
jmp 0x1016e3b7
mov edi, dword [esp + 0x3c]
cmp esi, edi
jbe 0x1016e244
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov cl, byte [esi - 1]
dec esi
mov al, cl
mov dword [esp + 0x14], esi
and al, 0xc0
mov edx, esi
cmp al, 0x80
jne 0x1016e685
mov cl, byte [esi - 1]
dec esi
mov al, cl
mov edx, esi
and al, 0xc0
cmp al, 0x80
je 0x1016e673
mov dword [esp + 0x14], esi
cmp dword [esp + 0x30], 0x11
jne 0x1016e6a3
cmp edx, edi
jbe 0x1016e6a3
cmp cl, 0xa
jne 0x1016e6a3
cmp byte [esi - 1], 0xd
lea eax, [esi - 1]
cmove esi, eax
mov dword [esp + 0x14], esi
cmp esi, edi
ja 0x1016e636
jmp 0x1016e244
cmp esi, edi
je 0x1016e244
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
dec esi
cmp dword [esp + 0x30], 0x11
mov dword [esp + 0x14], esi
mov eax, esi
jne 0x1016e707
cmp esi, edi
jbe 0x1016e707
cmp byte [esi], 0xa
jne 0x1016e707
cmp byte [esi - 1], 0xd
lea ecx, [esi - 1]
jne 0x1016e707
mov esi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
cmp eax, edi
jne 0x1016e6b4
jmp 0x1016e244
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
movzx ebx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ebx, 8
or ebx, eax
lea eax, [ebx + ebx]
cmp eax, dword [edi + 0x14]
jge 0x1016e813
mov edx, dword [edi + 0xc]
mov ebp, dword [edi + 0x90]
mov ecx, dword [edx + eax*4]
mov eax, dword [edx + eax*4 + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], ecx
mov ecx, dword [edi + 0x10]
mov eax, ecx
sub eax, ebx
mov eax, dword [edx + eax*4]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0xac]
mov dword [esp + 0x44], eax
mov eax, esi
sub eax, dword [edi + 0x74]
sub ecx, ebx
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x18]
nop
cmp dword [esp + 0x38], 0x88
jb 0x1016e784
mov dword [edi + 0x98], 2
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [ecx]
push edi
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101c2588]
push dword [esp + 0x3c]
add eax, ecx
push eax
push esi
call fcn.10164890
mov edi, eax
add esp, 0x1c
cmp edi, 0xfffffc1b
je 0x10171440
mov ecx, edi
cmp edi, 0xfffffc20
jne 0x101713ff
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, edi
add edx, ecx
mov ecx, eax
cmp dword [esi + 0x7c], edx
mov esi, dword [esp + 0x14]
jae 0x101713ff
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x1016e808
cmp byte [edx], 0x77
mov eax, ecx
jne 0x101713ff
xor edi, edi
jmp 0x10171407
mov edi, dword [esp + 0x10]
cmp edx, 0x88
jae 0x1016e855
cmp edx, 0x81
je 0x1016e855
cmp dword [edi + 0x6c], 0
mov edx, dword [esp + 0x18]
jne 0x1016e863
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + edx], 0x77
je 0x1016e863
movzx eax, byte [edx]
movzx eax, byte [eax + 0x101c2588]
add edx, eax
mov dword [esp + 0x18], edx
jmp 0x1016e24c
mov edx, dword [esp + 0x18]
mov dword [edi + 0x98], 2
mov eax, dword [esp + 0x180]
mov ebx, dword [edi + 0xac]
inc eax
mov ebp, dword [edi + 0x90]
push eax
push dword [esp + 0x38]
movzx eax, byte [edx]
push edi
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101c2588]
push dword [esp + 0x3c]
add eax, edx
push eax
push esi
call fcn.10164890
mov edx, eax
add esp, 0x1c
mov ecx, edx
cmp edx, 0xfffffc20
jne 0x1016e8eb
mov esi, dword [esp + 0x18]
movzx edi, byte [esi + 1]
movzx eax, byte [esi + 2]
shl edi, 8
or edi, eax
mov eax, edx
add edi, esi
mov esi, dword [esp + 0x10]
cmp dword [esi + 0x7c], edi
mov esi, dword [esp + 0x14]
jae 0x1016e8e7
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x1016e8d9
cmp byte [edi], 0x77
mov eax, ecx
jne 0x1016e8e7
mov edi, dword [esp + 0x10]
mov dword [esp + 0x44], 0
jmp 0x1016e8f3
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x10171476
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov dword [edi + 0xac], ebx
add edx, ecx
mov dword [esp + 0x18], edx
cmp byte [edx], 0x77
jne case.default.0x10166bdb
mov edx, dword [esp + 0x38]
mov dword [edi + 0x90], ebp
jmp 0x1016e813
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push edi
mov edi, dword [esp + 0x28]
push dword [esp + 0x3c]
movzx eax, byte [edi]
movzx ecx, byte [edi + 1]
movzx eax, byte [eax + 0x101c2588]
add eax, edi
add ecx, eax
push ecx
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
lea eax, [edi + 2]
mov dword [ebx + 0x7c], eax
mov eax, 0xfffffc1f
jmp 0x101717bc
mov eax, ecx
sub eax, 1
jmp 0x1016e980
cmp ecx, 0xfffffc19
je case.default.0x10166bdb
mov eax, ecx
jmp 0x101717bc
mov eax, 0xffffffe6
jmp 0x101717bc
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xe0]
cmp eax, ecx
je 0x1016e9b0
push eax
call dword [0x101fd4b4]
add esp, 4
mov eax, edi
jmp 0x101717bc
mov eax, 0xfffffffa
jmp 0x101717bc
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x7c], eax
mov eax, 1
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push edi
push ebp
push ebx
push esi
call fcn.10164890
add esp, 0x1c
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push edi
push ebp
push ebx
jmp 0x1016ea28
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
mov eax, dword [esp + 0x20]
push edx
push edi
push ebp
add eax, 3
push eax
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016ea62
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
lea eax, [edx + 3]
push ecx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov eax, dword [esp + 0x10]
mov dword [eax + 0xb4], ebx
mov eax, 0xfffffc1b
jmp 0x101717bc
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x7c], eax
mov eax, 0xfffffc1a
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x8c], edi
jmp 0x101717bc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x80], esi
mov dword [eax + 0x8c], edi
mov dword [eax + 0x7c], ecx
mov eax, 1
jmp 0x101717bc
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x88]
test ecx, ecx
je case.default.0x10166bdb
mov edx, dword [esp + 0x10]
lea eax, [esi + 1]
cmp eax, dword [edx + 0x78]
jb case.default.0x10166bdb
cmp dword [edx + 0x18], 0
jne case.default.0x10166bdb
cmp dword [edx + 0x1c], 2
jne case.default.0x10166bdb
mov al, byte [esi]
cmp al, byte [edx + 0x34]
jne case.default.0x10166bdb
mov dword [edx + 0x64], 1
cmp ecx, 1
jmp 0x1016eb0d
mov eax, ecx
jmp 0x1016eab8
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10166bdb
cmp esi, dword [ebx + 0x84]
jbe case.default.0x10166bdb
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
xor eax, eax
jmp 0x101717bc
mov ecx, dword [esp + 0x10]
cmp eax, 0xfffffffe
jne 0x1016f158
mov esi, dword [ecx + 0x78]
jmp 0x1016f158
mov dword [esp + 0x44], esi
cmp ebp, ebx
jge 0x1016eb93
push dword [esp + 0x40]
push dword [esp + 0x14]
push ecx
push esi
push edi
call fcn.10172610
add esp, 0x14
test eax, eax
js 0x1016eb5b
mov ecx, dword [esp + 0x20]
inc ebp
add esi, eax
cmp ebp, ebx
jl 0x1016eb37
jmp 0x1016eb89
cmp eax, 0xfffffffe
jne 0x1016eb89
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x88]
test ecx, ecx
je 0x1016eb89
mov eax, dword [edx + 0x78]
cmp eax, dword [edx + 0x84]
jbe 0x1016eb89
mov dword [edx + 0x64], 1
cmp ecx, 1
jg 0x101713f5
mov ebp, dword [esp + 0x44]
cmp esi, ebp
jb case.default.0x10166bdb
jmp 0x1016eb97
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x20]
nop dword [eax + eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
sub esi, ebx
cmp esi, ebp
jae 0x1016eba0
jmp 0x101717bc
cmp eax, 0xfffffffe
jne 0x1016ebe1
mov esi, dword [ebx + 0x78]
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jb case.default.0x10166bdb
jmp 0x1016eafb
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x10166bdb
cmp esi, dword [ecx + 0x84]
jbe case.default.0x10166bdb
mov dword [ecx + 0x64], 1
jmp 0x1016eb0a
mov eax, dword [esp + 0x180]
mov ebp, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push ebp
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov eax, esi
dec esi
cmp eax, edi
jbe case.default.0x10166bdb
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016ec70
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x1016ec66
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push ebp
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016ec53
jmp 0x101717bc
cmp esi, edi
jb case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
dec esi
cmp esi, edi
jae 0x1016eca1
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
test edx, edx
je 0x1016ee73
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
nop
cmp edi, dword [esp + 0x20]
jge case.default.0x10166bdb
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ec01
movzx edx, byte [esi]
inc esi
mov edi, edx
mov eax, edx
cmp edx, 0xc0
jb 0x1016ee17
test dl, 0x20
jne 0x1016ed58
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
mov edi, edx
mov eax, edx
jmp 0x1016ee17
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x1016ed83
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
mov edi, edx
mov eax, edx
jmp 0x1016ee17
test dl, 8
jne 0x1016edaa
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
add esi, 3
mov edi, edx
mov eax, edx
jmp 0x1016ee17
test dl, 4
jne 0x1016eddd
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
add esi, 4
mov edi, edx
mov eax, edx
jmp 0x1016ee17
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
add esi, 5
mov edx, ecx
mov edi, ecx
mov eax, ecx
cmp eax, 0xff
jbe 0x1016ee25
cmp dword [esp + 0x38], 0x6e
jmp 0x1016ee37
and edx, 7
shr edi, 3
mov eax, 1
mov ecx, edx
shl eax, cl
test byte [edi + ebx], al
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016ed10
jmp 0x101717bc
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov ecx, ebp
nop word [eax + eax]
cmp ecx, dword [esp + 0x20]
jge case.default.0x10166bdb
cmp esi, dword [edi + 0x78]
jae 0x1016eefa
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
inc esi
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebx], al
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
push eax
push dword [esp + 0x38]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016eea0
jmp 0x101717bc
mov eax, dword [edi + 0x88]
test eax, eax
je case.default.0x10166bdb
cmp esi, dword [edi + 0x84]
jbe case.default.0x10166bdb
mov dword [edi + 0x64], 1
jmp 0x1016eb0a
mov eax, dword [esp + 0x180]
mov edi, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edi
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
nop dword [eax]
mov eax, esi
dec esi
cmp eax, ebp
jbe case.default.0x10166bdb
cmp dword [esp + 0x24], 0
je 0x1016ef7a
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016ef7a
nop word [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x1016ef70
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edi
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016ef50
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebx
cmp edi, dword [esp + 0x20]
jge case.default.0x10166bdb
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ec01
movzx edx, byte [esi]
inc esi
mov edi, dword [esp + 0x24]
test edi, edi
je 0x1016f0f0
cmp edx, 0xc0
jb 0x1016f0f0
test dl, 0x20
jne 0x1016f01f
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016f0f0
test dl, 0x10
jne 0x1016f046
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016f0f0
test dl, 8
jne 0x1016f079
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1016f0f0
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016f0b5
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1016f0f0
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
push edi
push ebp
push edx
call fcn.10173fd0
add esp, 0xc
test eax, eax
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebx
inc eax
mov edi, ebx
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016efd3
jmp 0x101717bc
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10166bdb
cmp esi, edi
jb case.default.0x10166bdb
jmp 0x1016eafb
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x10166bdb
cmp esi, dword [ecx + 0x78]
jb case.default.0x10166bdb
jmp 0x1016ec0f
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
mov ebx, dword [ebx + 0x78]
mov eax, ebx
mov edi, dword [esp + 0x30]
sub eax, edi
cmp esi, eax
ja 0x1016f219
mov edx, dword [esp + 0x50]
mov ecx, esi
sub edi, 4
jb 0x1016f1e1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016f1e6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1016f1d0
cmp edi, 0xfffffffc
je 0x1016f213
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016f219
cmp edi, 0xfffffffd
je 0x1016f213
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016f219
cmp edi, 0xfffffffe
je 0x1016f213
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016f219
cmp edi, 0xffffffff
je 0x1016f213
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016f219
add esi, dword [esp + 0x30]
jmp 0x1016f287
mov edi, dword [esp + 0x20]
test edi, edi
jle 0x1016f2be
mov eax, ebx
sub eax, edi
cmp esi, eax
ja 0x1016f2be
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x1016f251
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016f256
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1016f240
cmp edi, 0xfffffffc
je 0x1016f283
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016f2be
cmp edi, 0xfffffffd
je 0x1016f283
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016f2be
cmp edi, 0xfffffffe
je 0x1016f283
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016f2be
cmp edi, 0xffffffff
je 0x1016f283
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016f2be
add esi, dword [esp + 0x20]
mov eax, dword [esp + 0x180]
inc ebp
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
mov edi, ebp
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016f1a5
jmp 0x101717bc
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x10166bdb
cmp esi, ebx
jb case.default.0x10166bdb
jmp 0x1016ec0f
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
nop dword [eax + eax]
cmp ebp, dword [esp + 0x28]
jge case.default.0x10166bdb
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ec01
movzx eax, byte [esi]
cmp ebx, eax
je 0x1016f336
cmp edi, eax
jne case.default.0x10166bdb
mov eax, dword [esp + 0x20]
inc esi
inc eax
mov dword [esp + 0x20], eax
mov ebp, eax
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016f310
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov ecx, ebp
nop
cmp ecx, edi
jge case.default.0x10166bdb
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ec01
movzx eax, byte [esi]
inc esi
cmp ebx, eax
jne case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
push eax
push dword [esp + 0x38]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016f3a0
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
cmp dword [esp + 0x24], 0
je 0x1016f59b
test eax, eax
jne 0x101717bc
mov edi, ebp
nop dword [eax + eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x1016f575
movzx ecx, byte [esi]
inc esi
mov eax, ecx
cmp ecx, 0xc0
jb 0x1016f530
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016f472
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016f52e
test cl, 0x10
jne 0x1016f493
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016f52e
test cl, 8
jne 0x1016f4bd
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016f52e
test cl, 4
jne 0x1016f4f3
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016f52e
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
cmp ebx, ecx
je case.default.0x10166bdb
cmp dword [esp + 0x38], eax
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push edx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016f430
jmp 0x101717bc
mov eax, dword [edx + 0x88]
test eax, eax
je case.default.0x10166bdb
cmp esi, dword [edx + 0x84]
jbe case.default.0x10166bdb
mov dword [edx + 0x64], 1
jmp 0x1016eb0a
test eax, eax
jne 0x101717bc
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ec01
movzx eax, byte [esi]
cmp ebx, eax
je case.default.0x10166bdb
cmp dword [esp + 0x38], eax
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc esi
inc eax
inc ebp
push eax
push dword [esp + 0x38]
mov edi, ebp
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016f5a5
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
test edx, edx
je 0x1016f7a0
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov ebx, ebp
nop dword [eax]
cmp ebx, dword [esp + 0x28]
jge case.default.0x10166bdb
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ec01
movzx ebx, byte [esi]
inc esi
mov dword [esp + 0x4c], ebx
cmp ebx, 0xc0
jb 0x1016f761
mov al, byte [esi]
test bl, 0x20
jne 0x1016f681
and ebx, 0x1f
movzx eax, al
inc esi
shl ebx, 6
jmp 0x1016f75c
lea ecx, [esi + 1]
test bl, 0x10
jne 0x1016f6a5
and ebx, 0xf
movzx eax, al
and eax, 0x3f
shl ebx, 6
or ebx, eax
add esi, 2
movzx eax, byte [ecx]
shl ebx, 6
jmp 0x1016f758
lea edx, [esi + 2]
test bl, 8
jne 0x1016f6d4
and ebx, 7
movzx eax, al
and eax, 0x3f
shl ebx, 6
or ebx, eax
add esi, 3
movzx eax, byte [ecx]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx]
shl ebx, 6
jmp 0x1016f758
mov ebp, dword [esp + 0x4c]
lea edi, [esi + 3]
test bl, 4
jne 0x1016f70f
movzx ebx, al
and ebp, 3
movzx eax, byte [ecx]
and ebx, 0x3f
shl ebp, 6
and eax, 0x3f
or ebx, ebp
add esi, 4
shl ebx, 6
or ebx, eax
movzx eax, byte [edx]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edi]
shl ebx, 6
jmp 0x1016f750
and ebp, 1
movzx eax, al
and eax, 0x3f
shl ebp, 6
or ebp, eax
lea ebx, [esi + 4]
movzx eax, byte [ecx]
add esi, 5
and eax, 0x3f
shl ebp, 6
or ebp, eax
movzx eax, byte [edx]
and eax, 0x3f
shl ebp, 6
or ebp, eax
movzx eax, byte [edi]
and eax, 0x3f
shl ebp, 6
or ebp, eax
movzx eax, byte [ebx]
shl ebp, 6
mov dword [esp + 0x4c], ebp
mov ebx, ebp
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
and eax, 0x3f
or ebx, eax
cmp edi, ebx
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov dword [esp + 0x20], ebp
push eax
push dword [esp + 0x38]
mov ebx, ebp
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016f640
jmp 0x101717bc
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov ecx, ebp
cmp ecx, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp edi, eax
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016f7c4
jmp 0x101717bc
test eax, eax
js 0x101709c8
cmp eax, 0xa
ja case.default.0x1016742a
jmp dword [eax*4 + 0x10172248]
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
nop dword [eax + eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
je 0x1016f8aa
cmp eax, 0xc0
jb 0x1016f8aa
test al, 0x20
jne 0x1016f88c
inc esi
jmp 0x1016f8aa
test al, 0x10
jne 0x1016f895
add esi, 2
jmp 0x1016f8aa
test al, 8
jne 0x1016f89e
add esi, 3
jmp 0x1016f8aa
test al, 4
jne 0x1016f8a7
add esi, 4
jmp 0x1016f8aa
add esi, 5
cmp dword [esp + 0x48], 0
jne case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016f860
jmp 0x101717bc
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x1016fa31
cmp eax, 0xc0
jb 0x1016fa31
test al, 0x20
jne 0x1016f95e
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016fa2f
test al, 0x10
jne 0x1016f984
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016fa2f
test al, 8
jne 0x1016f9b6
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016fa2f
test al, 4
movzx eax, byte [esi]
jne 0x1016f9f1
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016fa2f
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016fa4b
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp eax, 9
je 0x1016fa70
cmp eax, 5
je 0x1016fa70
cmp eax, 8
je 0x1016fa70
xor eax, eax
jmp 0x1016fa75
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016f915
jmp 0x101717bc
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x1016fbff
cmp eax, 0xc0
jb 0x1016fbff
test al, 0x20
jne 0x1016fb2c
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016fbfd
test al, 0x10
jne 0x1016fb52
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016fbfd
test al, 8
jne 0x1016fb84
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016fbfd
test al, 4
movzx eax, byte [esi]
jne 0x1016fbbf
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016fbfd
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016fc19
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x4c]
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp dword [eax*4 + 0x101c26a0], edx
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016fae3
jmp 0x101717bc
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x1016fdc9
cmp eax, 0xc0
jb 0x1016fdc9
test al, 0x20
jne 0x1016fcf9
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016fdc7
test al, 0x10
jne 0x1016fd1f
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016fdc7
test al, 8
jne 0x1016fd4e
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016fdc7
test al, 4
movzx eax, byte [esi]
jne 0x1016fd89
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016fdc7
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016fde3
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016fcb0
jmp 0x101717bc
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x1016ff89
cmp eax, 0xc0
jb 0x1016ff89
test al, 0x20
jne 0x1016feb9
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016ff87
test al, 0x10
jne 0x1016fedf
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x1016ff87
test al, 8
jne 0x1016ff0e
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x1016ff87
test al, 4
movzx eax, byte [esi]
jne 0x1016ff49
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x1016ff87
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x1016ffa3
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d08]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1016fe70
jmp 0x101717bc
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x10170149
cmp eax, 0xc0
jb 0x10170149
test al, 0x20
jne 0x10170079
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10170147
test al, 0x10
jne 0x1017009f
movzx eax, byte [esi]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10170147
test al, 8
jne 0x101700ce
movzx eax, byte [esi]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10170147
test al, 4
movzx eax, byte [esi]
jne 0x10170109
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10170147
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x10170163
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x1017018a
cmp eax, 3
je 0x1017018a
xor eax, eax
jmp 0x1017018f
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x10170030
jmp 0x101717bc
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov eax, ecx
mov dword [esp + 0x20], ecx
mov edx, ecx
mov ebx, ecx
mov edi, ecx
mov ebp, ecx
je 0x10170323
mov dword [esp + 0x20], ecx
cmp ecx, 0xc0
jb 0x10170323
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10170259
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10170315
test cl, 0x10
jne 0x1017027a
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10170315
test cl, 8
jne 0x101702a4
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10170315
test cl, 4
jne 0x101702da
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10170315
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov dword [esp + 0x20], ecx
mov eax, ecx
mov edx, ecx
mov ebx, ecx
mov edi, ecx
mov ebp, ecx
cmp dword [esp + 0x20], 0x20
ja 0x10170342
cmp eax, 0x20
je case.0x10170448.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x10170448.8203
jmp dword [eax*4 + 0x10172274]
cmp ecx, 0x2000
ja 0x1017041e
cmp edx, 0x2000
je case.0x10170448.8193
cmp ebx, 0x1680
ja 0x10170413
cmp ecx, 0x1680
je case.0x10170448.8193
mov eax, ecx
sub eax, 0x85
je case.0x10170448.8193
sub eax, 0x1b
je case.0x10170448.8193
mov eax, ecx
test eax, eax
jns 0x10170391
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x101703ab
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
cmp dword [eax*4 + 0x101c26a0], 6
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166bdb
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
inc eax
mov dword [esp + 0x38], eax
mov edi, eax
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x10170200
jmp 0x101717bc
cmp ecx, 0x180e
jmp 0x10170382
cmp edi, 0x3000
ja case.0x10170448.8203
cmp ebp, 0x3000
je case.0x10170448.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x10170448.8203
movzx eax, byte [eax + 0x10172290]
jmp dword [eax*4 + 0x10172288]
cmp dword [esp + 0x48], 0
jne case.default.0x10166bdb
jmp 0x101703d4
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
mov edi, eax
je 0x101705af
cmp eax, 0xc0
jb 0x101705af
test al, 0x20
jne 0x101704db
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x101705ab
test al, 0x10
jne 0x10170501
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x101705ab
test al, 8
jne 0x10170530
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x101705ab
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1017056d
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x101705ab
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov edx, ecx
mov edi, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x101705c9
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx eax, byte [eax*8 + 0x101c2d09]
mov eax, dword [eax*4 + 0x101c26a0]
cmp eax, 1
je 0x101705f5
cmp eax, 3
je 0x101705f5
cmp edi, 0x5f
je 0x101705f5
xor eax, eax
jmp 0x101705fa
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x10170490
jmp 0x101717bc
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
nop dword [eax + eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, edx
je 0x1017078d
cmp edx, 0xc0
jb 0x1017078d
test dl, 0x20
jne 0x101706bd
movzx ecx, byte [esi]
mov eax, edx
and ecx, 0x3f
and eax, 0x1f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x1017078b
test dl, 0x10
jne 0x101706e4
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1017078b
test dl, 8
jne 0x10170714
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1017078b
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10170750
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1017078b
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, edx
mov eax, dword [esp + 0x4c]
cmp ecx, dword [eax*4 + 0x101c2bc8]
lea eax, [eax*4 + 0x101c2bc8]
jb 0x101707b0
mov ecx, dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x101707ee
mov ecx, dword [eax]
cmp edx, ecx
jae 0x101707a3
cmp dword [esp + 0x48], 0
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x10170670
jmp 0x101717bc
cmp dword [esp + 0x48], 0
jne case.default.0x10166bdb
jmp 0x101707bb
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
cmp esi, dword [ebx + 0x78]
jae 0x1016eaf1
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
je 0x10170957
cmp edx, 0xc0
jb 0x10170957
test dl, 0x20
jne 0x10170881
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x1017094f
test dl, 0x10
jne 0x101708a8
movzx ecx, byte [esi]
and edx, 0xf
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1017094f
test dl, 8
jne 0x101708d8
movzx ecx, byte [esi]
and edx, 7
movzx eax, byte [esi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1017094f
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10170914
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1017094f
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
mov ecx, eax
mov edi, eax
mov ebx, eax
cmp eax, 0x24
je 0x10170982
cmp ecx, 0x40
je 0x10170982
cmp edi, 0x60
je 0x10170982
cmp ebx, 0xa0
jb 0x10170976
cmp edx, 0xd7ff
jbe 0x10170982
cmp edx, 0xe000
jae 0x10170982
xor eax, eax
jmp 0x10170987
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x38]
mov edi, ebp
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x10170830
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
cmp ecx, 0x16
jne 0x10170ce7
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016eaf1
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
mov edi, esi
je 0x10170b23
cmp eax, 0xc0
jb 0x10170b23
test al, 0x20
jne 0x10170a4f
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x10170b1f
test al, 0x10
jne 0x10170a75
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x10170b1f
test al, 8
jne 0x10170aa4
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x10170b1f
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x10170ae1
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x10170b1f
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov edi, esi
mov edx, ecx
shr ecx, 7
movzx eax, byte [ecx + 0x101c4388]
shl eax, 7
and edx, 0x8000007f
jns 0x10170b3d
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6588]
movzx ebx, byte [eax*8 + 0x101c2d0a]
cmp edi, ebp
jae 0x10170c81
nop word [eax + eax]
cmp dword [esp + 0x24], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x10170c39
cmp edx, 0xc0
jb 0x10170c39
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10170ba1
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10170c35
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10170bb9
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10170c2f
and eax, 0x3f
test dl, 8
jne 0x10170bd9
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10170c2f
test dl, 4
jne 0x10170c02
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x10170c2f
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
movzx eax, byte [edx + 0x101c4388]
shl eax, 7
and ecx, 0x8000007f
jns 0x10170c53
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6588]
movzx ecx, byte [eax*8 + 0x101c2d0a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101c2718], eax
je 0x10170c81
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x10170b60
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10170cac
cmp esi, dword [ebx + 0x78]
jb 0x10170cac
cmp esi, dword [ebx + 0x84]
jbe 0x10170cac
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x101713f5
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
mov edi, eax
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x10170a02
jmp 0x101717bc
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x1017119d
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x1016eefa
cmp dword [esp + 0x30], 0xc
jne 0x10170d84
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10170d5f
push ebx
lea eax, [edi + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.10173960
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10166bdb
jmp 0x10170d84
mov edx, dword [edi + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x10170d84
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x10170d84
cmp edx, 1
je case.default.0x10166bdb
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.default.0x10166bdb
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x40], edx
mov ecx, edx
mov dword [esp + 0x20], ecx
mov edi, edx
mov dword [esp + 0x4c], edi
mov eax, edx
mov ebx, edx
mov ebp, edx
cmp edx, 0xc0
jb 0x10170e82
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x10170dc5
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x10170e6c
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x10170de6
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x10170e6c
test dl, 8
jne 0x10170e09
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x10170e6c
test dl, 4
jne 0x10170e38
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x10170e6c
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
mov ecx, eax
mov dword [esp + 0x40], eax
mov edi, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x4c], edi
mov ebx, eax
mov ebp, eax
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.default.0x1016742a
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x101722f0]
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x88]
test ecx, ecx
je case.0x10170e99.13
cmp esi, dword [edi + 0x78]
jb case.0x10170e99.13
cmp dword [edi + 0x18], 0
jne case.0x10170e99.13
cmp dword [edi + 0x1c], 2
jne case.0x10170e99.13
movzx eax, byte [edi + 0x34]
cmp edx, eax
jne case.0x10170e99.13
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x101713f5
jmp case.0x10170e99.13
cmp edx, 0x85
ja 0x10170f29
je case.0x10170f06.11
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10166bdb
jmp dword [edx*4 + 0x10172330]
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae case.0x10170e99.13
cmp byte [esi], 0xa
jne case.0x10170e99.13
inc esi
jmp case.0x10170e99.13
sub edx, 0x2028
je case.0x10170f06.11
sub edx, 1
jne case.default.0x10166bdb
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x68], 0
jne case.default.0x10166bdb
jmp case.0x10170e99.13
cmp edx, 0x2000
ja 0x10170f91
je case.default.0x10166bdb
cmp edx, 0xa0
ja 0x10170f7a
je case.default.0x10166bdb
cmp edx, 9
je case.default.0x10166bdb
cmp edx, 0x20
jmp 0x10171155
cmp edx, 0x1680
je case.default.0x10166bdb
cmp edx, 0x180e
jmp 0x10171155
cmp edx, 0x3000
ja case.0x10170e99.13
je case.default.0x10166bdb
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10170e99.13
movzx eax, byte [edx + 0x10172348]
jmp dword [eax*4 + 0x10172340]
cmp edx, 0x2000
ja 0x10171010
je case.0x10170e99.13
cmp edx, 0xa0
ja 0x10170ff3
je case.0x10170e99.13
cmp edx, 9
je case.0x10170e99.13
cmp edx, 0x20
jne case.default.0x10166bdb
jmp case.0x10170e99.13
cmp edx, 0x1680
je case.0x10170e99.13
cmp edx, 0x180e
jne case.default.0x10166bdb
jmp case.0x10170e99.13
cmp edx, 0x3000
ja case.default.0x10166bdb
je case.0x10170e99.13
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x10166bdb
movzx eax, byte [edx + 0x101723b0]
jmp dword [eax*4 + 0x101723a8]
cmp edx, 0x85
ja 0x10171060
je case.default.0x10166bdb
add edx, 0xfffffff6
cmp edx, 3
ja case.0x10170e99.13
jmp dword [edx*4 + 0x10172410]
sub edx, 0x2028
je case.default.0x10166bdb
sub edx, 1
jmp 0x10171155
cmp edx, 0x85
ja 0x10171095
je case.0x10170e99.13
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10166bdb
jmp dword [edx*4 + 0x10172420]
sub edx, 0x2028
je case.0x10170e99.13
sub edx, 1
jne case.default.0x10166bdb
jmp case.0x10170e99.13
cmp eax, 0x100
jae case.0x10170e99.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne case.default.0x10166bdb
jmp case.0x10170e99.13
cmp dword [esp + 0x20], 0x100
jae case.default.0x10166bdb
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jmp 0x10171155
cmp dword [esp + 0x4c], 0x100
jae case.0x10170e99.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne case.default.0x10166bdb
jmp case.0x10170e99.13
cmp ebx, 0x100
jae case.default.0x10166bdb
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jmp 0x10171155
cmp ebp, 0x100
jae case.0x10170e99.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne case.default.0x10166bdb
jmp case.0x10170e99.13
cmp dword [esp + 0x40], 0x100
jae case.default.0x10166bdb
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je case.default.0x10166bdb
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
mov edi, eax
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov ebx, dword [esp + 0x24]
jmp 0x10170d16
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166bdb
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x101713cb
mov edi, dword [esp + 0x30]
cmp edi, 0xc
jne 0x1017122e
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10171209
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.10173960
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10166bdb
jmp 0x1017122e
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1017122e
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1017122e
cmp edx, 1
je case.default.0x10166bdb
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10166bdb
movzx ecx, byte [esi]
lea eax, [edi - 6]
inc esi
cmp eax, 0xf
ja case.default.0x1016742a
jmp dword [eax*4 + 0x10172430]
mov edx, dword [ebx + 0x88]
test edx, edx
je case.0x1017123e.13
cmp esi, dword [ebx + 0x78]
jb case.0x1017123e.13
cmp dword [ebx + 0x18], 0
jne case.0x1017123e.13
cmp dword [ebx + 0x1c], 2
jne case.0x1017123e.13
movzx eax, byte [ebx + 0x34]
cmp ecx, eax
jne case.0x1017123e.13
mov dword [ebx + 0x64], 1
cmp edx, 1
jg 0x101713f5
jmp case.0x1017123e.13
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.default.0x10166bdb
movzx eax, byte [ecx + 0x10172480]
jmp dword [eax*4 + 0x10172470]
cmp esi, dword [ebx + 0x78]
jae case.0x1017123e.13
cmp byte [esi], 0xa
jne case.0x1017123e.13
inc esi
jmp case.0x1017123e.13
cmp dword [ebx + 0x68], 0
jne case.default.0x10166bdb
jmp case.0x1017123e.13
cmp ecx, 9
je case.default.0x10166bdb
cmp ecx, 0x20
je case.default.0x10166bdb
cmp ecx, 0xa0
jmp 0x10171388
cmp ecx, 9
je case.0x1017123e.13
cmp ecx, 0x20
je case.0x1017123e.13
cmp ecx, 0xa0
jne case.default.0x10166bdb
jmp case.0x1017123e.13
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x1017123e.13
movzx eax, byte [ecx + 0x10172504]
jmp dword [eax*4 + 0x101724fc]
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.default.0x10166bdb
movzx eax, byte [ecx + 0x10172588]
jmp dword [eax*4 + 0x10172580]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10166bdb
jmp case.0x1017123e.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jmp 0x10171388
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.default.0x10166bdb
jmp case.0x1017123e.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jmp 0x10171388
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10166bdb
jmp case.0x1017123e.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10166bdb
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x38]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x101711c1
jmp 0x101717bc
mov eax, 0xfffffff2
jmp 0x101717bc
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10166bdb
cmp esi, dword [ebx + 0x84]
jbe case.default.0x10166bdb
mov dword [ebx + 0x64], 1
cmp eax, 1
jle case.default.0x10166bdb
mov eax, 0xfffffff4
jmp 0x101717bc
test eax, eax
jne case.default.0x10165181
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [edx + 0x90], ebp
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x44]
add dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov dword [edx + 0xac], eax
cmp byte [ecx], 0x77
jne 0x10171444
mov edi, edx
jmp 0x1016e770
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0xc]
lea eax, [ebx + ebx]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov dword [ecx + eax*4], edx
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub edx, ebx
mov eax, dword [esp + 0x4c]
mov dword [ecx + edx*4], eax
mov eax, edi
jmp 0x101717bc
cmp ecx, 0xfffffc1b
jne 0x101714c8
mov ebx, dword [esp + 0x18]
cmp byte [ebx], 0x81
je 0x101714b9
cmp byte [ebx], 0x77
mov edi, ebx
jne 0x101714a8
mov esi, ebx
movzx ecx, byte [ebx + 1]
movzx ebx, byte [ebx + 2]
shl ecx, 8
or ebx, ecx
add ebx, esi
mov edi, ebx
mov esi, ebx
cmp byte [ebx], 0x77
je 0x10171490
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
mov ebx, edi
shl ecx, 8
or ecx, eax
sub ebx, ecx
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp dword [eax + 0xb4], ebx
cmove edx, ecx
mov eax, edx
jmp 0x101717bc
mov edx, dword [esp + 0x18]
lea edi, [edx + 2]
mov dword [ebx + 0xb0], edi
mov dword [ebx + 0xac], 0
mov eax, dword [esp + 0x180]
movzx ecx, byte [edx + 1]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx]
push ebx
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101c2588]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10164890
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x1017152f
cmp edx, 0xfffffc19
je 0x1017152f
cmp edx, 0xfffffc1a
jne 0x10171545
cmp dword [ebx + 0xac], 0
jne 0x10171545
mov dword [ebx + 0xac], edi
mov eax, edx
jmp 0x101717bc
cmp edx, 0xfffffc1f
jne 0x1017157d
mov eax, dword [ebx + 0x7c]
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x10171570
test cl, cl
je 0x1017156c
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x10171570
add edi, 2
add eax, 2
test cl, cl
jne 0x10171550
xor eax, eax
jmp 0x10171575
sbb eax, eax
or eax, 1
test eax, eax
je 0x10171694
mov eax, edx
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx + 0x101c2588]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164890
add esp, 0x1c
mov ecx, 0xfffffc1c
test eax, eax
cmovne ecx, eax
mov eax, ecx
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx + 0x101c2588]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1017165a
jmp 0x101717bc
mov edx, dword [esp + 0x18]
lea edi, [edx + 2]
mov dword [ebx + 0xb0], edi
mov dword [ebx + 0xac], 0
mov eax, dword [esp + 0x180]
movzx ecx, byte [edx + 1]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx]
push ebx
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101c2588]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10164890
add esp, 0x1c
cmp eax, 1
je 0x10171643
cmp eax, 0xfffffc19
jne 0x10171652
cmp dword [ebx + 0xac], 0
jne 0x10171652
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x101717bc
mov eax, 0xfffffc1d
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx + 0x101c2588]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
jne 0x101717bc
mov dword [ebx + 0x7c], esi
mov eax, 0xfffffc1e
jmp 0x101717bc
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx + 0x101c2588]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164890
add esp, 0x1c
test eax, eax
je 0x1017173e
jmp 0x101717bc
mov edx, dword [esp + 0x18]
lea edi, [edx + 2]
mov dword [ebx + 0xb0], edi
mov dword [ebx + 0xac], 0
mov eax, dword [esp + 0x180]
movzx ecx, byte [edx + 1]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx]
push ebx
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101c2588]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10164890
add esp, 0x1c
cmp eax, 1
je 0x10171727
cmp eax, 0xfffffc19
jne 0x10171736
cmp dword [ebx + 0xac], 0
jne 0x10171736
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x101717bc
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x7c], eax
mov eax, 0xfffffc20
jmp 0x101717bc
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jne 0x10171786
cmp edx, 0x9f
je 0x10171786
cmp dword [ebx + 0xa4], 0
jne 0x10171786
cmp dword [ebx + 0x5c], 0
jne case.default.0x10166bdb
cmp dword [ebx + 0x60], 0
je 0x10171786
mov eax, dword [ebx + 0x94]
add eax, dword [ebx + 0x74]
cmp ecx, eax
je case.default.0x10166bdb
mov dword [ebx + 0x80], esi
test edx, edx
mov dword [ebx + 0x8c], edi
mov eax, 0xfffffc19
mov dword [ebx + 0x7c], ecx
mov ecx, 1
cmove eax, ecx
jmp 0x101717bc
mov eax, 0xfffffffb
jmp 0x101717bc
mov eax, 0xffffffeb
jmp 0x101717bc
inc eax
mov dword [edi], eax
mov eax, 0xfffffff8
mov ecx, dword [esp + 0x160]
pop edi
pop ebp
pop ebx
pop esi
xor ecx, esp
call fcn.10176fcb
add esp, 0x154
ret