Function at 0x10164710
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 0x101647bf
lea eax, [esp + 0x174]
cmp dword [esp + 0x174], edx
jne 0x101647a0
push 1
push edx
push edx
push edx
push edx
push edx
push eax
call fcn.10164710
add esp, 0x1c
pop esi
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.10176e3f
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.10176e3f
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 0x10171634
nop dword [eax + eax]
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x180]
cmp eax, dword [edi + 8]
jae 0x1017162d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 2
jne 0x1016482a
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 0x1016485a
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x10164860
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
jmp 0x10164860
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.0x1016488c.98
movzx eax, byte [edx + 0x101717a4]
jmp dword [eax*4 + 0x10171658]
mov eax, dword [ebx + 0x28]
inc eax
mov dword [ebx + 0x28], eax
cmp eax, dword [ebx + 0x2c]
ja 0x1016e7a8
mov edx, dword [esp + 0x18]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x101c2578]
movzx eax, byte [edx + 1]
add edx, eax
add edx, ecx
mov dword [esp + 0x18], edx
jmp 0x10164860
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.10164710
add esp, 0x1c
cmp eax, 1
je 0x10164974
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x10164940
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 0x10164940
mov ecx, dword [esp + 0x18]
cmp byte [ecx], 0x77
je 0x10164948
cmp byte [edx], 0x77
mov ecx, eax
je 0x10164948
test eax, eax
jne case.default.0x10165001
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 0x101648d5
jmp 0x10164983
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 0x10164991
cmp al, 0x77
jne case.default.0x10166a5b
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 0x10164991
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 0x101649d0
cmp esi, ebp
jne 0x1016df48
mov ebp, dword [esp + 0x24]
add edx, 3
mov dword [esp + 0x18], edx
mov ebx, eax
jmp 0x10164860
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], 0
jmp 0x1016555a
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], 0
jmp 0x1016557b
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 0x10164b22
mov edi, dword [0x102036a4]
test edi, edi
je 0x10164b0f
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.0x10166a5b
js 0x1017163c
mov edx, dword [esp + 0x18]
movzx eax, byte [0x101c25ee]
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.0x10164b41.146
movzx eax, byte [eax + 0x10171860]
jmp dword [eax*4 + 0x10171848]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xa4]
test edx, edx
je case.0x10164b41.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 0x10164b7c
cmp ecx, dword [edx + 4]
jne case.0x10164b41.145
mov eax, dword [esp + 0x44]
mov ebx, 1
movzx ebp, byte [eax + 0x101c2578]
jmp case.0x10164b41.145
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa4], ebx
je case.0x10164b41.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.0x10164b41.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 0x10164c05
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
add edx, esi
mov esi, edx
test edi, edi
jg 0x10164be0
mov esi, dword [esp + 0x14]
mov eax, ebx
mov ebp, dword [esp + 0x50]
jmp 0x10164cb5
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 0x10164c3e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], ebx
jl 0x10164c3e
mov ebx, 1
mov eax, ebx
jmp 0x10164cb5
xor ebx, ebx
mov eax, ebx
jmp 0x10164cb5
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.0x10164b41.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 0x10164c9e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x10164c9e
mov ebx, 1
jmp 0x10164ca0
xor ebx, ebx
mov eax, ebx
test ebx, ebx
jne 0x10164d66
mov ecx, dword [esp + 0x10]
add edx, dword [ecx + 0x24]
test edi, edi
jg 0x10164c75
test eax, eax
je case.0x10164b41.145
mov eax, dword [esp + 0x44]
movzx ebp, byte [eax + 0x101c2578]
jmp case.0x10164b41.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.10164710
add esp, 0x1c
cmp eax, 1
jne 0x10164d73
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 0x10164d24
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 0x10164d56
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 0x10164d40
movzx eax, byte [edi + 0x101c2578]
sub edx, eax
add edx, 3
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x44]
movzx ebp, byte [eax + 0x101c2578]
jmp case.0x10164b41.145
test eax, eax
je case.0x10164b41.145
cmp eax, 0xfffffc20
jne 0x1017163c
mov edx, dword [esp + 0x18]
add edx, ebp
mov dword [esp + 0x18], edx
test ebx, ebx
jne 0x1016dfb3
cmp byte [edx - 3], 0x77
je 0x1016dfb3
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
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 0x10164dfa
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 0x10164860
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 0x101674c7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + edi*4]
cmp ecx, edx
jae 0x10164e4f
mov eax, ecx
nop dword [eax + eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x10164e40
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 0x10164860
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x10164e8e
mov dword [eax + 0x98], 0
mov ebx, 1
jmp 0x10164e90
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.10164710
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x10164f2e
cmp edx, 0xfffffc19
je 0x10164f2e
mov dword [ebp + 0xac], edi
cmp edx, 0xfffffc20
jne 0x10164f04
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 0x10164f04
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10164f00
cmp byte [ecx], 0x77
mov eax, edx
jne 0x10164f04
xor edx, edx
xor eax, eax
test edx, edx
jne 0x1017163c
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 0x10164e96
jmp 0x10164f3b
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.0x10166a5b
test ebx, ebx
jne 0x1016e92a
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 0x10164f50
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 0x10164860
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x10164fa6
mov dword [eax + 0x98], 0
mov ebx, 1
jmp 0x10164fa8
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.10164710
mov ecx, eax
add esp, 0x1c
mov eax, dword [esp + 0x10]
mov dword [eax + 0xac], edi
cmp ecx, 0xfffffc1c
jle 0x10165052
test ecx, ecx
jg 0x1016e7f3
je 0x10165030
lea eax, [ecx + 0x3e3]
cmp eax, 3
ja case.default.0x10165001
jmp dword [eax*4 + 0x10171874]
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 0x10165060
cmp byte [edx], 0x77
je 0x10165034
cmp byte [eax], 0x77
jne 0x10165060
jmp 0x10165034
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 0x10164fb0
jmp 0x10165074
jne 0x1016e7fa
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 0x10165060
test ebx, ebx
jne 0x1016e92a
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x10164856
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
test ebp, ebp
je 0x101650d8
or ecx, eax
mov eax, dword [esp + 0x10]
jbe 0x101650ed
mov edx, dword [eax + 0x74]
dec esi
dec ecx
mov dword [esp + 0x14], esi
cmp esi, edx
jb case.default.0x10166a5b
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x101650ce
nop dword [eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x101650c0
mov dword [esp + 0x14], esi
test ecx, ecx
jg 0x101650a6
mov eax, dword [esp + 0x10]
jmp 0x101650ed
or ecx, eax
mov eax, dword [esp + 0x10]
sub esi, ecx
mov dword [esp + 0x14], esi
cmp esi, dword [eax + 0x74]
jb case.default.0x10166a5b
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
cmp esi, dword [eax + 0x84]
jae 0x101674d3
mov ebp, dword [esp + 0x24]
add edx, 3
mov dword [eax + 0x84], esi
mov dword [esp + 0x18], edx
jmp 0x10164860
mov edi, dword [0x102036a4]
test edi, edi
je 0x10165206
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.0x10166a5b
js 0x1017163c
mov edx, dword [esp + 0x18]
add edx, 6
mov dword [esp + 0x18], edx
jmp 0x1016485a
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 0x10165234
xor edx, edx
jmp 0x10165241
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 0x1016526a
nop
cmp edx, dword [ecx + 4]
jne 0x1016525e
cmp esi, dword [ecx + 0x14]
je 0x1016e80d
mov eax, dword [ecx]
mov ecx, eax
test eax, eax
jne 0x10165250
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 0x101652b8
lea eax, [esp + 0xe0]
mov dword [esp + 0x60], eax
jmp 0x101652d9
lea eax, [ecx*4]
push eax
call dword [0x101fd4b0]
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
je 0x1016e837
mov ecx, dword [esp + 0x64]
shl ecx, 2
push ecx
mov ecx, dword [esp + 0x14]
push dword [ecx + 0xc]
push eax
call fcn.101787d0
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [ebx], 0x88
sbb ebp, ebp
inc ebp
test ebp, ebp
je 0x1016530b
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 + 0x101c2578]
push dword [esp + 0x3c]
add eax, ebx
push eax
push esi
call fcn.10164710
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.101787d0
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 0x101653e4
cmp edi, 0xfffffc19
je 0x101653e4
cmp edi, 0xfffffc1c
jl 0x1016538c
cmp edi, 0xfffffc20
jle 0x101653c0
test edi, edi
jne 0x1016e817
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 0x101652f7
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.0x10166a5b
push eax
call dword [0x101fd4b4]
add esp, 4
xor eax, eax
jmp 0x1017163c
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xe0]
cmp eax, ecx
je 0x101653fd
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 0x1016485a
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 0x10165430
mov dword [esp + 0x18], edx
jmp 0x10164860
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
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 0x10165480
lea edx, [edi + 3]
mov dword [esp + 0x18], edx
jmp 0x1016485a
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 0x101654b0
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
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 0x10165510
lea edx, [eax + 3]
mov dword [esp + 0x18], edx
jmp 0x10164860
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 0x1016555a
cmp edx, 0x8b
jne 0x1016557b
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 0x101656e8
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 0x101655a2
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 + 0x101c2578]
push dword [esp + 0x3c]
add eax, ecx
push eax
push esi
call fcn.10164710
add esp, 0x1c
cmp eax, 0xfffffc1a
jne 0x10165620
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 0x1016569d
mov edx, dword [esp + 0x38]
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
jmp 0x10165590
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x10165660
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 0x10165660
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10165668
cmp byte [edx], 0x77
mov eax, ecx
je 0x10165668
test eax, eax
jne case.default.0x10165001
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 0x101656c4
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x90], ebx
jmp 0x10165590
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 0x101656a0
mov ebp, dword [esp + 0x50]
test ebp, ebp
jne 0x101656d4
mov edx, eax
cmp dword [esp + 0x20], ebp
je case.default.0x10166a5b
mov ebx, dword [esp + 0x10]
add edx, 3
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x1016485a
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 0x10165748
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 + 0x101c2578]
add eax, ecx
push eax
push esi
call fcn.10164710
add esp, 0x1c
cmp eax, 0xfffffc1a
jne 0x101657cb
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 0x10165842
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
jmp 0x10165720
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x1016580b
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 0x1016580b
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10165813
cmp byte [edx], 0x77
mov eax, ecx
je 0x10165813
test eax, eax
jne case.default.0x10165001
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 0x1016586c
mov eax, dword [esp + 0x10]
jmp 0x10165720
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 0x10165844
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
jmp 0x101658a1
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x101658a1
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 0x101674c7
test edx, edx
jmp 0x101674c1
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 0x101658dc
cmp cl, 0x81
je 0x101658dc
xor ebp, ebp
jmp 0x101658ec
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 0x101658fa
cmp cl, 0x80
jbe 0x1016e913
cmp cl, 0x82
je 0x1016e913
cmp cl, 0x85
je 0x1016591b
cmp cl, 0x8a
je 0x1016591b
cmp cl, 0x86
je 0x1016591b
cmp cl, 0x8b
jne 0x101659de
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 0x10165942
cmp dword [eax + 4], edi
je 0x1016e841
mov eax, dword [ecx + 0x90]
and eax, 0xffff0000
or eax, edi
mov dword [ecx + 0x90], eax
cmp ebx, dword [ecx + 0x14]
jl 0x1016596f
mov ebx, dword [esp + 0x20]
or eax, 0x10000
mov edi, dword [esp + 0x1c]
mov dword [ecx + 0x90], eax
jmp 0x101659e2
cmp ebx, dword [esp + 0x1c]
jle 0x101659a3
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + ebx*4]
lea ecx, [eax + ecx*4]
cmp ecx, edx
jae 0x1016599f
mov eax, ecx
nop dword [eax + eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x10165990
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 0x101659d8
lea edi, [ebx + 2]
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x20]
jmp 0x101659e2
mov ecx, dword [esp + 0x10]
mov al, byte [edx]
cmp al, 0x7b
je 0x1016e8f6
cmp al, 0x78
je 0x101659f8
cmp esi, ebp
jne 0x1016dff4
cmp byte [ebx], 0x81
je 0x1016e8ba
mov ebx, dword [esp + 0x10]
add edx, 3
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x10164860
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0
je 0x10165a2e
cmp esi, dword [eax + 0x74]
je case.default.0x10166a5b
jmp 0x10165a2e
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x74]
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x10164860
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0
je 0x10165a60
cmp esi, dword [eax + 0x74]
je case.default.0x10166a5b
mov edx, dword [eax + 0x74]
cmp esi, edx
je 0x101677b2
cmp esi, dword [eax + 0x78]
je case.default.0x10166a5b
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x10165aba
cmp esi, edx
jbe 0x10165a9a
push ebp
add eax, 0x1c
push eax
push edx
push ecx
push esi
call fcn.10173970
add esp, 0x14
test eax, eax
je 0x10165a9a
mov eax, 1
jmp 0x10165a9c
xor eax, eax
test eax, eax
je case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x10164860
mov ecx, dword [eax + 0x1c]
lea eax, [ecx + edx]
cmp esi, eax
jb case.default.0x10166a5b
mov ebx, dword [esp + 0x10]
mov eax, esi
sub eax, ecx
mov al, byte [eax]
cmp al, byte [ebx + 0x34]
jne case.default.0x10166a5b
cmp ecx, 1
je case.0x10166a5b.10
mov eax, esi
sub eax, ecx
mov al, byte [eax + 1]
cmp al, byte [ebx + 0x35]
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
mov eax, dword [ebx + 0x94]
add eax, dword [ebx + 0x74]
cmp esi, eax
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x18], edx
jmp 0x10164860
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10165bb7
mov edx, dword [eax + 0x18]
test edx, edx
je 0x10165b83
push ebp
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.101737e0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
je 0x1016e934
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x10164860
mov edx, dword [eax + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016e938
mov ebx, dword [esp + 0x10]
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10165bb0
cmp edx, 1
je case.0x10166a5b.10
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x10166a5b.10
mov eax, ebx
jmp 0x1016e938
cmp dword [eax + 0x48], 0
jne case.default.0x10166a5b
mov eax, dword [eax + 0x88]
mov ebx, dword [esp + 0x10]
test eax, eax
je case.0x10166a5b.10
cmp esi, dword [ebx + 0x84]
jbe case.0x10166a5b.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x48], 0
jne case.default.0x10166a5b
cmp dword [eax + 0x58], 0
je 0x10165c2a
jmp 0x10165c1b
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jb case.default.0x10166a5b
jmp 0x10165bc1
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10165bc1
mov edx, dword [eax + 0x18]
test edx, edx
je 0x10165c5e
push ebp
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.101737e0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
je 0x1016e934
mov ecx, dword [esp + 0x10]
jmp 0x10165c8b
mov edx, dword [eax + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016e938
mov ecx, dword [esp + 0x10]
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x1016e96d
cmp edx, 1
je 0x10165c8b
mov al, byte [esi + 1]
cmp al, byte [ecx + 0x35]
jne 0x1016e96d
mov eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x1c]
cmp esi, eax
mov eax, dword [esp + 0x10]
jne 0x1016e938
jmp 0x10165bc1
test ebp, ebp
je 0x10165f8a
cmp esi, dword [ebx + 0x74]
je 0x10165e01
mov al, byte [esi - 1]
lea edx, [esi - 1]
and al, 0xc0
mov ecx, edx
cmp al, 0x80
jne 0x10165ccd
mov al, byte [edx - 1]
dec edx
and al, 0xc0
mov ecx, edx
cmp al, 0x80
je 0x10165cc1
cmp ecx, dword [ebx + 0x84]
jae 0x10165cdb
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 0x10165d96
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x10165d0b
and eax, 0x1f
mov ebx, ecx
shl eax, 6
jmp 0x10165d8c
movzx eax, byte [edx + 2]
test bl, 0x10
jne 0x10165d1e
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x10165d86
and eax, 0x3f
test bl, 8
jne 0x10165d39
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
jmp 0x10165d86
test bl, 4
jne 0x10165d5d
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 0x10165d86
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 0x10165de9
cmp ebp, 0x5f
je 0x10165de2
shr eax, 7
movzx eax, byte [eax + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x10165dbf
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x10165de2
cmp eax, 3
jne 0x10165e05
mov ebp, 1
jmp 0x10165e07
cmp edi, 0x100
jae 0x10165e05
mov eax, dword [edx + 0x40]
test byte [ebx + eax], 0x10
je 0x10165e05
mov ebp, 1
jmp 0x10165e07
mov edx, dword [esp + 0x10]
xor ebp, ebp
cmp esi, dword [edx + 0x78]
jb 0x10165e3b
mov eax, dword [edx + 0x88]
test eax, eax
je 0x10165e2e
cmp esi, dword [edx + 0x84]
jbe 0x10165e2e
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov ebx, dword [esp + 0x10]
xor ecx, ecx
xor edx, edx
jmp 0x10166039
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
cmp edx, 0xc0
jb 0x10165ef2
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10165e69
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10165eea
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10165e7c
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x10165ee4
and eax, 0x3f
test dl, 8
jne 0x10165e97
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10165ee4
test dl, 4
jne 0x10165ebb
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 0x10165ee4
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 0x10165f5d
cmp ebx, 0x5f
je 0x10165f4d
shr eax, 7
movzx eax, byte [eax + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x10165f1d
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x10165f4d
cmp eax, 3
je 0x10165f4d
mov ebx, dword [esp + 0x10]
xor edx, edx
xor ecx, ecx
jmp 0x10166039
mov ebx, dword [esp + 0x10]
mov edx, 1
mov ecx, edx
jmp 0x10166039
cmp edi, 0x100
jae 0x10165e2e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je 0x10165e2e
mov ebx, dword [esp + 0x10]
mov ecx, 1
mov edx, ecx
jmp 0x10166039
cmp esi, dword [ebx + 0x74]
je 0x1016600c
cmp esi, dword [ebx + 0x84]
ja 0x10165fa0
lea eax, [esi - 1]
mov dword [ebx + 0x84], eax
cmp dword [ebx + 0x54], 0
movzx ecx, byte [esi - 1]
je 0x10165ffc
cmp ecx, 0x5f
je 0x10165ff5
mov eax, ecx
test eax, eax
jns 0x10165fb8
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x10165fd2
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x10165ff5
cmp eax, 3
jne 0x1016600c
mov ebp, 1
jmp 0x1016600e
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x1016600c
mov ebp, 1
jmp 0x1016600e
xor ebp, ebp
cmp esi, dword [ebx + 0x78]
jb 0x10166058
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10166035
cmp esi, dword [ebx + 0x84]
jbe 0x10166035
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
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 0x101660d7
xor eax, eax
cmp ecx, ebp
sete al
jmp 0x101660de
cmp dword [ebx + 0x54], 0
movzx ecx, byte [esi]
je 0x101660be
cmp ecx, 0x5f
je 0x101660b2
mov eax, ecx
test eax, eax
jns 0x1016606f
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x10166089
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x101660b2
cmp eax, 3
je 0x101660b2
xor edx, edx
xor ecx, ecx
jmp 0x10166039
mov edx, 1
mov ecx, edx
jmp 0x10166039
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x10166035
mov ecx, 1
mov edx, ecx
jmp 0x10166039
xor eax, eax
cmp edx, ebp
setne al
test eax, eax
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10166128
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016611c
push ebp
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.101737e0
add esp, 0x14
test eax, eax
je 0x1016611c
mov eax, 1
jmp 0x1016611e
xor eax, eax
test eax, eax
jne case.default.0x10166a5b
jmp 0x10166150
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x10166150
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10166150
cmp ecx, 1
je case.default.0x10166a5b
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10166a5b
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je case.0x1016488c.13
mov eax, dword [ebx + 0x78]
dec eax
cmp esi, eax
jne case.0x1016488c.13
cmp dword [ebx + 0x18], 0
jne case.0x1016488c.13
cmp dword [ebx + 0x1c], 2
jne case.0x1016488c.13
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne case.0x1016488c.13
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x10171275
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016e971
inc esi
mov dword [esp + 0x14], esi
test ebp, ebp
je case.0x10166a5b.10
cmp esi, edx
jae case.0x10166a5b.10
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne case.0x10166a5b.10
lea esi, [ecx + 1]
mov dword [esp + 0x14], esi
mov ecx, esi
cmp esi, edx
jb 0x101661a7
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
mov edx, dword [esp + 0x18]
inc esi
inc edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x101662f0
cmp ecx, 0xc0
jb 0x101662f0
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016622e
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101662ea
test cl, 0x10
jne 0x1016624f
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 0x101662ea
test cl, 8
jne 0x10166279
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 0x101662ea
test cl, 4
jne 0x101662af
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 0x101662ea
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.0x10166a5b.10
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x10166430
cmp edx, 0xc0
jb 0x10166430
test dl, 0x20
jne 0x1016635c
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x1016642a
test dl, 0x10
jne 0x10166383
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 0x1016642a
test dl, 8
jne 0x101663b3
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 0x1016642a
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101663ef
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 0x1016642a
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.0x10166a5b
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 4
je case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x10166570
cmp edx, 0xc0
jb 0x10166570
test dl, 0x20
jne 0x1016649c
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x1016656a
test dl, 0x10
jne 0x101664c3
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 0x1016656a
test dl, 8
jne 0x101664f3
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 0x1016656a
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016652f
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 0x1016656a
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.0x10166a5b.10
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x101666b0
cmp edx, 0xc0
jb 0x101666b0
test dl, 0x20
jne 0x101665dc
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101666aa
test dl, 0x10
jne 0x10166603
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 0x101666aa
test dl, 8
jne 0x10166633
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 0x101666aa
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016666f
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 0x101666aa
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.0x10166a5b
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
je case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x101667dc
cmp ecx, 0xc0
jb 0x101667dc
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016671a
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101667d6
test cl, 0x10
jne 0x1016673b
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 0x101667d6
test cl, 8
jne 0x10166765
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 0x101667d6
test cl, 4
jne 0x1016679b
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 0x101667d6
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.0x10166a5b.10
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x10166908
cmp ecx, 0xc0
jb 0x10166908
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166846
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166902
test cl, 0x10
jne 0x10166867
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 0x10166902
test cl, 8
jne 0x10166891
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 0x10166902
test cl, 4
jne 0x101668c7
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 0x10166902
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.0x10166a5b
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
test ebp, ebp
je 0x10166a38
cmp ecx, 0xc0
jb 0x10166a38
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166974
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166a30
test cl, 0x10
jne 0x10166995
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 0x10166a30
test cl, 8
jne 0x101669bf
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 0x10166a30
test cl, 4
jne 0x101669f5
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 0x10166a30
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 0x10166ac3
cmp edx, 0x85
je case.0x10166a5b.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x10166a5b
jmp dword [ecx*4 + 0x10171884]
cmp esi, dword [ebx + 0x78]
jb 0x10166aa3
mov eax, dword [ebx + 0x88]
test eax, eax
je case.0x10166a5b.10
cmp esi, dword [ebx + 0x84]
jbe case.0x10166a5b.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp byte [esi], 0xa
jne case.0x10166a5b.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 0x10164860
sub ecx, 0x2028
je case.0x10166a5b.11
sub ecx, 1
jne case.default.0x10166a5b
cmp dword [ebx + 0x68], 0
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
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 0x10166c19
cmp edx, 0xc0
jb 0x10166c19
test dl, 0x20
jne 0x10166b3d
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10166c0b
test dl, 0x10
jne 0x10166b64
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 0x10166c0b
test dl, 8
jne 0x10166b94
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 0x10166c0b
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10166bd0
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 0x10166c0b
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 0x10166c80
cmp edi, 0x2000
je case.default.0x10166a5b
cmp ebp, 0xa0
ja 0x10166c6c
cmp edx, 0xa0
je case.default.0x10166a5b
cmp edx, 9
je case.default.0x10166a5b
cmp edx, 0x20
je case.default.0x10166a5b
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 0x10164860
cmp edx, 0x1680
je case.default.0x10166a5b
cmp edx, 0x180e
jmp 0x10166c4c
cmp ecx, 0x3000
ja case.0x10166ca6.8203
cmp ebx, 0x3000
je case.default.0x10166a5b
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10166ca6.8203
movzx eax, byte [edx + 0x1017189c]
jmp dword [eax*4 + 0x10171894]
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
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 0x10166dc2
cmp ecx, 0xc0
jb 0x10166dc2
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166cf8
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166db4
test cl, 0x10
jne 0x10166d19
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 0x10166db4
test cl, 8
jne 0x10166d43
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 0x10166db4
test cl, 4
jne 0x10166d79
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 0x10166db4
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 0x10166e1d
cmp edi, 0x2000
je case.0x10166ca6.8203
cmp ebp, 0xa0
ja 0x10166e00
cmp ecx, 0xa0
je case.0x10166ca6.8203
cmp ecx, 9
je case.0x10166ca6.8203
cmp ecx, 0x20
jne case.default.0x10166a5b
jmp case.0x10166ca6.8203
cmp ecx, 0x1680
je case.0x10166ca6.8203
cmp ecx, 0x180e
jne case.default.0x10166a5b
jmp case.0x10166ca6.8203
cmp edx, 0x3000
ja case.default.0x10166a5b
cmp ebx, 0x3000
je case.0x10166ca6.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x10166a5b
movzx eax, byte [ecx + 0x10171904]
jmp dword [eax*4 + 0x101718fc]
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
test ebp, ebp
je 0x10166f58
cmp ecx, 0xc0
jb 0x10166f58
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166e94
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166f50
test cl, 0x10
jne 0x10166eb5
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 0x10166f50
test cl, 8
jne 0x10166edf
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 0x10166f50
test cl, 4
jne 0x10166f15
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 0x10166f50
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 0x10166f7e
cmp edx, 0x85
je case.default.0x10166a5b
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x10166a5b.10
jmp dword [ecx*4 + 0x10171964]
sub ecx, 0x2028
je case.default.0x10166a5b
sub ecx, 1
je case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
mov ecx, edx
test ebp, ebp
je 0x101670bf
cmp edx, 0xc0
jb 0x101670bf
test dl, 0x20
jne 0x10166fe9
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101670b7
test dl, 0x10
jne 0x10167010
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 0x101670b7
test dl, 8
jne 0x10167040
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 0x101670b7
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016707c
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 0x101670b7
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 0x101670e5
cmp ecx, 0x85
je case.0x10166a5b.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10166a5b
jmp dword [edx*4 + 0x10171974]
sub edx, 0x2028
je case.0x10166a5b.10
sub edx, 1
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
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 0x10167265
mov dword [esp + 0x20], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], edx
cmp edx, 0xc0
jb 0x10167265
test dl, 0x20
jne 0x10167179
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10167247
test dl, 0x10
jne 0x101671a0
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 0x10167247
test dl, 8
jne 0x101671d0
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 0x10167247
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016720c
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 0x10167247
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 + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016727f
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x101c6578]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
movzx eax, byte [eax + 1]
cmp eax, 0xa
ja case.default.0x101672aa
mov dword [esp + 0x44], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x44], ebp
jmp dword [eax*4 + 0x10171984]
cmp dword [esp + 0x38], 0xf
jmp 0x101674c1
mov al, byte [ecx*8 + 0x101c2cf9]
cmp al, 9
je 0x101674b0
cmp al, 5
je 0x101674b0
cmp al, 8
je 0x101674b0
xor ecx, ecx
jmp 0x101674b5
mov eax, dword [esp + 0x18]
xor edx, edx
movzx ecx, byte [ecx*8 + 0x101c2cf9]
movzx eax, byte [eax + 2]
cmp eax, dword [ecx*4 + 0x101c2690]
setne dl
xor eax, eax
cmp dword [esp + 0x38], 0x10
sete al
cmp edx, eax
jmp 0x101674c1
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + 0x50]
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x101c2cf9]
setne cl
xor eax, eax
cmp dword [esp + 0x38], 0x10
jmp 0x101674bc
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + 0x50]
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x101c2cf8]
setne cl
xor eax, eax
cmp dword [esp + 0x38], 0x10
jmp 0x101674bc
movzx eax, byte [ecx*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x101674b0
cmp eax, 3
je 0x101674b0
xor ecx, ecx
jmp 0x101674b5
cmp edx, 0x20
ja 0x10167396
je case.0x101672aa.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x10167411.8203
jmp dword [edx*4 + 0x101719b0]
cmp dword [esp + 0x20], 0x2000
ja 0x101673f1
cmp edx, 0x2000
je case.0x101672aa.0
cmp edx, 0x1680
ja 0x101673e9
je case.0x101672aa.0
sub edx, 0x85
je case.0x101672aa.0
sub edx, 0x1b
je case.0x101672aa.0
movzx eax, byte [ecx*8 + 0x101c2cf9]
xor ecx, ecx
cmp dword [eax*4 + 0x101c2690], 6
sete cl
jmp 0x101674b5
cmp edx, 0x180e
jmp 0x101673c9
cmp edx, 0x3000
ja case.0x10167411.8203
je case.0x101672aa.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10167411.8203
movzx eax, byte [edx + 0x101719cc]
jmp dword [eax*4 + 0x101719c4]
movzx eax, byte [ecx*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x101674b0
cmp eax, 3
je 0x101674b0
cmp edx, 0x5f
je 0x101674b0
xor ecx, ecx
jmp 0x101674b5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
movzx eax, byte [eax + 2]
cmp ecx, dword [eax*4 + 0x101c2bb8]
lea eax, [eax*4 + 0x101c2bb8]
jb 0x1016746d
mov ecx, dword [eax]
nop dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x10167474
mov ecx, dword [eax]
cmp edx, ecx
jae 0x10167460
cmp dword [esp + 0x38], 0x10
jmp 0x101674c1
cmp dword [esp + 0x38], 0x10
jne case.default.0x10166a5b
jmp 0x101674c7
cmp dword [esp + 0x28], 0x24
je 0x101674b0
cmp dword [esp + 0x3c], 0x40
je 0x101674b0
cmp edx, 0x60
je 0x101674b0
cmp edx, 0xa0
jb 0x101674a4
cmp edx, 0xd7ff
jbe 0x101674b0
cmp edx, 0xe000
jae 0x101674b0
xor ecx, ecx
jmp 0x101674b5
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x38], 0xf
sete al
cmp ecx, eax
je case.default.0x10166a5b
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 0x10164860
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016e971
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 0x10167600
cmp eax, 0xc0
jb 0x10167600
test al, 0x20
jne 0x1016752a
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x101675f8
test al, 0x10
jne 0x10167550
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 0x101675f8
test al, 8
jne 0x1016757f
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 0x101675f8
test al, 4
movzx eax, byte [esi]
jne 0x101675ba
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 0x101675f8
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016761a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx ebx, byte [eax*8 + 0x101c2cfa]
cmp edi, ebp
jae 0x10167765
nop dword [eax]
nop dword [eax + eax]
cmp dword [esp + 0x24], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x10167719
cmp edx, 0xc0
jb 0x10167719
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10167681
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10167715
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10167699
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016770f
and eax, 0x3f
test dl, 8
jne 0x101676b9
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016770f
test dl, 4
jne 0x101676e2
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 0x1016770f
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 + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x10167733
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx ecx, byte [eax*8 + 0x101c2cfa]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101c2708], eax
je 0x10167761
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x10167640
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10166c56
cmp esi, dword [ebx + 0x78]
jb 0x10166c56
cmp esi, dword [ebx + 0x84]
jbe 0x10166c56
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
inc edx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
jmp 0x10164860
mov edx, dword [esp + 0x18]
mov ebx, eax
mov ebp, dword [esp + 0x24]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10164860
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 0x10167852
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 0x1016783d
mov eax, dword [ecx + 0xc]
mov ebx, ebp
cmp dword [eax + edi*4], 0
jge 0x1016787a
mov eax, dword [ecx + 0x24]
add eax, ebx
mov ebx, eax
mov ebp, eax
test edx, edx
jg 0x10167818
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.0x10167873
movzx eax, byte [ebx + 0x10171a34]
jmp dword [eax*4 + 0x10171a2c]
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
mov dword [esp + 0x20], ecx
jmp 0x1016784e
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 0x101678cc
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edi*4]
test eax, eax
js 0x101678cc
mov ecx, dword [ecx + edi*4 + 4]
sub ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x10167856
mov ecx, dword [ebx + 0x50]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [esp + 0x20], ecx
jmp 0x10167856
mov eax, ebx
inc ebp
and eax, 1
mov dword [esp + 0x18], ebp
movsx ebp, byte [ebx + 0x101c1bd0]
mov dword [esp + 0x44], eax
movsx eax, byte [ebx + 0x101c1bdc]
mov ebx, bind
test eax, eax
cmove eax, ebx
mov dword [esp + 0x38], eax
jmp 0x1016794c
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 0x1016484e
jns 0x10167960
test eax, eax
je 0x1016483c
cmp ebp, 1
jl 0x1016799b
mov ebx, 1
nop word [eax + eax]
push edx
push dword [esp + 0x14]
push ecx
push esi
push edi
call fcn.10172490
add esp, 0x14
test eax, eax
js 0x1016e99a
mov ecx, dword [esp + 0x20]
add esi, eax
mov edx, dword [esp + 0x40]
inc ebx
mov dword [esp + 0x14], esi
cmp ebx, ebp
jle 0x10167970
mov ebx, dword [esp + 0x38]
cmp ebp, ebx
je 0x1016484e
cmp dword [esp + 0x44], 0
je 0x1016e9af
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov ebx, dword [esp + 0x20]
mov ecx, ebp
cmp ecx, dword [esp + 0x38]
jge case.default.0x10166a5b
push dword [esp + 0x40]
push dword [esp + 0x14]
push ebx
push esi
push edi
call fcn.10172490
add esp, 0x14
test eax, eax
js 0x1016e99a
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.10164710
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x101679e6
jmp 0x1017163c
mov ebx, dword [esp + 0x10]
push edx
push ebx
push ecx
push esi
push edi
call fcn.10172490
add esp, 0x14
test eax, eax
js 0x1016ea59
mov edx, dword [esp + 0x18]
add esi, eax
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x14], esi
jmp 0x1016485a
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.0x10167a96
movzx eax, byte [ecx + 0x10171a44]
jmp dword [eax*4 + 0x10171a3c]
inc edi
mov dword [esp + 0x18], edi
cmp ecx, 8
jae 0x10167ab2
mov eax, ecx
and eax, 1
mov dword [esp + 0x3c], eax
jmp 0x10167aba
mov dword [esp + 0x40], 1
movsx edx, byte [ecx + 0x101c1bdc]
mov eax, bind
movsx ebp, byte [ecx + 0x101c1bd0]
test edx, edx
mov ecx, ebp
cmove edx, eax
mov eax, ebp
mov dword [esp + 0x20], edx
jmp 0x10167b34
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 0x10167b30
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 0x10167c88
cmp ecx, edi
jl 0x10167ccd
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
cmp esi, ebx
jae 0x1016ea7d
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 0x10167c55
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10167b91
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10167c4d
test cl, 0x10
jne 0x10167bb2
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 0x10167c4d
test cl, 8
jne 0x10167bdc
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 0x10167c4d
test cl, 4
jne 0x10167c12
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 0x10167c4d
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 0x10167c63
cmp dword [esp + 0x38], 0x6e
jmp 0x10167c77
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.0x10166a5b
inc edi
cmp edi, ebp
jle 0x10167b54
jmp 0x10167cc5
cmp eax, 1
jl 0x10167ccd
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
cmp esi, ebx
jae 0x1016ea7d
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.0x10166a5b
inc edi
cmp edi, ebp
jle 0x10167c94
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x1016482e
cmp dword [esp + 0x3c], 0
jne 0x1016eb56
mov edi, esi
mov dword [esp + 0x28], edi
test edx, edx
je 0x10167e65
cmp ebp, eax
jge 0x10167e21
nop
mov ebx, dword [esp + 0x10]
cmp esi, dword [ebx + 0x78]
jae 0x10167e3d
movzx edx, byte [esi]
mov ebx, 1
mov edi, edx
mov ecx, ebx
mov eax, edx
cmp edx, 0xc0
jb 0x10167de4
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10167d45
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebx, 2
jmp 0x10167ddc
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10167d60
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x10167dd6
and eax, 0x3f
test dl, 8
jne 0x10167d80
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10167dd6
test dl, 4
jne 0x10167da9
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 0x10167dd6
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 0x10167df2
cmp dword [esp + 0x38], 0x6e
jmp 0x10167e0a
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 0x10167e1d
add esi, ebx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x10167d00
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016eaa7
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10167e5f
cmp esi, dword [ebx + 0x84]
jbe 0x10167e5f
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov edi, dword [esp + 0x28]
jmp 0x10167e25
cmp ebp, eax
jge 0x10167e9b
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
jae 0x10167eb7
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 0x10167e97
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x10167e70
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016eb19
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10167edd
cmp esi, dword [ebx + 0x84]
jbe 0x10167edd
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov edi, dword [esp + 0x28]
jmp 0x10167e9f
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.0x10167f19
movzx eax, byte [ecx + 0x10171a58]
jmp dword [eax*4 + 0x10171a50]
inc edi
mov dword [esp + 0x18], edi
cmp ecx, 8
jae 0x10167f35
mov eax, ecx
and eax, 1
mov dword [esp + 0x3c], eax
jmp 0x10167f3d
mov dword [esp + 0x40], 1
movsx eax, byte [ecx + 0x101c1bdc]
movsx ebx, byte [ecx + 0x101c1bd0]
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [esp + 0x20], eax
jmp 0x10167fa0
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 0x101680ff
jmp 0x10167fc0
mov ebx, 1
mov dword [esp + 0x20], 1
mov edi, ebx
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ea81
movzx edx, byte [esi]
inc esi
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], esi
test ecx, ecx
je 0x101680e3
cmp edx, 0xc0
jb 0x101680e3
test dl, 0x20
jne 0x10168006
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x101680df
test dl, 0x10
jne 0x10168031
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 0x101680df
test dl, 8
jne 0x10168068
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 0x101680df
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101680a4
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 0x101680df
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.10173e50
add esp, 0xc
test eax, eax
je case.default.0x10166a5b
inc edi
cmp edi, ebx
jle 0x10167fc0
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
cmp ebx, eax
je 0x1016482e
cmp dword [esp + 0x3c], 0
jne 0x1016ee23
mov ebp, esi
cmp ebx, eax
jge 0x1016825e
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016823c
mov ecx, dword [esp + 0x24]
mov edi, 1
movzx edx, byte [esi]
test ecx, ecx
je 0x10168217
cmp edx, 0xc0
jb 0x10168217
test dl, 0x20
jne 0x10168173
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x1016820f
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x10168195
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016820b
and eax, 0x3f
test dl, 8
jne 0x101681b5
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016820b
test dl, 4
jne 0x101681de
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 0x1016820b
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.10173e50
add esp, 0xc
test eax, eax
je 0x1016825e
add esi, edi
inc ebx
mov dword [esp + 0x14], esi
cmp ebx, dword [esp + 0x20]
jl 0x10168130
jmp 0x1016825e
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x1016825e
cmp esi, dword [ecx + 0x84]
jbe 0x1016825e
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x10171275
cmp dword [esp + 0x40], 0
mov ebx, dword [esp + 0x10]
je 0x1016eda0
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
test ebp, ebp
je 0x101682fe
mov ebp, dword [esp + 0x18]
mov edx, 1
inc ebp
mov ecx, edx
movzx eax, byte [ebp]
cmp eax, 0xc0
jb 0x101682c8
test al, 0x20
jne 0x101682a2
lea edx, [ecx + 1]
jmp 0x101682c6
test al, 0x10
jne 0x101682ad
mov edx, 3
jmp 0x101682c6
test al, 8
jne 0x101682b8
mov edx, 4
jmp 0x101682c6
mov edx, 5
test al, 4
je 0x101682c6
mov edx, 6
mov ecx, edx
mov edi, dword [ebx + 0x78]
mov eax, edi
sub eax, esi
cmp ecx, eax
jg 0x1016efb9
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.0x10166a5b
test edx, edx
jg 0x101682d7
mov edx, ebp
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov eax, dword [ebx + 0x78]
sub eax, esi
cmp eax, 1
jl 0x1016e971
mov edx, dword [esp + 0x18]
mov al, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp byte [edx + 1], al
jne case.default.0x10166a5b
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x10164860
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
test ebp, ebp
je 0x10168592
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 0x10168416
movzx ecx, byte [ebp + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x1016837b
and eax, 0x1f
mov ebx, ecx
shl eax, 6
mov edi, 2
jmp 0x10168412
movzx eax, byte [ebp + 2]
test bl, 0x10
jne 0x10168396
and ebx, 0xf
mov edi, 3
shl ebx, 6
or ebx, ecx
jmp 0x1016840c
and eax, 0x3f
test bl, 8
jne 0x101683b6
and ebx, 7
mov edi, 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [ebp + 3]
jmp 0x1016840c
test bl, 4
jne 0x101683df
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 0x1016840c
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 0x10168446
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
mov al, byte [ebx + edx]
cmp al, byte [ecx + edx]
jne case.default.0x10166a5b
mov edx, dword [esp + 0x18]
inc edx
inc esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jmp 0x10164852
inc esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x14], esi
mov edx, ecx
cmp ecx, 0xc0
jb 0x10168538
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10168476
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10168532
test cl, 0x10
jne 0x10168497
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 0x10168532
test cl, 8
jne 0x101684c1
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 0x10168532
test cl, 4
jne 0x101684f7
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 0x10168532
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 0x10164844
mov eax, ebx
test eax, eax
jns 0x10168557
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x101c4378]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x10168572
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x101c6578]
mov eax, dword [eax*8 + 0x101c2cfc]
add eax, ebx
cmp edx, eax
jne case.default.0x10166a5b
jmp 0x1016484e
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.0x10166a5b
mov edx, dword [esp + 0x18]
inc esi
add edx, 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x10164860
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 0x101686d1
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 0x1016861b
mov dword [esp + 0x3c], ebp
cmp cl, 0x35
jne 0x10168623
mov dword [esp + 0x3c], 1
mov eax, dword [esp + 0x18]
add eax, 3
mov dword [esp + 0x18], eax
mov ecx, eax
jmp 0x101686d5
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 0x101686cc
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 0x101686cc
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 0x101686d1
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 + 0x101c1bdc]
movsx ebp, byte [eax + 0x101c1bd0]
mov eax, ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], edi
test edi, edi
jne 0x101686d5
mov edi, bind
mov dword [esp + 0x28], edi
cmp dword [esp + 0x24], 0
movzx ebx, byte [eax]
je 0x10168b6a
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 0x10168b67
movzx ecx, byte [eax + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x1016872f
and ebx, 0x1f
mov dword [esp + 0x30], 2
shl ebx, 6
or ecx, ebx
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x101687f5
movzx eax, byte [eax + 2]
test bl, 0x10
jne 0x10168752
and ebx, 0xf
mov dword [esp + 0x30], 3
shl ebx, 6
mov edi, 3
or ecx, ebx
jmp 0x101687e9
and eax, 0x3f
test bl, 8
jne 0x1016877e
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 0x101687e9
mov edx, dword [esp + 0x18]
test bl, 4
jne 0x101687b3
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 0x101687e9
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 0x10168853
mov eax, ecx
test eax, eax
jns 0x1016880f
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x10168829
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
mov eax, dword [eax*8 + 0x101c2cfc]
add eax, edi
cmp eax, ebx
je 0x10168853
lea ecx, [esp + 0x158]
push ecx
push eax
call fcn.10173b10
add esp, 8
jmp 0x10168855
xor eax, eax
mov ebx, 1
mov dword [esp + 0x20], eax
cmp ebp, ebx
jl 0x10168978
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 0x101688e2
mov edx, dword [esp + 0x50]
mov ecx, esi
sub edi, 4
jb 0x101688a1
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x101688a6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10168890
cmp edi, 0xfffffffc
je 0x101688d3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x101688de
cmp edi, 0xfffffffd
je 0x101688d3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x101688de
cmp edi, 0xfffffffe
je 0x101688d3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x101688de
cmp edi, 0xffffffff
je 0x101688d3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x101688de
mov edi, dword [esp + 0x30]
add esi, edi
jmp 0x10168963
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
test edi, edi
jle 0x1016efd4
mov eax, ecx
sub eax, edi
cmp esi, eax
ja 0x1016efd4
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x10168919
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016891e
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10168908
cmp edi, 0xfffffffc
je 0x1016895b
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016efd4
cmp edi, 0xfffffffd
je 0x1016895b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016efd4
cmp edi, 0xfffffffe
je 0x1016895b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016efd4
cmp edi, 0xffffffff
je 0x1016895b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016efd4
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 0x10168880
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x1016482e
cmp dword [esp + 0x3c], 0
jne 0x1016eff4
mov ebx, esi
mov dword [esp + 0x3c], ebx
cmp ebp, eax
jge 0x10168aba
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 0x10168a1e
mov edx, dword [esp + 0x50]
mov edi, ebx
mov ecx, esi
sub edi, 4
jb 0x101689e1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x101689e6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x101689d0
cmp edi, 0xfffffffc
je 0x10168a13
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10168a1a
cmp edi, 0xfffffffd
je 0x10168a13
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10168a1a
cmp edi, 0xfffffffe
je 0x10168a13
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10168a1a
cmp edi, 0xffffffff
je 0x10168a13
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10168a1a
add esi, ebx
jmp 0x10168a9f
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
test ebx, ebx
jle 0x10168b33
mov eax, ecx
sub eax, ebx
cmp esi, eax
ja 0x10168b33
mov edi, ebx
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x10168a57
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10168a5c
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10168a46
cmp edi, 0xfffffffc
je 0x10168a99
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10168b33
cmp edi, 0xfffffffd
je 0x10168a99
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10168b33
cmp edi, 0xfffffffe
je 0x10168a99
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10168b33
cmp edi, 0xffffffff
je 0x10168a99
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10168b33
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 0x101689b8
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
jne 0x1016484e
cmp esi, ebx
jbe 0x1016e0c4
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x10168b20
nop dword [eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x10168b10
mov dword [esp + 0x14], esi
cmp ecx, ebx
mov ecx, dword [esp + 0x10]
ja 0x10168ad1
mov edx, dword [esp + 0x18]
mov edi, ecx
jmp 0x1016e0cc
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x10168b5e
cmp esi, dword [ecx + 0x78]
jb 0x10168b5e
cmp esi, dword [ecx + 0x84]
jbe 0x10168b5e
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov ebx, dword [esp + 0x3c]
jmp 0x10168abe
inc eax
jmp 0x10168b6d
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
mov ecx, 1
cmp edx, 0x2e
jb 0x10168c3f
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x3c]
movzx edi, byte [eax + ebx]
cmp ebp, 1
jl 0x10168bbc
mov edx, dword [ecx + 0x78]
mov ecx, 1
cmp esi, edx
jae 0x1016ea7d
movzx eax, byte [esi]
cmp ebx, eax
je 0x10168bae
cmp edi, eax
jne case.default.0x10166a5b
inc esi
inc ecx
mov dword [esp + 0x14], esi
cmp ecx, ebp
jle 0x10168b97
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
cmp ebp, eax
je 0x1016484e
cmp dword [esp + 0x3c], 0
jne 0x1016f15d
mov edx, dword [esp + 0x20]
mov ebp, esi
cmp edx, eax
jge 0x10168bfb
mov ecx, dword [ecx + 0x78]
cmp esi, ecx
jae 0x10168c17
movzx eax, byte [esi]
cmp ebx, eax
je 0x10168bef
cmp edi, eax
jne 0x10168bfb
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, dword [esp + 0x28]
jl 0x10168be0
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e084
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168bff
cmp esi, dword [ebx + 0x84]
jbe 0x10168bff
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
jmp 0x10168bff
cmp ebp, 1
jl 0x10168c6d
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x78]
nop dword [eax + eax]
cmp esi, edx
jae 0x1016ea7d
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp ebx, eax
jne case.default.0x10166a5b
inc ecx
cmp ecx, ebp
jle 0x10168c50
cmp ebp, edi
je 0x1016484e
cmp dword [esp + 0x3c], 0
jne 0x1016f1ee
mov edx, dword [esp + 0x28]
mov edi, esi
cmp ebp, edx
jge 0x10168ca6
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10168cc2
movzx eax, byte [esi]
cmp ebx, eax
jne 0x10168ca6
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x10168c91
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e0e7
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168caa
cmp esi, dword [ebx + 0x84]
jbe 0x10168caa
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
jmp 0x10168caa
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
mov eax, dword [esp + 0x18]
test ebp, ebp
je 0x10168f6f
movzx ebx, byte [eax + 1]
lea ecx, [eax + 2]
mov dword [esp + 0x18], ecx
cmp ebx, 0xc0
jb 0x10168df2
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 0x20
jne 0x10168d2f
and ebx, 0x1f
shl ebx, 6
or ebx, eax
inc ecx
jmp 0x10168dee
test bl, 0x10
jne 0x10168d50
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 0x10168dee
test bl, 8
jne 0x10168d7d
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 0x10168dee
test bl, 4
jne 0x10168db3
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 0x10168dee
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 0x10168ef6
movzx eax, byte [esi]
and eax, 0x3f
test dl, 0x20
jne 0x10168e2b
and edx, 0x1f
shl edx, 6
or edx, eax
inc esi
jmp 0x10168eea
test dl, 0x10
jne 0x10168e4c
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 0x10168eea
test dl, 8
jne 0x10168e79
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 0x10168eea
test dl, 4
jne 0x10168eaf
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 0x10168eea
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 0x10168f16
cmp ebx, eax
je case.default.0x10166a5b
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
cmp ebx, 0x7f
jbe 0x10168f54
mov eax, ebx
test eax, eax
jns 0x10168f24
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x101c4378]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x10168f3f
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x101c6578]
mov eax, dword [eax*8 + 0x101c2cfc]
add eax, ebx
jmp 0x10168f63
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.0x10166a5b
cmp eax, edi
jmp 0x10168eff
movzx edx, byte [esi]
inc esi
movzx ecx, byte [eax + 1]
mov dword [esp + 0x14], esi
cmp ecx, edx
je case.default.0x10166a5b
cmp dword [esp + 0x38], 0x20
jne 0x10168f99
mov eax, dword [ebx + 0x3c]
movzx eax, byte [eax + ecx]
cmp eax, edx
je case.default.0x10166a5b
mov edx, dword [esp + 0x18]
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x10164860
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 0x101690c8
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 0x10168ff7
mov dword [esp + 0x3c], ebp
cmp cl, 0x4f
jne 0x10168fff
mov dword [esp + 0x3c], 1
add ebx, 3
mov ecx, ebx
jmp 0x101690c8
mov ebx, dword [esp + 0x18]
xor ebp, ebp
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], ebp
mov ecx, ebx
jmp 0x101690c0
mov ebx, dword [esp + 0x18]
mov ebp, 1
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], ebp
mov ecx, ebx
jmp 0x101690c0
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 0x101690c8
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 0x101690c8
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 + 0x101c1bd0]
movsx eax, byte [eax + 0x101c1bdc]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], eax
test eax, eax
jne 0x101690c8
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 0x1016920d
cmp ebx, 0xc0
jb 0x1016920d
test bl, 0x20
jne 0x10169118
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 0x10169201
test bl, 0x10
jne 0x10169147
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 0x10169201
test bl, 8
jne 0x10169182
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 0x10169201
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 4
jne 0x101691c2
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 0x101691fd
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 0x101695af
cmp dword [esp + 0x24], 0
je 0x10169257
cmp edx, 0x7f
jbe 0x10169257
shr eax, 7
movzx eax, byte [eax + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016923e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx eax, word [eax*2 + 0x101c6578]
mov edx, dword [eax*8 + 0x101c2cfc]
add edx, edi
jmp 0x10169262
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 0x10169392
cmp ebp, edi
jl 0x101693c5
nop
cmp esi, dword [ecx + 0x78]
jae 0x1016ea81
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], edx
mov eax, edx
mov dword [esp + 0x14], esi
cmp edx, 0xc0
jb 0x10169373
test dl, 0x20
jne 0x101692bc
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016936d
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x101692e3
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x10169369
test dl, 8
jne 0x10169306
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 0x10169369
test dl, 4
jne 0x10169335
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 0x10169369
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.0x10166a5b
mov edx, dword [esp + 0x38]
cmp edx, eax
je case.default.0x10166a5b
inc edi
cmp edi, ebp
jle 0x10169280
jmp 0x101693c5
cmp ebp, 1
jl 0x101693c5
mov ecx, dword [ecx + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x1016ea7d
movzx eax, byte [esi]
cmp ebx, eax
je case.default.0x10166a5b
cmp edx, eax
je case.default.0x10166a5b
inc esi
inc edi
mov dword [esp + 0x14], esi
cmp edi, ebp
jle 0x101693a0
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x10164840
cmp dword [esp + 0x3c], 0
jne 0x1016f270
cmp dword [esp + 0x24], 0
mov edi, esi
mov dword [esp + 0x20], edi
je 0x1016953f
cmp ebp, eax
jge 0x101694f7
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
jae 0x10169513
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x101694d8
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016943c
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x101694d4
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10169457
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x101694ce
and eax, 0x3f
test dl, 8
jne 0x10169477
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x101694ce
test dl, 4
jne 0x101694a0
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 0x101694ce
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 0x101694f3
cmp dword [esp + 0x38], eax
je 0x101694f3
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10169400
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e126
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10169539
cmp esi, dword [ebx + 0x84]
jbe 0x10169539
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov edi, dword [esp + 0x20]
jmp 0x101694fb
cmp ebp, eax
jge 0x1016956b
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x10169587
movzx eax, byte [esi]
cmp ebx, eax
je 0x1016956b
cmp edx, eax
je 0x1016956b
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10169550
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e189
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016956f
cmp esi, dword [ebx + 0x84]
jbe 0x1016956f
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
jmp 0x1016956f
mov edx, dword [esp + 0x24]
mov ecx, 1
mov dword [esp + 0x38], ecx
test edx, edx
je 0x10169720
mov edi, dword [esp + 0x30]
cmp ebp, ecx
jl 0x10169755
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x1016f3f5
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 0x10169709
mov al, byte [esi]
test bl, 0x20
jne 0x10169614
and ebx, 0x1f
movzx eax, al
and eax, 0x3f
shl ebx, 6
inc esi
or ebx, eax
jmp 0x10169705
lea ecx, [esi + 1]
test bl, 0x10
jne 0x1016963d
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 0x101696fd
lea edx, [esi + 2]
test bl, 8
jne 0x10169671
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 0x101696f9
lea edi, [esi + 3]
test bl, 4
jne 0x101696b1
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 0x101696f9
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.0x10166a5b
inc ecx
mov dword [esp + 0x38], ecx
cmp ecx, ebp
jle 0x101695d4
jmp 0x10169751
cmp ebp, 1
jl 0x101697c7
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x1016ed7a
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp ebx, eax
je case.default.0x10166a5b
inc ecx
cmp ecx, ebp
jle 0x10169730
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp ebp, eax
je 0x1016484e
cmp dword [esp + 0x3c], 0
jne 0x1016f481
mov ebx, esi
mov dword [esp + 0x20], ebx
test edx, edx
je 0x1016992e
cmp ebp, eax
jge 0x10169886
mov ebx, dword [esp + 0x30]
nop word [eax + eax]
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x10169903
movzx edx, byte [esi]
mov edi, 1
cmp edx, 0xc0
jb 0x1016986f
test dl, 0x20
jne 0x101697cd
movzx eax, byte [esi + 1]
mov edi, 2
and edx, 0x1f
jmp 0x10169863
mov edi, dword [esp + 0x30]
jmp 0x10169755
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x101697ec
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10169863
and eax, 0x3f
test dl, 8
jne 0x1016980c
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169863
test dl, 4
jne 0x10169835
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 0x10169863
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 0x10169882
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, eax
jl 0x10169790
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
jne 0x1016484e
cmp esi, ebx
jbe 0x1016e0c4
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x101698f0
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x101698e0
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x10]
cmp ecx, ebx
ja 0x101698a0
mov edi, edx
mov edx, dword [esp + 0x18]
jmp 0x1016e0cc
mov eax, dword [edx + 0x88]
test eax, eax
je 0x10169925
cmp esi, dword [edx + 0x84]
jbe 0x10169925
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov ebx, dword [esp + 0x20]
jmp 0x1016988a
mov edx, dword [esp + 0x10]
cmp ebp, eax
jge 0x1016997b
mov ecx, dword [edx + 0x78]
nop dword [eax]
cmp esi, ecx
jae 0x10169959
movzx eax, byte [esi]
cmp edi, eax
je 0x1016997b
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10169940
jmp 0x1016997b
mov eax, dword [edx + 0x88]
test eax, eax
je 0x1016997b
cmp esi, dword [edx + 0x84]
jbe 0x1016997b
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x10171275
cmp dword [esp + 0x40], 0
jne 0x1016484e
cmp esi, ebx
je 0x1016e0c4
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edx, dword [esp + 0x10]
dec esi
mov dword [esp + 0x14], esi
cmp esi, ebx
jne 0x10169990
mov edi, edx
mov edx, dword [esp + 0x18]
jmp 0x1016e0cc
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 0x10169ae3
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 0x10169ae3
mov edi, dword [esp + 0x18]
xor ebp, ebp
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], ebp
mov ecx, edi
jmp 0x10169adb
mov edi, dword [esp + 0x18]
mov ebp, 1
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], ebp
mov ecx, edi
jmp 0x10169adb
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 0x10169ae3
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 0x10169ae3
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 + 0x101c1bd0]
movsx eax, byte [eax + 0x101c1bdc]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x28], eax
test eax, eax
jne 0x10169ae3
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 0x10169b04
cmp eax, 0xf
je 0x10169b04
or edx, 0xffffffff
or eax, edx
or ecx, edx
jmp 0x10169b26
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 0x1016a711
test eax, eax
js 0x1016aa21
cmp ecx, 0xa
ja case.default.0x101672aa
jmp dword [edx*4 + 0x10171a64]
cmp dword [esp + 0x48], 0
jne case.default.0x10166a5b
mov ecx, 1
cmp ebp, ecx
jl 0x1016a711
mov edx, dword [ebx + 0x78]
mov edi, dword [esp + 0x24]
nop dword [eax]
cmp esi, edx
jae 0x1016e971
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
test edi, edi
je 0x10169bb4
cmp eax, 0xc0
jb 0x10169bb4
test al, 0x20
jne 0x10169b92
inc esi
jmp 0x10169bb0
test al, 0x10
jne 0x10169b9b
add esi, 2
jmp 0x10169bb0
test al, 8
jne 0x10169ba4
add esi, 3
jmp 0x10169bb0
test al, 4
jne 0x10169bad
add esi, 4
jmp 0x10169bb0
add esi, 5
mov dword [esp + 0x14], esi
inc ecx
cmp ecx, ebp
jle 0x10169b70
jmp 0x1016a711
mov edi, 1
cmp ebp, edi
jl 0x1016a711
mov ebx, dword [ebx + 0x78]
nop
cmp esi, ebx
jae 0x1016ea7d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10169ce9
cmp eax, 0xc0
jb 0x10169ce9
test al, 0x20
jne 0x10169c12
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10169ce3
test al, 0x10
jne 0x10169c38
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 0x10169ce3
test al, 8
jne 0x10169c6a
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 0x10169ce3
test al, 4
movzx eax, byte [esi]
jne 0x10169ca5
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 0x10169ce3
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x10169d03
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp eax, 9
je 0x10169d28
cmp eax, 5
je 0x10169d28
cmp eax, 8
je 0x10169d28
xor eax, eax
jmp 0x10169d2d
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166a5b
inc edi
cmp edi, ebp
jle 0x10169bd0
jmp 0x1016a711
mov edi, 1
cmp ebp, edi
jl 0x1016a711
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ea7d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10169e6e
cmp eax, 0xc0
jb 0x10169e6e
test al, 0x20
jne 0x10169d97
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10169e68
test al, 0x10
jne 0x10169dbd
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 0x10169e68
test al, 8
jne 0x10169def
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 0x10169e68
test al, 4
movzx eax, byte [esi]
jne 0x10169e2a
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 0x10169e68
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x10169e88
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x4c]
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp dword [eax*4 + 0x101c2690], edx
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166a5b
inc edi
cmp edi, ebp
jle 0x10169d55
jmp 0x1016a711
mov edi, 1
cmp ebp, edi
jl 0x1016a711
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ea7d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10169fed
cmp eax, 0xc0
jb 0x10169fed
test al, 0x20
jne 0x10169f14
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x10169fe7
test al, 0x10
jne 0x10169f3a
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 0x10169fe7
test al, 8
jne 0x10169f6c
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 0x10169fe7
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x10169fa9
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 0x10169fe7
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016a007
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166a5b
inc edi
cmp edi, ebp
jle 0x10169ed2
jmp 0x1016a711
mov edi, 1
cmp ebp, edi
jl 0x1016a711
mov ebx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, ebx
jae 0x1016ea7d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x1016a16b
cmp eax, 0xc0
jb 0x1016a16b
test al, 0x20
jne 0x1016a092
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016a165
test al, 0x10
jne 0x1016a0b8
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 0x1016a165
test al, 8
jne 0x1016a0ea
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 0x1016a165
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016a127
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 0x1016a165
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016a185
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf8]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166a5b
inc edi
cmp edi, ebp
jle 0x1016a050
jmp 0x1016a711
mov edi, 1
cmp ebp, edi
jl 0x1016a711
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ea7d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x1016a2e1
cmp eax, 0xc0
jb 0x1016a2e1
test al, 0x20
jne 0x1016a20a
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016a2db
test al, 0x10
jne 0x1016a230
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 0x1016a2db
test al, 8
jne 0x1016a262
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 0x1016a2db
test al, 4
movzx eax, byte [esi]
jne 0x1016a29d
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 0x1016a2db
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016a2fb
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x1016a322
cmp eax, 3
je 0x1016a322
xor eax, eax
jmp 0x1016a327
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166a5b
inc edi
cmp edi, ebp
jle 0x1016a1c8
jmp 0x1016a711
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016a711
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
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 0x1016a471
mov dword [esp + 0x20], ecx
cmp ecx, 0xc0
jb 0x1016a471
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016a3a3
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016a45f
test cl, 0x10
jne 0x1016a3c4
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 0x1016a45f
test cl, 8
jne 0x1016a3ee
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 0x1016a45f
test cl, 4
jne 0x1016a424
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 0x1016a45f
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 0x1016a48e
cmp edx, 0x20
je case.0x1016a568.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x1016a568.8203
jmp dword [eax*4 + 0x10171a90]
cmp edi, 0x2000
ja 0x1016a540
cmp ebx, 0x2000
je case.0x1016a568.8193
cmp ecx, 0x1680
ja 0x1016a538
je case.0x1016a568.8193
mov eax, ecx
sub eax, 0x85
je case.0x1016a568.8193
sub eax, 0x1b
je case.0x1016a568.8193
mov eax, ecx
test eax, eax
jns 0x1016a4d7
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016a4f1
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp dword [eax*4 + 0x101c2690], 6
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166a5b
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 0x1016a350
jmp 0x1016a711
cmp ecx, 0x180e
jmp 0x1016a4c8
cmp ebp, 0x3000
ja case.0x1016a568.8203
cmp dword [esp + 0x20], 0x3000
je case.0x1016a568.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x1016a568.8203
movzx eax, byte [eax + 0x10171aac]
jmp dword [eax*4 + 0x10171aa4]
cmp dword [esp + 0x48], 0
jne case.default.0x10166a5b
jmp 0x1016a51a
mov ebx, 1
cmp ebp, ebx
jl 0x1016a711
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x1016ea7d
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 0x1016a6ad
cmp eax, 0xc0
jb 0x1016a6ad
test al, 0x20
jne 0x1016a5d4
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016a6a5
test al, 0x10
jne 0x1016a5fa
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 0x1016a6a5
test al, 8
jne 0x1016a62c
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 0x1016a6a5
test al, 4
movzx eax, byte [esi]
jne 0x1016a667
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 0x1016a6a5
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016a6c7
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x1016a6f3
cmp eax, 3
je 0x1016a6f3
cmp edi, 0x5f
je 0x1016a6f3
xor eax, eax
jmp 0x1016a6f8
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166a5b
inc ebx
cmp ebx, dword [esp + 0x38]
jle 0x1016a590
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, edx
je 0x10164840
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x50]
jne 0x1016f692
mov edi, esi
mov dword [esp + 0x3c], edi
test eax, eax
js 0x1016cad9
cmp eax, 0xa
ja case.default.0x101672aa
jmp dword [eax*4 + 0x10171b0c]
mov edi, 1
cmp ebp, edi
jl 0x1016a711
mov ebx, dword [ebx + 0x78]
nop
cmp esi, ebx
jae 0x1016ea7d
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov edx, ecx
mov dword [esp + 0x14], esi
je 0x1016a864
cmp ecx, 0xc0
jb 0x1016a864
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016a7a2
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016a85e
test cl, 0x10
jne 0x1016a7c3
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 0x1016a85e
test cl, 8
jne 0x1016a7ed
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 0x1016a85e
test cl, 4
jne 0x1016a823
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 0x1016a85e
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 + 0x101c2bb8]
lea eax, [eax*4 + 0x101c2bb8]
jb 0x1016a88d
mov edx, dword [eax]
nop word [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x1016a8a6
mov edx, dword [eax]
cmp ecx, edx
jae 0x1016a880
cmp dword [esp + 0x48], 0
je case.default.0x10166a5b
inc edi
cmp edi, ebp
jle 0x1016a760
jmp 0x1016a711
cmp dword [esp + 0x48], 0
jne case.default.0x10166a5b
jmp 0x1016a898
mov ebp, 1
cmp dword [esp + 0x38], ebp
jl 0x1016a70d
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
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 0x1016a9d3
cmp ecx, 0xc0
jb 0x1016a9d3
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016a90b
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016a9c7
test cl, 0x10
jne 0x1016a92c
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 0x1016a9c7
test cl, 8
jne 0x1016a956
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 0x1016a9c7
test cl, 4
jne 0x1016a98c
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 0x1016a9c7
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 0x1016a9fe
cmp edx, 0x40
je 0x1016a9fe
cmp edi, 0x60
je 0x1016a9fe
cmp ebx, 0xa0
jb 0x1016a9f2
cmp ecx, 0xd7ff
jbe 0x1016a9fe
cmp ecx, 0xe000
jae 0x1016a9fe
xor eax, eax
jmp 0x1016aa03
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166a5b
mov ebx, dword [esp + 0x10]
inc ebp
cmp ebp, dword [esp + 0x38]
jle 0x1016a8c2
jmp 0x1016a70d
mov ecx, dword [esp + 0x30]
cmp ecx, 0x16
jne 0x1016ad0a
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016a715
nop
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016e971
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 0x1016ab62
cmp eax, 0xc0
jb 0x1016ab62
test al, 0x20
jne 0x1016aa87
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016ab5a
test al, 0x10
jne 0x1016aaad
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 0x1016ab5a
test al, 8
jne 0x1016aadf
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 0x1016ab5a
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016ab1c
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 0x1016ab5a
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016ab7c
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx ebx, byte [eax*8 + 0x101c2cfa]
cmp edi, ebp
jae 0x1016acc5
nop word [eax + eax]
cmp dword [esp + 0x24], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x1016ac79
cmp edx, 0xc0
jb 0x1016ac79
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016abe1
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016ac75
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016abf9
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016ac6f
and eax, 0x3f
test dl, 8
jne 0x1016ac19
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016ac6f
test dl, 4
jne 0x1016ac42
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 0x1016ac6f
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 + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016ac93
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx ecx, byte [eax*8 + 0x101c2cfa]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101c2708], eax
je 0x1016acc1
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x1016aba0
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016acf0
cmp esi, dword [ebx + 0x78]
jb 0x1016acf0
cmp esi, dword [ebx + 0x84]
jbe 0x1016acf0
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
inc eax
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x1016aa40
jmp 0x1016a711
cmp dword [esp + 0x24], 0
lea eax, [ecx - 6]
je 0x1016b899
cmp eax, 0xf
ja case.default.0x101672aa
jmp dword [eax*4 + 0x10171b38]
mov edi, 1
cmp ebp, edi
jl 0x1016a715
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016e971
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016ad6c
push dword [esp + 0x24]
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.101737e0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10166a5b
jmp 0x1016ad91
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016ad91
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016ad91
cmp edx, 1
je case.default.0x10166a5b
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10166a5b
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016adc6
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016adc6
cmp dword [ebx + 0x18], 0
jne 0x1016adc6
cmp dword [ebx + 0x1c], 2
jne 0x1016adc6
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016adc6
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x10171275
mov edx, dword [ebx + 0x78]
inc esi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x1016ade9
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016ade5
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016add4
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x1016ad35
jmp 0x1016a711
mov edi, 1
cmp ebp, edi
jl 0x1016a715
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ea7d
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x1016ae36
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016ae32
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016ae21
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x1016ae07
jmp 0x1016a711
mov eax, dword [ebx + 0x78]
sub eax, ebp
cmp esi, eax
ja case.default.0x10166a5b
add esi, ebp
mov dword [esp + 0x14], esi
jmp 0x1016a715
mov ebx, 1
cmp ebp, ebx
jl 0x1016a715
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
nop dword [eax]
cmp esi, ebp
jae 0x1016ea81
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 0x1016af78
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016aeaf
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016af6e
test cl, 0x10
jne 0x1016aed0
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 0x1016af6e
test cl, 8
jne 0x1016aefd
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 0x1016af6e
test cl, 4
jne 0x1016af33
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 0x1016af6e
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 0x1016afae
cmp edx, 0x85
je case.0x1016af93.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x10166a5b
jmp dword [ecx*4 + 0x10171b78]
cmp edi, ebp
jae case.0x1016af93.10
cmp byte [esi], 0xa
mov ecx, dword [esp + 0x10]
jne 0x1016afd3
inc esi
mov dword [esp + 0x14], esi
jmp 0x1016afd3
sub ecx, 0x2028
je case.0x1016af93.11
sub ecx, 1
jne case.default.0x10166a5b
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x68], 0
jne case.default.0x10166a5b
jmp 0x1016afd3
mov ecx, dword [esp + 0x10]
inc ebx
cmp ebx, dword [esp + 0x38]
jle 0x1016ae70
jmp 0x1016a70d
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016a715
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
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 0x1016b105
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016b038
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016b0f7
test cl, 0x10
jne 0x1016b059
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 0x1016b0f7
test cl, 8
jne 0x1016b086
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 0x1016b0f7
test cl, 4
jne 0x1016b0bc
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 0x1016b0f7
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 0x1016b176
cmp edi, 0x2000
je case.default.0x10166a5b
cmp ebp, 0xa0
ja 0x1016b15c
cmp ecx, 0xa0
je case.default.0x10166a5b
cmp ecx, 9
je case.default.0x10166a5b
cmp ecx, 0x20
je case.default.0x10166a5b
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 0x1016aff4
jmp 0x1016a711
cmp ecx, 0x1680
je case.default.0x10166a5b
cmp ecx, 0x180e
je case.default.0x10166a5b
jmp case.0x1016b19c.8203
cmp edx, 0x3000
ja case.0x1016b19c.8203
cmp ebx, 0x3000
je case.default.0x10166a5b
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x1016b19c.8203
movzx eax, byte [ecx + 0x10171b90]
jmp dword [eax*4 + 0x10171b88]
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016a715
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
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 0x1016b2af
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x1016b1fa
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x1016b2a1
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x1016b21b
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016b2a1
test dl, 8
jne 0x1016b23e
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 0x1016b2a1
test dl, 4
jne 0x1016b26d
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 0x1016b2a1
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 0x1016b310
cmp edi, 0x2000
je case.0x1016b33a.8193
cmp ebp, 0xa0
ja 0x1016b2fa
cmp edx, 0xa0
je case.0x1016b33a.8193
cmp edx, 9
je case.0x1016b33a.8193
cmp edx, 0x20
jne case.default.0x10166a5b
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 0x1016b1b4
jmp 0x1016a711
cmp edx, 0x1680
je case.0x1016b33a.8193
cmp edx, 0x180e
jne case.default.0x10166a5b
jmp case.0x1016b33a.8193
cmp ecx, 0x3000
ja case.default.0x10166a5b
cmp ebx, 0x3000
je case.0x1016b33a.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x10166a5b
movzx eax, byte [edx + 0x10171bf8]
jmp dword [eax*4 + 0x10171bf0]
mov edi, 1
cmp ebp, edi
jl 0x1016a715
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ea7d
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 0x1016b43f
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x1016b390
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x1016b437
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x1016b3b1
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016b437
test dl, 8
jne 0x1016b3d4
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 0x1016b437
test dl, 4
jne 0x1016b403
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 0x1016b437
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 0x1016b461
cmp ecx, 0x85
je case.default.0x10166a5b
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x1016b45a
jmp dword [edx*4 + 0x10171c58]
sub edx, 0x2028
je case.default.0x10166a5b
sub edx, 1
je case.default.0x10166a5b
inc edi
cmp edi, ebp
jle 0x1016b351
jmp 0x1016a711
mov edi, 1
cmp ebp, edi
jl 0x1016a715
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016ea7d
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 0x1016b582
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x1016b4d3
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x1016b57a
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x1016b4f4
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016b57a
test dl, 8
jne 0x1016b517
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 0x1016b57a
test dl, 4
jne 0x1016b546
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 0x1016b57a
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 0x1016b5a4
cmp ecx, 0x85
je case.0x1016b59d.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10166a5b
jmp dword [edx*4 + 0x10171c68]
sub edx, 0x2028
je case.0x1016b59d.10
sub edx, 1
jne case.default.0x10166a5b
inc edi
cmp edi, ebp
jle 0x1016b494
jmp 0x1016a711
mov edx, 1
cmp ebp, edx
jl 0x1016a715
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], ecx
mov eax, ecx
mov dword [esp + 0x14], esi
cmp ecx, 0xc0
jb 0x1016b6d3
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016b60e
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016b6cd
test cl, 0x10
jne 0x1016b62f
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 0x1016b6cd
test cl, 8
jne 0x1016b65c
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 0x1016b6cd
test cl, 4
jne 0x1016b692
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 0x1016b6cd
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 0x1016b6e7
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10166a5b
inc edx
cmp edx, ebp
jle 0x1016b5d3
jmp 0x1016a711
cmp ebp, 1
jl 0x1016a715
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x10166a5b
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.default.0x10166a5b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016b706
jmp 0x1016a711
mov edi, 1
cmp ebp, edi
jl 0x1016a715
mov ebx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, ebx
jae 0x1016ea7d
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x1016b774
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.default.0x10166a5b
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x1016b79b
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016b797
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016b786
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x1016b750
jmp 0x1016a711
cmp ebp, 1
jl 0x1016a715
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x10166a5b
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.default.0x10166a5b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016b7b6
jmp 0x1016a711
mov edi, 1
cmp ebp, edi
jl 0x1016a715
mov ebx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, ebx
jae 0x1016ea7d
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x1016b824
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10166a5b
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x1016b84b
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016b847
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016b836
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x1016b800
jmp 0x1016a711
cmp ebp, 1
jl 0x1016a715
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x10166a5b
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10166a5b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016b866
jmp 0x1016a711
cmp eax, 0xf
ja case.default.0x101672aa
jmp dword [eax*4 + 0x10171c78]
mov edi, 1
cmp ebp, edi
jl 0x1016a715
nop word [eax + eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016e971
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016b8f5
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.101737e0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10166a5b
jmp 0x1016b91a
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016b91a
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016b91a
cmp edx, 1
je case.default.0x10166a5b
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10166a5b
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016b94f
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016b94f
cmp dword [ebx + 0x18], 0
jne 0x1016b94f
cmp dword [ebx + 0x1c], 2
jne 0x1016b94f
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016b94f
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x10171275
inc esi
inc edi
mov dword [esp + 0x14], esi
cmp edi, ebp
jle 0x1016b8c0
jmp 0x1016a711
mov eax, dword [ebx + 0x78]
sub eax, ebp
cmp esi, eax
ja 0x1016e971
add esi, ebp
mov dword [esp + 0x14], esi
jmp 0x1016a715
mov ecx, 1
cmp ebp, ecx
jl 0x1016a711
mov edx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edx
jae 0x1016e971
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.default.0x10166a5b
movzx eax, byte [eax + 0x10171cc8]
jmp dword [eax*4 + 0x10171cb8]
cmp esi, edx
jae case.0x1016b9b5.10
cmp byte [esi], 0xa
jne case.0x1016b9b5.10
inc esi
mov dword [esp + 0x14], esi
jmp case.0x1016b9b5.10
cmp dword [ebx + 0x68], 0
jne case.default.0x10166a5b
inc ecx
cmp ecx, ebp
jle 0x1016b990
jmp 0x1016a711
mov ecx, 1
cmp ebp, ecx
jl 0x1016a711
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016e971
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp eax, 9
je case.default.0x10166a5b
cmp eax, 0x20
je case.default.0x10166a5b
cmp eax, 0xa0
je case.default.0x10166a5b
inc ecx
cmp ecx, ebp
jle 0x1016b9f0
jmp 0x1016a711
mov ecx, 1
cmp ebp, ecx
jl 0x1016a711
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016e971
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp eax, 9
je 0x1016ba5c
cmp eax, 0x20
je 0x1016ba5c
cmp eax, 0xa0
jne case.default.0x10166a5b
inc ecx
cmp ecx, ebp
jle 0x1016ba37
jmp 0x1016a711
mov ecx, 1
cmp ebp, ecx
jl 0x1016a711
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016e971
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.0x1016ba97.14
movzx eax, byte [eax + 0x10171d4c]
jmp dword [eax*4 + 0x10171d44]
inc ecx
cmp ecx, ebp
jle 0x1016ba76
jmp 0x1016a711
mov ecx, 1
cmp ebp, ecx
jl 0x1016a711
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016e971
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.default.0x10166a5b
movzx eax, byte [eax + 0x10171dd0]
jmp dword [eax*4 + 0x10171dc8]
inc ecx
cmp ecx, ebp
jle 0x1016bab8
jmp 0x1016a711
cmp ebp, 1
jl 0x1016a715
mov edi, dword [ebx + 0x78]
mov edx, 1
nop
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10166a5b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bb00
jmp 0x1016a711
cmp ebp, 1
jl 0x1016a715
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.default.0x10166a5b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bb38
jmp 0x1016a711
cmp ebp, 1
jl 0x1016a715
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.default.0x10166a5b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bb70
jmp 0x1016a711
cmp ebp, 1
jl 0x1016a715
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.default.0x10166a5b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bba8
jmp 0x1016a711
cmp ebp, 1
jl 0x1016a715
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10166a5b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bbe0
jmp 0x1016a711
cmp ebp, 1
jl 0x1016a715
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016e971
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10166a5b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x1016bc18
jmp 0x1016a711
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016be53
mov edx, dword [ebx + 0x78]
nop
cmp esi, edx
jae 0x1016bcba
cmp dword [esp + 0x24], 0
mov eax, 1
movzx ecx, byte [esi]
je 0x1016bc9d
cmp ecx, 0xc0
jb 0x1016bc9d
test cl, 0x20
jne 0x1016bc77
mov eax, 2
jmp 0x1016bc9d
test cl, 0x10
jne 0x1016bc83
mov eax, 3
jmp 0x1016bc9d
test cl, 8
jne 0x1016bc8f
mov eax, 4
jmp 0x1016bc9d
test cl, 4
mov eax, 0
setne al
add eax, 5
cmp dword [esp + 0x48], 0
jne 0x1016be53
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016bc50
jmp 0x1016be53
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016be53
cmp esi, dword [ebx + 0x84]
jbe 0x1016be53
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
jmp 0x1016be53
cmp ebp, edx
jge 0x1016cad0
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x1016be6b
cmp dword [esp + 0x24], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016bdf0
cmp eax, 0xc0
jb 0x1016bdf0
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016bd45
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016bdec
test al, 0x10
jne 0x1016bd5f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016bde6
test al, 8
jne 0x1016bd82
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 0x1016bde6
test al, 4
jne 0x1016bdb1
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 0x1016bde6
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016be0a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp eax, 9
je 0x1016be2f
cmp eax, 5
je 0x1016be2f
cmp eax, 8
je 0x1016be2f
xor eax, eax
jmp 0x1016be34
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016be4b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016bd00
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x40], 0
je 0x1016e1ca
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016be4f
cmp esi, dword [ebx + 0x84]
jbe 0x1016be4f
mov dword [ebx + 0x64], edi
cmp eax, 1
jg 0x10171275
jmp 0x1016be4f
cmp ebp, edx
jge 0x1016cad0
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x1016bfec
cmp dword [esp + 0x24], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016bf90
cmp eax, 0xc0
jb 0x1016bf90
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016bee5
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016bf8c
test al, 0x10
jne 0x1016beff
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016bf86
test al, 8
jne 0x1016bf22
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 0x1016bf86
test al, 4
jne 0x1016bf51
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 0x1016bf86
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016bfaa
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x4c]
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp dword [eax*4 + 0x101c2690], edx
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016be4b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016bea0
jmp 0x1016be4b
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016be4f
cmp esi, dword [ebx + 0x84]
jbe 0x1016be4f
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
jmp 0x1016be4f
cmp ebp, edx
jge 0x1016cad0
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x1016bfec
cmp dword [esp + 0x24], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016c11c
cmp eax, 0xc0
jb 0x1016c11c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016c071
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016c118
test al, 0x10
jne 0x1016c08b
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016c112
test al, 8
jne 0x1016c0ae
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 0x1016c112
test al, 4
jne 0x1016c0dd
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 0x1016c112
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c136
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016be4b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016c030
jmp 0x1016be4b
cmp ebp, edx
jge 0x1016cad0
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x1016bfec
cmp dword [esp + 0x24], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016c270
cmp eax, 0xc0
jb 0x1016c270
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016c1c5
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016c26c
test al, 0x10
jne 0x1016c1df
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016c266
test al, 8
jne 0x1016c202
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 0x1016c266
test al, 4
jne 0x1016c231
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 0x1016c266
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c28a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf8]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016be4b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016c180
jmp 0x1016be4b
cmp ebp, edx
jge 0x1016cad0
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x1016be6b
cmp dword [esp + 0x24], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016c3d0
cmp eax, 0xc0
jb 0x1016c3d0
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016c325
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016c3cc
test al, 0x10
jne 0x1016c33f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016c3c6
test al, 8
jne 0x1016c362
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 0x1016c3c6
test al, 4
jne 0x1016c391
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 0x1016c3c6
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c3ea
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x1016c411
cmp eax, 3
je 0x1016c411
xor eax, eax
jmp 0x1016c416
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016be4b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016c2e0
jmp 0x1016be4b
cmp ebp, edx
jge 0x1016cad0
nop
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x30], 1
cmp esi, dword [ebx + 0x78]
jae 0x1016bff0
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 0x1016c556
mov dword [esp + 0x20], edx
cmp edx, 0xc0
jb 0x1016c556
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016c4a2
and eax, 0x1f
mov dword [esp + 0x30], 2
shl eax, 6
mov edx, ecx
jmp 0x1016c546
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016c4c0
and edx, 0xf
mov dword [esp + 0x30], 3
shl edx, 6
or edx, ecx
jmp 0x1016c540
and eax, 0x3f
test dl, 8
jne 0x1016c4e3
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 0x1016c540
test dl, 4
jne 0x1016c50f
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 0x1016c540
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 0x1016c573
cmp ecx, 0x20
je case.0x1016c64f.8193
lea eax, [edx - 9]
cmp eax, 4
ja case.0x1016c64f.8203
jmp dword [eax*4 + 0x10171e4c]
cmp edi, 0x2000
ja 0x1016c627
cmp ebx, 0x2000
je case.0x1016c64f.8193
cmp edx, 0x1680
ja 0x1016c61f
je case.0x1016c64f.8193
mov eax, edx
sub eax, 0x85
je case.0x1016c64f.8193
sub eax, 0x1b
je case.0x1016c64f.8193
mov eax, edx
test eax, eax
jns 0x1016c5bc
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c5d6
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp dword [eax*4 + 0x101c2690], 6
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016be4b
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 0x1016c440
jmp 0x1016be4b
cmp edx, 0x180e
jmp 0x1016c5ad
cmp ebp, 0x3000
ja case.0x1016c64f.8203
cmp dword [esp + 0x20], 0x3000
je case.0x1016c64f.8193
lea eax, [edx - 0x2001]
cmp eax, 0x5e
ja case.0x1016c64f.8203
movzx eax, byte [eax + 0x10171e68]
jmp dword [eax*4 + 0x10171e60]
cmp dword [esp + 0x48], 0
jne 0x1016be4b
jmp 0x1016c5ff
cmp ebp, edx
jge 0x1016cad0
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, 1
cmp esi, ebp
jae 0x1016bfec
cmp dword [esp + 0x24], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
mov edi, eax
je 0x1016c766
cmp eax, 0xc0
jb 0x1016c766
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x1016c6b9
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x1016c760
test al, 0x10
jne 0x1016c6d3
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016c75a
test al, 8
jne 0x1016c6f6
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 0x1016c75a
test al, 4
jne 0x1016c725
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 0x1016c75a
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c780
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x1016c7ac
cmp eax, 3
je 0x1016c7ac
cmp edi, 0x5f
je 0x1016c7ac
xor eax, eax
jmp 0x1016c7b1
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016be4b
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 0x1016c672
jmp 0x1016be4b
cmp ebp, edx
jge 0x1016cad0
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x1016be6b
cmp dword [esp + 0x24], 0
movzx edx, byte [esi]
mov ecx, edx
je 0x1016c8d4
cmp edx, 0xc0
jb 0x1016c8d4
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016c839
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016c8d0
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016c854
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016c8ca
and eax, 0x3f
test dl, 8
jne 0x1016c874
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016c8ca
test dl, 4
jne 0x1016c89d
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 0x1016c8ca
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 + 0x101c2bb8]
lea eax, [eax*4 + 0x101c2bb8]
jb 0x1016c8fd
mov ecx, dword [eax]
nop word [eax + eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x1016c91e
mov ecx, dword [eax]
cmp edx, ecx
jae 0x1016c8f0
cmp dword [esp + 0x48], 0
je 0x1016be4b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016c7f0
jmp 0x1016be4b
cmp dword [esp + 0x48], 0
jne 0x1016be4b
jmp 0x1016c908
cmp ebp, edx
jge 0x1016cad0
mov ebx, dword [esp + 0x10]
mov ebp, 1
cmp esi, dword [ebx + 0x78]
jae 0x1016caa5
cmp dword [esp + 0x24], 0
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
je 0x1016ca4d
cmp edx, 0xc0
jb 0x1016ca4d
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016c98f
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 0x1016ca4d
movzx eax, byte [esi + 2]
and eax, 0x3f
test dl, 0x10
jne 0x1016c9ba
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 0x1016ca4d
test dl, 8
jne 0x1016c9e7
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 0x1016ca4d
test dl, 4
jne 0x1016ca10
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 0x1016ca3d
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 0x1016ca78
cmp ecx, 0x40
je 0x1016ca78
cmp edi, 0x60
je 0x1016ca78
cmp ebx, 0xa0
jb 0x1016ca6c
cmp edx, 0xd7ff
jbe 0x1016ca78
cmp edx, 0xe000
jae 0x1016ca78
xor eax, eax
jmp 0x1016ca7d
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016be4b
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 0x1016c933
jmp 0x1016be4b
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016be4f
cmp esi, dword [ebx + 0x84]
jbe 0x1016be4f
mov dword [ebx + 0x64], ebp
cmp eax, 1
jg 0x10171275
jmp 0x1016be4f
mov ebx, dword [esp + 0x10]
jmp 0x1016be53
cmp ecx, 0x16
jne 0x1016cdf3
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016cddb
nop
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016cdb5
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 0x1016cc12
cmp eax, 0xc0
jb 0x1016cc12
test al, 0x20
jne 0x1016cb37
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016cc0a
test al, 0x10
jne 0x1016cb5d
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 0x1016cc0a
test al, 8
jne 0x1016cb8f
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 0x1016cc0a
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016cbcc
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 0x1016cc0a
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016cc2c
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx ebx, byte [eax*8 + 0x101c2cfa]
cmp edi, ebp
jae 0x1016cd75
nop word [eax + eax]
cmp dword [esp + 0x24], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x1016cd29
cmp edx, 0xc0
jb 0x1016cd29
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016cc91
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016cd25
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016cca9
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016cd1f
and eax, 0x3f
test dl, 8
jne 0x1016ccc9
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016cd1f
test dl, 4
jne 0x1016ccf2
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 0x1016cd1f
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 + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016cd43
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx ecx, byte [eax*8 + 0x101c2cfa]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101c2708], eax
je 0x1016cd71
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x1016cc50
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016cda0
cmp esi, dword [ebx + 0x78]
jb 0x1016cda0
cmp esi, dword [ebx + 0x84]
jbe 0x1016cda0
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x28]
jl 0x1016caf0
jmp 0x1016cdd7
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016cdd7
cmp esi, dword [ebx + 0x84]
jbe 0x1016cdd7
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x40], 0
je 0x1016e22b
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
cmp dword [esp + 0x24], 0
lea eax, [ecx - 6]
je 0x1016db73
cmp eax, 0xf
ja case.default.0x101672aa
jmp dword [eax*4 + 0x10171ec8]
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016d114
nop dword [eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016cf3b
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016ce53
push dword [esp + 0x24]
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.101737e0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne 0x1016d114
jmp 0x1016ce78
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016ce78
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016ce78
cmp edx, 1
je 0x1016d114
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je 0x1016d114
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016cead
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016cead
cmp dword [ebx + 0x18], 0
jne 0x1016cead
cmp dword [ebx + 0x1c], 2
jne 0x1016cead
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016cead
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x10171275
mov edx, dword [ebx + 0x78]
inc esi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x1016ced5
mov ecx, esi
nop dword [eax + eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016ced1
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016cec0
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, dword [esp + 0x28]
jl 0x1016ce20
jmp 0x1016d114
mov ebx, dword [esp + 0x10]
cmp edx, 0x7fffffff
jge 0x1016cf34
cmp ebp, edx
jge 0x1016d114
mov edi, dword [ebx + 0x78]
mov eax, dword [esp + 0x28]
cmp esi, edi
jae 0x1016cf3b
inc esi
mov edx, edi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x1016cf2a
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016cf22
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x1016cf11
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, eax
jl 0x1016cf00
jmp 0x1016d114
mov esi, dword [ebx + 0x78]
mov dword [esp + 0x14], esi
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016d114
cmp esi, dword [ebx + 0x84]
jbe 0x1016d114
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
jmp 0x1016d114
mov ebx, dword [esp + 0x10]
sub edx, ebp
mov ecx, dword [ebx + 0x78]
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x1016cf97
mov eax, dword [ebx + 0x88]
mov esi, ecx
mov dword [esp + 0x14], esi
test eax, eax
je 0x1016d114
cmp ecx, dword [ebx + 0x84]
jmp 0x1016cf4f
add esi, edx
mov dword [esp + 0x14], esi
jmp 0x1016d114
cmp ebp, edx
jge 0x1016d110
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 0x1016d12c
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x1016d0a0
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d002
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebp, 2
jmp 0x1016d096
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d01a
and edx, 0xf
mov ebp, 3
shl edx, 6
or edx, ecx
jmp 0x1016d090
and eax, 0x3f
test dl, 8
jne 0x1016d03a
and edx, 7
mov ebp, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d090
test dl, 4
jne 0x1016d063
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 0x1016d090
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 0x1016d0ba
mov eax, dword [esp + 0x44]
inc esi
mov dword [esp + 0x14], esi
cmp esi, eax
jae 0x1016d110
cmp byte [esi], 0xa
jne 0x1016d0fd
inc esi
jmp 0x1016d0f9
cmp ecx, 0xa
je 0x1016d0f3
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x68], 0
jne 0x1016db6c
cmp edi, 0xb
je 0x1016d0f3
cmp ebx, 0xc
je 0x1016d0f3
cmp edx, 0x85
je 0x1016d0f3
cmp edx, 0x2028
je 0x1016d0f3
cmp edx, 0x2029
jne 0x1016db6c
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 0x1016cfc0
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016e4aa
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016d114
cmp esi, dword [ebx + 0x84]
jbe 0x1016d114
mov dword [ebx + 0x64], ebp
cmp eax, 1
jg 0x10171275
jmp 0x1016d114
cmp ebp, edx
jge 0x1016d110
nop dword [eax]
nop dword [eax + eax]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x20], 1
cmp esi, dword [ebx + 0x78]
jae 0x1016cf3b
movzx edx, byte [esi]
mov eax, edx
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x1016d25f
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d1af
and eax, 0x1f
mov dword [esp + 0x20], 2
shl eax, 6
mov edx, ecx
jmp 0x1016d253
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d1cd
and edx, 0xf
mov dword [esp + 0x20], 3
shl edx, 6
or edx, ecx
jmp 0x1016d24d
and eax, 0x3f
test dl, 8
jne 0x1016d1f0
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 0x1016d24d
test dl, 4
jne 0x1016d21c
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 0x1016d24d
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 0x1016d2d0
cmp edi, 0x2000
je case.0x1016d2f2.8193
cmp ebp, 0xa0
ja 0x1016d2c0
cmp edx, 0xa0
je case.0x1016d2f2.8193
cmp edx, 9
je case.0x1016d2f2.8193
cmp edx, 0x20
je case.0x1016d2f2.8193
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x30], 0x12
sete al
cmp ecx, eax
je 0x1016d110
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 0x1016d160
jmp 0x1016d110
cmp edx, 0x1680
je case.0x1016d2f2.8193
cmp edx, 0x180e
jmp 0x1016d28a
cmp ecx, 0x3000
ja case.0x1016d2f2.8203
cmp ebx, 0x3000
je case.0x1016d2f2.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x1016d2f2.8203
movzx eax, byte [edx + 0x10171f10]
jmp dword [eax*4 + 0x10171f08]
mov ecx, 1
jmp 0x1016d28e
cmp ebp, edx
jge 0x1016d110
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
mov edi, 1
cmp esi, ebx
jae 0x1016d444
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x1016d3e8
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d34e
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov edi, 2
jmp 0x1016d3e2
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d366
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016d3dc
and eax, 0x3f
test dl, 8
jne 0x1016d386
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d3dc
test dl, 4
jne 0x1016d3af
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 0x1016d3dc
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 0x1016d406
cmp ecx, 0x85
je case.0x1016d3ff.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x1016d3ff
jmp dword [edx*4 + 0x10171f70]
sub edx, 0x2028
je case.0x1016d3ff.10
sub edx, 1
je case.0x1016d3ff.10
xor ecx, ecx
jmp 0x1016d41c
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x30], 0x14
sete al
cmp ecx, eax
je 0x1016d110
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d310
jmp 0x1016d110
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016d114
cmp esi, dword [ebx + 0x84]
jbe 0x1016d114
mov dword [ebx + 0x64], edi
cmp eax, 1
jg 0x10171275
jmp 0x1016d114
cmp ebp, edx
jge 0x1016d110
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x1016d5a2
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016d571
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d4c2
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016d56b
test dl, 0x10
jne 0x1016d4dd
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x1016d565
test dl, 8
jne 0x1016d501
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 0x1016d565
test dl, 4
jne 0x1016d531
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 0x1016d565
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 0x1016d58c
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne 0x1016d110
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d482
jmp 0x1016d110
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016d114
cmp esi, dword [ebx + 0x84]
jbe 0x1016d114
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
jmp 0x1016d114
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016d114
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016cf3b
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x1016d6b9
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d620
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x1016d6b5
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d638
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016d6af
and eax, 0x3f
test dl, 8
jne 0x1016d658
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d6af
test dl, 4
jne 0x1016d681
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 0x1016d6af
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 0x1016d114
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 4
je 0x1016d114
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d5e4
jmp 0x1016d114
cmp ebp, edx
jge 0x1016d110
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x1016d5a2
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016d7e5
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d736
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016d7df
test dl, 0x10
jne 0x1016d751
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x1016d7d9
test dl, 8
jne 0x1016d775
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 0x1016d7d9
test dl, 4
jne 0x1016d7a5
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 0x1016d7d9
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 0x1016d800
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne 0x1016d110
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d6f6
jmp 0x1016d110
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016d114
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016cf3b
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x1016d8fa
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d861
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x1016d8f6
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016d879
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016d8f0
and eax, 0x3f
test dl, 8
jne 0x1016d899
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016d8f0
test dl, 4
jne 0x1016d8c2
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 0x1016d8f0
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 0x1016d114
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
je 0x1016d114
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d825
jmp 0x1016d114
cmp ebp, edx
jge 0x1016d110
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x1016d5a2
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016da26
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d977
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016da20
test dl, 0x10
jne 0x1016d992
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x1016da1a
test dl, 8
jne 0x1016d9b6
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 0x1016da1a
test dl, 4
jne 0x1016d9e6
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 0x1016da1a
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 0x1016da41
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne 0x1016d110
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016d937
jmp 0x1016d110
cmp ebp, edx
jge 0x1016d110
mov ebx, dword [esp + 0x10]
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016cf3b
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x1016db3e
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016daa2
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x1016db3a
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016dabd
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016db34
and eax, 0x3f
test dl, 8
jne 0x1016dadd
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016db34
test dl, 4
jne 0x1016db06
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 0x1016db34
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 0x1016d114
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 0x10
je 0x1016d114
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016da66
jmp 0x1016d114
mov ebx, eax
jmp 0x1016d114
cmp eax, 0xf
ja case.default.0x101672aa
jmp dword [eax*4 + 0x10171f80]
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
nop
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016df0e
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016dbc1
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.101737e0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne case.0x1016dd72.10
jmp 0x1016dbe6
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016dbe6
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016dbe6
cmp edx, 1
je case.0x1016dd72.10
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x1016dd72.10
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016dc1b
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016dc1b
cmp dword [ebx + 0x18], 0
jne 0x1016dc1b
cmp dword [ebx + 0x1c], 2
jne 0x1016dc1b
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016dc1b
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x10171275
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016db90
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
sub edx, ebp
mov ecx, dword [ebx + 0x78]
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x1016dc60
mov eax, dword [ebx + 0x88]
mov esi, ecx
mov dword [esp + 0x14], esi
test eax, eax
je case.0x1016dd72.10
cmp ecx, dword [ebx + 0x84]
jmp 0x1016df1e
add esi, edx
mov dword [esp + 0x14], esi
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov ecx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x1016df0e
mov al, byte [esi]
cmp al, 0xd
jne 0x1016dca2
inc esi
mov dword [esp + 0x14], esi
cmp esi, ecx
jae case.0x1016dd72.10
cmp byte [esi], 0xa
jne 0x1016dcc5
jmp 0x1016dcc0
cmp al, 0xa
je 0x1016dcc0
cmp dword [ebx + 0x68], 0
jne case.0x1016dd72.10
cmp al, 0xb
je 0x1016dcc0
cmp al, 0xc
je 0x1016dcc0
cmp al, 0x85
jne case.0x1016dd72.10
inc esi
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, edx
jl 0x1016dc80
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov ecx, dword [ebx + 0x78]
nop
cmp esi, ecx
jae 0x1016df0e
mov al, byte [esi]
cmp al, 9
je case.0x1016dd72.10
cmp al, 0x20
je case.0x1016dd72.10
cmp al, 0xa0
je case.0x1016dd72.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016dce0
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016df0e
mov al, byte [esi]
cmp al, 9
je 0x1016dd3a
cmp al, 0x20
je 0x1016dd3a
cmp al, 0xa0
jne case.0x1016dd72.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016dd20
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016df0e
movzx eax, byte [esi]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x1016dd72.14
movzx eax, byte [eax + 0x10171fc8]
jmp dword [eax*4 + 0x10171fc0]
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016dd58
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016df0e
movzx eax, byte [esi]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x1016dd72.10
movzx eax, byte [eax + 0x1017204c]
jmp dword [eax*4 + 0x10172044]
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016dd97
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov edx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edx
jae 0x1016df0e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.0x1016dd72.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016dde0
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016df0e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.0x1016dd72.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016de18
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016df0e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.0x1016dd72.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016de50
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016df0e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.0x1016dd72.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016de88
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016df0e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.0x1016dd72.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016dec0
jmp case.0x1016dd72.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016dd72.10
mov edx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, edx
jae 0x1016df0e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.0x1016dd72.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x1016def0
jmp case.0x1016dd72.10
mov eax, dword [ebx + 0x88]
test eax, eax
je case.0x1016dd72.10
cmp esi, dword [ebx + 0x84]
jbe case.0x1016dd72.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
cmp dword [esp + 0x40], 0
je 0x1016e52c
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
jmp 0x1016485a
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
cmp cl, 0x7a
jne 0x1016df84
push dword [esp + 0x18]
mov ebp, dword [esp + 0x38]
lea eax, [edx + 3]
push edi
push ebp
push eax
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edx, ebx
mov dword [esp + 0x18], edx
jmp 0x1016e0c8
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push ebx
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x1016e0cc
cmp dword [esp + 0x38], 0x8c
jne 0x1016e0c8
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.10164710
add esp, 0x1c
jmp 0x1017163c
mov ebp, dword [esp + 0x2c]
cmp al, 0x7a
mov eax, dword [esp + 0x180]
jne 0x1016e03e
inc eax
push eax
push dword [esp + 0x38]
lea eax, [edx + 3]
push ecx
push edi
push ebp
push eax
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov al, byte [ebx]
cmp al, 0x81
je 0x1016e87a
cmp al, 0x88
jae 0x1016e858
mov edx, ebx
mov dword [esp + 0x18], edx
jmp 0x1016e0c8
inc eax
push eax
push dword [esp + 0x38]
push ecx
push edi
push ebp
push ebx
push esi
call fcn.10164710
mov edx, dword [esp + 0x2c]
add esp, 0x1c
mov ecx, eax
cmp eax, 0xfffffc1b
jne 0x1016e066
cmp dword [edx + 0xb4], ebx
je 0x1016e06e
test ecx, ecx
jne 0x1017163c
cmp byte [ebx], 0x81
je 0x1016e890
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x1016e0c8
cmp esi, ebp
je 0x1016e0c4
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.10164710
dec esi
add esp, 0x1c
mov dword [esp + 0x14], esi
test eax, eax
jne 0x1017163c
cmp esi, ebp
jne 0x1016e090
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 0x10171634
mov ecx, dword [esp + 0x34]
jmp 0x101647f0
cmp esi, edi
je 0x1016e0c4
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.10164710
dec esi
add esp, 0x1c
mov dword [esp + 0x14], esi
test eax, eax
jne 0x1017163c
cmp esi, edi
jne 0x1016e0f0
jmp 0x1016e0c4
cmp esi, edi
jbe 0x1016e0c4
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x1016e180
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x1016e170
mov dword [esp + 0x14], esi
cmp ecx, edi
ja 0x1016e130
jmp 0x1016e0c4
cmp esi, edi
je 0x1016e0c4
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
dec esi
mov dword [esp + 0x14], esi
cmp esi, edi
jne 0x1016e191
jmp 0x1016e0c4
cmp esi, edi
jbe 0x1016e0c4
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
dec esi
mov ecx, esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0x24], eax
je 0x1016e222
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016e222
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x1016e212
mov dword [esp + 0x14], esi
cmp ecx, edi
ja 0x1016e1d2
jmp 0x1016e0c4
cmp esi, edi
jbe 0x1016e0c4
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
dec esi
mov dword [esp + 0x14], esi
test ebp, ebp
jne 0x1016e273
movzx edx, byte [esi]
jmp 0x1016e33f
mov cl, byte [esi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x1016e290
nop dword [eax]
mov al, byte [esi - 1]
dec esi
mov cl, al
and al, 0xc0
cmp al, 0x80
je 0x1016e280
mov dword [esp + 0x14], esi
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x1016e341
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016e2bc
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x1016e33d
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016e2cf
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1016e337
and eax, 0x3f
test dl, 8
jne 0x1016e2ea
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016e337
test dl, 4
jne 0x1016e30e
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 0x1016e337
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 + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016e35b
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx ebx, byte [eax*8 + 0x101c2cfa]
nop dword [eax]
cmp esi, edi
jbe 0x1016e0c4
lea edi, [esi - 1]
test ebp, ebp
jne 0x1016e387
movzx edx, byte [edi]
jmp 0x1016e44c
mov cl, byte [edi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x1016e39d
mov al, byte [edi - 1]
dec edi
mov cl, al
and al, 0xc0
cmp al, 0x80
je 0x1016e391
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x1016e44e
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016e3c9
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x1016e44a
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x1016e3dc
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1016e444
and eax, 0x3f
test dl, 8
jne 0x1016e3f7
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x1016e444
test dl, 4
jne 0x1016e41b
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 0x1016e444
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 + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016e468
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x101c6578]
movzx edx, byte [eax*8 + 0x101c2cfa]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x101c2708], eax
je 0x1016e49d
mov esi, edi
mov ebx, edx
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
jmp 0x1016e370
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
jmp 0x1016e237
mov edi, dword [esp + 0x3c]
cmp esi, edi
jbe 0x1016e0c4
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
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 0x1016e505
mov cl, byte [esi - 1]
dec esi
mov al, cl
mov edx, esi
and al, 0xc0
cmp al, 0x80
je 0x1016e4f3
mov dword [esp + 0x14], esi
cmp dword [esp + 0x30], 0x11
jne 0x1016e523
cmp edx, edi
jbe 0x1016e523
cmp cl, 0xa
jne 0x1016e523
cmp byte [esi - 1], 0xd
lea eax, [esi - 1]
cmove esi, eax
mov dword [esp + 0x14], esi
cmp esi, edi
ja 0x1016e4b6
jmp 0x1016e0c4
cmp esi, edi
je 0x1016e0c4
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
dec esi
cmp dword [esp + 0x30], 0x11
mov dword [esp + 0x14], esi
mov eax, esi
jne 0x1016e587
cmp esi, edi
jbe 0x1016e587
cmp byte [esi], 0xa
jne 0x1016e587
cmp byte [esi - 1], 0xd
lea ecx, [esi - 1]
jne 0x1016e587
mov esi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
cmp eax, edi
jne 0x1016e534
jmp 0x1016e0c4
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 0x1016e693
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 0x1016e604
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 + 0x101c2578]
push dword [esp + 0x3c]
add eax, ecx
push eax
push esi
call fcn.10164710
mov edi, eax
add esp, 0x1c
cmp edi, 0xfffffc1b
je 0x101712c0
mov ecx, edi
cmp edi, 0xfffffc20
jne 0x1017127f
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 0x1017127f
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x1016e688
cmp byte [edx], 0x77
mov eax, ecx
jne 0x1017127f
xor edi, edi
jmp 0x10171287
mov edi, dword [esp + 0x10]
cmp edx, 0x88
jae 0x1016e6d5
cmp edx, 0x81
je 0x1016e6d5
cmp dword [edi + 0x6c], 0
mov edx, dword [esp + 0x18]
jne 0x1016e6e3
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + edx], 0x77
je 0x1016e6e3
movzx eax, byte [edx]
movzx eax, byte [eax + 0x101c2578]
add edx, eax
mov dword [esp + 0x18], edx
jmp 0x1016e0cc
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 + 0x101c2578]
push dword [esp + 0x3c]
add eax, edx
push eax
push esi
call fcn.10164710
mov edx, eax
add esp, 0x1c
mov ecx, edx
cmp edx, 0xfffffc20
jne 0x1016e76b
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 0x1016e767
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x1016e759
cmp byte [edi], 0x77
mov eax, ecx
jne 0x1016e767
mov edi, dword [esp + 0x10]
mov dword [esp + 0x44], 0
jmp 0x1016e773
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x101712f6
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.0x10166a5b
mov edx, dword [esp + 0x38]
mov dword [edi + 0x90], ebp
jmp 0x1016e693
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 + 0x101c2578]
add eax, edi
add ecx, eax
push ecx
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
lea eax, [edi + 2]
mov dword [ebx + 0x7c], eax
mov eax, 0xfffffc1f
jmp 0x1017163c
mov eax, ecx
sub eax, 1
jmp 0x1016e800
cmp ecx, 0xfffffc19
je case.default.0x10166a5b
mov eax, ecx
jmp 0x1017163c
mov eax, 0xffffffe6
jmp 0x1017163c
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xe0]
cmp eax, ecx
je 0x1016e830
push eax
call dword [0x101fd4b4]
add esp, 4
mov eax, edi
jmp 0x1017163c
mov eax, 0xfffffffa
jmp 0x1017163c
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x7c], eax
mov eax, 1
jmp 0x1017163c
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.10164710
add esp, 0x1c
jmp 0x1017163c
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x18]
push edi
push ebp
push ebx
jmp 0x1016e8a8
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016e8e2
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov eax, dword [esp + 0x10]
mov dword [eax + 0xb4], ebx
mov eax, 0xfffffc1b
jmp 0x1017163c
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x7c], eax
mov eax, 0xfffffc1a
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x8c], edi
jmp 0x1017163c
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 0x1017163c
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x88]
test ecx, ecx
je case.default.0x10166a5b
mov edx, dword [esp + 0x10]
lea eax, [esi + 1]
cmp eax, dword [edx + 0x78]
jb case.default.0x10166a5b
cmp dword [edx + 0x18], 0
jne case.default.0x10166a5b
cmp dword [edx + 0x1c], 2
jne case.default.0x10166a5b
mov al, byte [esi]
cmp al, byte [edx + 0x34]
jne case.default.0x10166a5b
mov dword [edx + 0x64], 1
cmp ecx, 1
jmp 0x1016e98d
mov eax, ecx
jmp 0x1016e938
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10166a5b
cmp esi, dword [ebx + 0x84]
jbe case.default.0x10166a5b
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
xor eax, eax
jmp 0x1017163c
mov ecx, dword [esp + 0x10]
cmp eax, 0xfffffffe
jne 0x1016efd8
mov esi, dword [ecx + 0x78]
jmp 0x1016efd8
mov dword [esp + 0x44], esi
cmp ebp, ebx
jge 0x1016ea13
push dword [esp + 0x40]
push dword [esp + 0x14]
push ecx
push esi
push edi
call fcn.10172490
add esp, 0x14
test eax, eax
js 0x1016e9db
mov ecx, dword [esp + 0x20]
inc ebp
add esi, eax
cmp ebp, ebx
jl 0x1016e9b7
jmp 0x1016ea09
cmp eax, 0xfffffffe
jne 0x1016ea09
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x88]
test ecx, ecx
je 0x1016ea09
mov eax, dword [edx + 0x78]
cmp eax, dword [edx + 0x84]
jbe 0x1016ea09
mov dword [edx + 0x64], 1
cmp ecx, 1
jg 0x10171275
mov ebp, dword [esp + 0x44]
cmp esi, ebp
jb case.default.0x10166a5b
jmp 0x1016ea17
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
sub esi, ebx
cmp esi, ebp
jae 0x1016ea20
jmp 0x1017163c
cmp eax, 0xfffffffe
jne 0x1016ea61
mov esi, dword [ebx + 0x78]
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jb case.default.0x10166a5b
jmp 0x1016e97b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x10166a5b
cmp esi, dword [ecx + 0x84]
jbe case.default.0x10166a5b
mov dword [ecx + 0x64], 1
jmp 0x1016e98a
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov eax, esi
dec esi
cmp eax, edi
jbe case.default.0x10166a5b
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016eaf0
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x1016eae6
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016ead3
jmp 0x1017163c
cmp esi, edi
jb case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
dec esi
cmp esi, edi
jae 0x1016eb21
jmp 0x1017163c
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
test edx, edx
je 0x1016ecf3
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
nop
cmp edi, dword [esp + 0x20]
jge case.default.0x10166a5b
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ea81
movzx edx, byte [esi]
inc esi
mov edi, edx
mov eax, edx
cmp edx, 0xc0
jb 0x1016ec97
test dl, 0x20
jne 0x1016ebd8
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 0x1016ec97
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x1016ec03
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 0x1016ec97
test dl, 8
jne 0x1016ec2a
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 0x1016ec97
test dl, 4
jne 0x1016ec5d
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 0x1016ec97
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 0x1016eca5
cmp dword [esp + 0x38], 0x6e
jmp 0x1016ecb7
and edx, 7
shr edi, 3
mov eax, 1
mov ecx, edx
shl eax, cl
test byte [edi + ebx], al
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016eb90
jmp 0x1017163c
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov ecx, ebp
nop word [eax + eax]
cmp ecx, dword [esp + 0x20]
jge case.default.0x10166a5b
cmp esi, dword [edi + 0x78]
jae 0x1016ed7a
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.0x10166a5b
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.10164710
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016ed20
jmp 0x1017163c
mov eax, dword [edi + 0x88]
test eax, eax
je case.default.0x10166a5b
cmp esi, dword [edi + 0x84]
jbe case.default.0x10166a5b
mov dword [edi + 0x64], 1
jmp 0x1016e98a
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
nop dword [eax]
mov eax, esi
dec esi
cmp eax, ebp
jbe case.default.0x10166a5b
cmp dword [esp + 0x24], 0
je 0x1016edfa
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016edfa
nop word [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x1016edf0
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016edd0
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebx
cmp edi, dword [esp + 0x20]
jge case.default.0x10166a5b
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ea81
movzx edx, byte [esi]
inc esi
mov edi, dword [esp + 0x24]
test edi, edi
je 0x1016ef70
cmp edx, 0xc0
jb 0x1016ef70
test dl, 0x20
jne 0x1016ee9f
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016ef70
test dl, 0x10
jne 0x1016eec6
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 0x1016ef70
test dl, 8
jne 0x1016eef9
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 0x1016ef70
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016ef35
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 0x1016ef70
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.10173e50
add esp, 0xc
test eax, eax
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016ee53
jmp 0x1017163c
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10166a5b
cmp esi, edi
jb case.default.0x10166a5b
jmp 0x1016e97b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x10166a5b
cmp esi, dword [ecx + 0x78]
jb case.default.0x10166a5b
jmp 0x1016ea8f
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
mov ebx, dword [ebx + 0x78]
mov eax, ebx
mov edi, dword [esp + 0x30]
sub eax, edi
cmp esi, eax
ja 0x1016f099
mov edx, dword [esp + 0x50]
mov ecx, esi
sub edi, 4
jb 0x1016f061
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016f066
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1016f050
cmp edi, 0xfffffffc
je 0x1016f093
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016f099
cmp edi, 0xfffffffd
je 0x1016f093
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016f099
cmp edi, 0xfffffffe
je 0x1016f093
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016f099
cmp edi, 0xffffffff
je 0x1016f093
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016f099
add esi, dword [esp + 0x30]
jmp 0x1016f107
mov edi, dword [esp + 0x20]
test edi, edi
jle 0x1016f13e
mov eax, ebx
sub eax, edi
cmp esi, eax
ja 0x1016f13e
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x1016f0d1
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016f0d6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1016f0c0
cmp edi, 0xfffffffc
je 0x1016f103
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016f13e
cmp edi, 0xfffffffd
je 0x1016f103
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016f13e
cmp edi, 0xfffffffe
je 0x1016f103
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016f13e
cmp edi, 0xffffffff
je 0x1016f103
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016f13e
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016f025
jmp 0x1017163c
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x10166a5b
cmp esi, ebx
jb case.default.0x10166a5b
jmp 0x1016ea8f
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
nop dword [eax + eax]
cmp ebp, dword [esp + 0x28]
jge case.default.0x10166a5b
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ea81
movzx eax, byte [esi]
cmp ebx, eax
je 0x1016f1b6
cmp edi, eax
jne case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016f190
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov ecx, ebp
nop
cmp ecx, edi
jge case.default.0x10166a5b
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ea81
movzx eax, byte [esi]
inc esi
cmp ebx, eax
jne case.default.0x10166a5b
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.10164710
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016f220
jmp 0x1017163c
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.10164710
add esp, 0x1c
cmp dword [esp + 0x24], 0
je 0x1016f41b
test eax, eax
jne 0x1017163c
mov edi, ebp
nop dword [eax + eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x1016f3f5
movzx ecx, byte [esi]
inc esi
mov eax, ecx
cmp ecx, 0xc0
jb 0x1016f3b0
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016f2f2
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016f3ae
test cl, 0x10
jne 0x1016f313
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 0x1016f3ae
test cl, 8
jne 0x1016f33d
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 0x1016f3ae
test cl, 4
jne 0x1016f373
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 0x1016f3ae
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.0x10166a5b
cmp dword [esp + 0x38], eax
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016f2b0
jmp 0x1017163c
mov eax, dword [edx + 0x88]
test eax, eax
je case.default.0x10166a5b
cmp esi, dword [edx + 0x84]
jbe case.default.0x10166a5b
mov dword [edx + 0x64], 1
jmp 0x1016e98a
test eax, eax
jne 0x1017163c
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ea81
movzx eax, byte [esi]
cmp ebx, eax
je case.default.0x10166a5b
cmp dword [esp + 0x38], eax
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016f425
jmp 0x1017163c
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
test edx, edx
je 0x1016f620
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov ebx, ebp
nop dword [eax]
cmp ebx, dword [esp + 0x28]
jge case.default.0x10166a5b
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016ea81
movzx ebx, byte [esi]
inc esi
mov dword [esp + 0x4c], ebx
cmp ebx, 0xc0
jb 0x1016f5e1
mov al, byte [esi]
test bl, 0x20
jne 0x1016f501
and ebx, 0x1f
movzx eax, al
inc esi
shl ebx, 6
jmp 0x1016f5dc
lea ecx, [esi + 1]
test bl, 0x10
jne 0x1016f525
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 0x1016f5d8
lea edx, [esi + 2]
test bl, 8
jne 0x1016f554
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 0x1016f5d8
mov ebp, dword [esp + 0x4c]
lea edi, [esi + 3]
test bl, 4
jne 0x1016f58f
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 0x1016f5d0
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.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016f4c0
jmp 0x1017163c
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov ecx, ebp
cmp ecx, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx eax, byte [esi]
inc esi
cmp edi, eax
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016f644
jmp 0x1017163c
test eax, eax
js 0x10170848
cmp eax, 0xa
ja case.default.0x101672aa
jmp dword [eax*4 + 0x101720c8]
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
nop dword [eax + eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
je 0x1016f72a
cmp eax, 0xc0
jb 0x1016f72a
test al, 0x20
jne 0x1016f70c
inc esi
jmp 0x1016f72a
test al, 0x10
jne 0x1016f715
add esi, 2
jmp 0x1016f72a
test al, 8
jne 0x1016f71e
add esi, 3
jmp 0x1016f72a
test al, 4
jne 0x1016f727
add esi, 4
jmp 0x1016f72a
add esi, 5
cmp dword [esp + 0x48], 0
jne case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016f6e0
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x1016f8b1
cmp eax, 0xc0
jb 0x1016f8b1
test al, 0x20
jne 0x1016f7de
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016f8af
test al, 0x10
jne 0x1016f804
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 0x1016f8af
test al, 8
jne 0x1016f836
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 0x1016f8af
test al, 4
movzx eax, byte [esi]
jne 0x1016f871
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 0x1016f8af
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016f8cb
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp eax, 9
je 0x1016f8f0
cmp eax, 5
je 0x1016f8f0
cmp eax, 8
je 0x1016f8f0
xor eax, eax
jmp 0x1016f8f5
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016f795
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x1016fa7f
cmp eax, 0xc0
jb 0x1016fa7f
test al, 0x20
jne 0x1016f9ac
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016fa7d
test al, 0x10
jne 0x1016f9d2
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 0x1016fa7d
test al, 8
jne 0x1016fa04
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 0x1016fa7d
test al, 4
movzx eax, byte [esi]
jne 0x1016fa3f
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 0x1016fa7d
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016fa99
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x4c]
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp dword [eax*4 + 0x101c2690], edx
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016f963
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x1016fc49
cmp eax, 0xc0
jb 0x1016fc49
test al, 0x20
jne 0x1016fb79
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016fc47
test al, 0x10
jne 0x1016fb9f
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 0x1016fc47
test al, 8
jne 0x1016fbce
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 0x1016fc47
test al, 4
movzx eax, byte [esi]
jne 0x1016fc09
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 0x1016fc47
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016fc63
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016fb30
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x1016fe09
cmp eax, 0xc0
jb 0x1016fe09
test al, 0x20
jne 0x1016fd39
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016fe07
test al, 0x10
jne 0x1016fd5f
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 0x1016fe07
test al, 8
jne 0x1016fd8e
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 0x1016fe07
test al, 4
movzx eax, byte [esi]
jne 0x1016fdc9
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 0x1016fe07
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016fe23
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf8]
cmp eax, dword [esp + 0x4c]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016fcf0
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
je 0x1016ffc9
cmp eax, 0xc0
jb 0x1016ffc9
test al, 0x20
jne 0x1016fef9
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016ffc7
test al, 0x10
jne 0x1016ff1f
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 0x1016ffc7
test al, 8
jne 0x1016ff4e
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 0x1016ffc7
test al, 4
movzx eax, byte [esi]
jne 0x1016ff89
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 0x1016ffc7
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x1016ffe3
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x1017000a
cmp eax, 3
je 0x1017000a
xor eax, eax
jmp 0x1017000f
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x1016feb0
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
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 0x101701a3
mov dword [esp + 0x20], ecx
cmp ecx, 0xc0
jb 0x101701a3
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101700d9
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10170195
test cl, 0x10
jne 0x101700fa
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 0x10170195
test cl, 8
jne 0x10170124
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 0x10170195
test cl, 4
jne 0x1017015a
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 0x10170195
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 0x101701c2
cmp eax, 0x20
je case.0x101702c8.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x101702c8.8203
jmp dword [eax*4 + 0x101720f4]
cmp ecx, 0x2000
ja 0x1017029e
cmp edx, 0x2000
je case.0x101702c8.8193
cmp ebx, 0x1680
ja 0x10170293
cmp ecx, 0x1680
je case.0x101702c8.8193
mov eax, ecx
sub eax, 0x85
je case.0x101702c8.8193
sub eax, 0x1b
je case.0x101702c8.8193
mov eax, ecx
test eax, eax
jns 0x10170211
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x1017022b
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
cmp dword [eax*4 + 0x101c2690], 6
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x10170080
jmp 0x1017163c
cmp ecx, 0x180e
jmp 0x10170202
cmp edi, 0x3000
ja case.0x101702c8.8203
cmp ebp, 0x3000
je case.0x101702c8.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x101702c8.8203
movzx eax, byte [eax + 0x10172110]
jmp dword [eax*4 + 0x10172108]
cmp dword [esp + 0x48], 0
jne case.default.0x10166a5b
jmp 0x10170254
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
mov edi, eax
je 0x1017042f
cmp eax, 0xc0
jb 0x1017042f
test al, 0x20
jne 0x1017035b
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1017042b
test al, 0x10
jne 0x10170381
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 0x1017042b
test al, 8
jne 0x101703b0
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 0x1017042b
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x101703ed
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 0x1017042b
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x10170449
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx eax, byte [eax*8 + 0x101c2cf9]
mov eax, dword [eax*4 + 0x101c2690]
cmp eax, 1
je 0x10170475
cmp eax, 3
je 0x10170475
cmp edi, 0x5f
je 0x10170475
xor eax, eax
jmp 0x1017047a
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x10170310
jmp 0x1017163c
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
nop dword [eax + eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, edx
je 0x1017060d
cmp edx, 0xc0
jb 0x1017060d
test dl, 0x20
jne 0x1017053d
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 0x1017060b
test dl, 0x10
jne 0x10170564
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 0x1017060b
test dl, 8
jne 0x10170594
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 0x1017060b
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101705d0
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 0x1017060b
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 + 0x101c2bb8]
lea eax, [eax*4 + 0x101c2bb8]
jb 0x10170630
mov ecx, dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x1017066e
mov ecx, dword [eax]
cmp edx, ecx
jae 0x10170623
cmp dword [esp + 0x48], 0
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x101704f0
jmp 0x1017163c
cmp dword [esp + 0x48], 0
jne case.default.0x10166a5b
jmp 0x1017063b
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
cmp esi, dword [ebx + 0x78]
jae 0x1016e971
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
je 0x101707d7
cmp edx, 0xc0
jb 0x101707d7
test dl, 0x20
jne 0x10170701
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101707cf
test dl, 0x10
jne 0x10170728
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 0x101707cf
test dl, 8
jne 0x10170758
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 0x101707cf
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10170794
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 0x101707cf
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 0x10170802
cmp ecx, 0x40
je 0x10170802
cmp edi, 0x60
je 0x10170802
cmp ebx, 0xa0
jb 0x101707f6
cmp edx, 0xd7ff
jbe 0x10170802
cmp edx, 0xe000
jae 0x10170802
xor eax, eax
jmp 0x10170807
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x101706b0
jmp 0x1017163c
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
cmp ecx, 0x16
jne 0x10170b67
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016e971
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x24], 0
mov ecx, eax
mov edx, eax
mov edi, esi
je 0x101709a3
cmp eax, 0xc0
jb 0x101709a3
test al, 0x20
jne 0x101708cf
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1017099f
test al, 0x10
jne 0x101708f5
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 0x1017099f
test al, 8
jne 0x10170924
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 0x1017099f
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x10170961
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 0x1017099f
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 + 0x101c4378]
shl eax, 7
and edx, 0x8000007f
jns 0x101709bd
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c6578]
movzx ebx, byte [eax*8 + 0x101c2cfa]
cmp edi, ebp
jae 0x10170b01
nop word [eax + eax]
cmp dword [esp + 0x24], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x10170ab9
cmp edx, 0xc0
jb 0x10170ab9
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10170a21
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10170ab5
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10170a39
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10170aaf
and eax, 0x3f
test dl, 8
jne 0x10170a59
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10170aaf
test dl, 4
jne 0x10170a82
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 0x10170aaf
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 + 0x101c4378]
shl eax, 7
and ecx, 0x8000007f
jns 0x10170ad3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c6578]
movzx ecx, byte [eax*8 + 0x101c2cfa]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101c2708], eax
je 0x10170b01
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x101709e0
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10170b2c
cmp esi, dword [ebx + 0x78]
jb 0x10170b2c
cmp esi, dword [ebx + 0x84]
jbe 0x10170b2c
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x10171275
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.10164710
add esp, 0x1c
test eax, eax
je 0x10170882
jmp 0x1017163c
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x1017101d
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x1016ed7a
cmp dword [esp + 0x30], 0xc
jne 0x10170c04
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10170bdf
push ebx
lea eax, [edi + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.101737e0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10166a5b
jmp 0x10170c04
mov edx, dword [edi + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x10170c04
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x10170c04
cmp edx, 1
je case.default.0x10166a5b
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.default.0x10166a5b
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 0x10170d02
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x10170c45
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x10170cec
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x10170c66
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x10170cec
test dl, 8
jne 0x10170c89
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 0x10170cec
test dl, 4
jne 0x10170cb8
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 0x10170cec
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.0x101672aa
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x10172170]
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x88]
test ecx, ecx
je case.0x10170d19.13
cmp esi, dword [edi + 0x78]
jb case.0x10170d19.13
cmp dword [edi + 0x18], 0
jne case.0x10170d19.13
cmp dword [edi + 0x1c], 2
jne case.0x10170d19.13
movzx eax, byte [edi + 0x34]
cmp edx, eax
jne case.0x10170d19.13
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x10171275
jmp case.0x10170d19.13
cmp edx, 0x85
ja 0x10170da9
je case.0x10170d86.11
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10166a5b
jmp dword [edx*4 + 0x101721b0]
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae case.0x10170d19.13
cmp byte [esi], 0xa
jne case.0x10170d19.13
inc esi
jmp case.0x10170d19.13
sub edx, 0x2028
je case.0x10170d86.11
sub edx, 1
jne case.default.0x10166a5b
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x68], 0
jne case.default.0x10166a5b
jmp case.0x10170d19.13
cmp edx, 0x2000
ja 0x10170e11
je case.default.0x10166a5b
cmp edx, 0xa0
ja 0x10170dfa
je case.default.0x10166a5b
cmp edx, 9
je case.default.0x10166a5b
cmp edx, 0x20
jmp 0x10170fd5
cmp edx, 0x1680
je case.default.0x10166a5b
cmp edx, 0x180e
jmp 0x10170fd5
cmp edx, 0x3000
ja case.0x10170d19.13
je case.default.0x10166a5b
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10170d19.13
movzx eax, byte [edx + 0x101721c8]
jmp dword [eax*4 + 0x101721c0]
cmp edx, 0x2000
ja 0x10170e90
je case.0x10170d19.13
cmp edx, 0xa0
ja 0x10170e73
je case.0x10170d19.13
cmp edx, 9
je case.0x10170d19.13
cmp edx, 0x20
jne case.default.0x10166a5b
jmp case.0x10170d19.13
cmp edx, 0x1680
je case.0x10170d19.13
cmp edx, 0x180e
jne case.default.0x10166a5b
jmp case.0x10170d19.13
cmp edx, 0x3000
ja case.default.0x10166a5b
je case.0x10170d19.13
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x10166a5b
movzx eax, byte [edx + 0x10172230]
jmp dword [eax*4 + 0x10172228]
cmp edx, 0x85
ja 0x10170ee0
je case.default.0x10166a5b
add edx, 0xfffffff6
cmp edx, 3
ja case.0x10170d19.13
jmp dword [edx*4 + 0x10172290]
sub edx, 0x2028
je case.default.0x10166a5b
sub edx, 1
jmp 0x10170fd5
cmp edx, 0x85
ja 0x10170f15
je case.0x10170d19.13
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10166a5b
jmp dword [edx*4 + 0x101722a0]
sub edx, 0x2028
je case.0x10170d19.13
sub edx, 1
jne case.default.0x10166a5b
jmp case.0x10170d19.13
cmp eax, 0x100
jae case.0x10170d19.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne case.default.0x10166a5b
jmp case.0x10170d19.13
cmp dword [esp + 0x20], 0x100
jae case.default.0x10166a5b
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jmp 0x10170fd5
cmp dword [esp + 0x4c], 0x100
jae case.0x10170d19.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne case.default.0x10166a5b
jmp case.0x10170d19.13
cmp ebx, 0x100
jae case.default.0x10166a5b
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jmp 0x10170fd5
cmp ebp, 0x100
jae case.0x10170d19.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne case.default.0x10166a5b
jmp case.0x10170d19.13
cmp dword [esp + 0x40], 0x100
jae case.default.0x10166a5b
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov ebx, dword [esp + 0x24]
jmp 0x10170b96
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10166a5b
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1017124b
mov edi, dword [esp + 0x30]
cmp edi, 0xc
jne 0x101710ae
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10171089
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.101737e0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10166a5b
jmp 0x101710ae
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x101710ae
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x101710ae
cmp edx, 1
je case.default.0x10166a5b
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10166a5b
movzx ecx, byte [esi]
lea eax, [edi - 6]
inc esi
cmp eax, 0xf
ja case.default.0x101672aa
jmp dword [eax*4 + 0x101722b0]
mov edx, dword [ebx + 0x88]
test edx, edx
je case.0x101710be.13
cmp esi, dword [ebx + 0x78]
jb case.0x101710be.13
cmp dword [ebx + 0x18], 0
jne case.0x101710be.13
cmp dword [ebx + 0x1c], 2
jne case.0x101710be.13
movzx eax, byte [ebx + 0x34]
cmp ecx, eax
jne case.0x101710be.13
mov dword [ebx + 0x64], 1
cmp edx, 1
jg 0x10171275
jmp case.0x101710be.13
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.default.0x10166a5b
movzx eax, byte [ecx + 0x10172300]
jmp dword [eax*4 + 0x101722f0]
cmp esi, dword [ebx + 0x78]
jae case.0x101710be.13
cmp byte [esi], 0xa
jne case.0x101710be.13
inc esi
jmp case.0x101710be.13
cmp dword [ebx + 0x68], 0
jne case.default.0x10166a5b
jmp case.0x101710be.13
cmp ecx, 9
je case.default.0x10166a5b
cmp ecx, 0x20
je case.default.0x10166a5b
cmp ecx, 0xa0
jmp 0x10171208
cmp ecx, 9
je case.0x101710be.13
cmp ecx, 0x20
je case.0x101710be.13
cmp ecx, 0xa0
jne case.default.0x10166a5b
jmp case.0x101710be.13
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x101710be.13
movzx eax, byte [ecx + 0x10172384]
jmp dword [eax*4 + 0x1017237c]
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.default.0x10166a5b
movzx eax, byte [ecx + 0x10172408]
jmp dword [eax*4 + 0x10172400]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10166a5b
jmp case.0x101710be.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jmp 0x10171208
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.default.0x10166a5b
jmp case.0x101710be.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jmp 0x10171208
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10166a5b
jmp case.0x101710be.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10166a5b
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.10164710
add esp, 0x1c
test eax, eax
je 0x10171041
jmp 0x1017163c
mov eax, 0xfffffff2
jmp 0x1017163c
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10166a5b
cmp esi, dword [ebx + 0x84]
jbe case.default.0x10166a5b
mov dword [ebx + 0x64], 1
cmp eax, 1
jle case.default.0x10166a5b
mov eax, 0xfffffff4
jmp 0x1017163c
test eax, eax
jne case.default.0x10165001
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 0x101712c4
mov edi, edx
jmp 0x1016e5f0
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 0x1017163c
cmp ecx, 0xfffffc1b
jne 0x10171348
mov ebx, dword [esp + 0x18]
cmp byte [ebx], 0x81
je 0x10171339
cmp byte [ebx], 0x77
mov edi, ebx
jne 0x10171328
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 0x10171310
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 0x1017163c
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 + 0x101c2578]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10164710
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x101713af
cmp edx, 0xfffffc19
je 0x101713af
cmp edx, 0xfffffc1a
jne 0x101713c5
cmp dword [ebx + 0xac], 0
jne 0x101713c5
mov dword [ebx + 0xac], edi
mov eax, edx
jmp 0x1017163c
cmp edx, 0xfffffc1f
jne 0x101713fd
mov eax, dword [ebx + 0x7c]
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x101713f0
test cl, cl
je 0x101713ec
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x101713f0
add edi, 2
add eax, 2
test cl, cl
jne 0x101713d0
xor eax, eax
jmp 0x101713f5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10171514
mov eax, edx
jmp 0x1017163c
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx + 0x101c2578]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164710
add esp, 0x1c
mov ecx, 0xfffffc1c
test eax, eax
cmovne ecx, eax
mov eax, ecx
jmp 0x1017163c
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx + 0x101c2578]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
je 0x101714da
jmp 0x1017163c
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 + 0x101c2578]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10164710
add esp, 0x1c
cmp eax, 1
je 0x101714c3
cmp eax, 0xfffffc19
jne 0x101714d2
cmp dword [ebx + 0xac], 0
jne 0x101714d2
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x1017163c
mov eax, 0xfffffc1d
jmp 0x1017163c
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx + 0x101c2578]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
jne 0x1017163c
mov dword [ebx + 0x7c], esi
mov eax, 0xfffffc1e
jmp 0x1017163c
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x38]
movzx eax, byte [edx + 0x101c2578]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10164710
add esp, 0x1c
test eax, eax
je 0x101715be
jmp 0x1017163c
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 + 0x101c2578]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10164710
add esp, 0x1c
cmp eax, 1
je 0x101715a7
cmp eax, 0xfffffc19
jne 0x101715b6
cmp dword [ebx + 0xac], 0
jne 0x101715b6
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x1017163c
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x7c], eax
mov eax, 0xfffffc20
jmp 0x1017163c
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jne 0x10171606
cmp edx, 0x9f
je 0x10171606
cmp dword [ebx + 0xa4], 0
jne 0x10171606
cmp dword [ebx + 0x5c], 0
jne case.default.0x10166a5b
cmp dword [ebx + 0x60], 0
je 0x10171606
mov eax, dword [ebx + 0x94]
add eax, dword [ebx + 0x74]
cmp ecx, eax
je case.default.0x10166a5b
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 0x1017163c
mov eax, 0xfffffffb
jmp 0x1017163c
mov eax, 0xffffffeb
jmp 0x1017163c
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.10176e3f
add esp, 0x154
ret