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

Disassembly:
sub esp, 0x154
mov eax, dword [0x101f9740]
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 + 0x20], ecx
push esi
mov esi, dword [esp + 0x15c]
mov dword [esp + 8], esi
test edx, edx
jne 0x10160c4f
lea eax, [esp + 0x174]
cmp dword [esp + 0x174], edx
jne 0x10160c30
push 1
push edx
push edx
push edx
push edx
push edx
push eax
call fcn.10160ba0
add esp, 0x1c
pop esi
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.10173495
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.10173495
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 + 0x50], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x20], ebp
cmp eax, dword [edi + 4]
jae 0x1016db2f
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x180]
cmp eax, dword [edi + 8]
jae 0x1016db28
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 2
jne 0x10160cb7
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x74], esi
mov dword [esp + 0x30], ecx
mov dword [eax + 0x98], 0
mov ebx, eax
jmp 0x10160ce7
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160cf0
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
jmp 0x10160cf0
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
nop dword [eax + eax]
mov cl, byte [edx]
movzx edx, cl
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], edx
cmp edx, 0xa1
ja case.0x10160d1c.98
movzx eax, byte [edx + 0x1016dc9c]
jmp dword [eax*4 + 0x1016db50]
mov eax, dword [ebx + 0x28]
inc eax
mov dword [ebx + 0x28], eax
cmp eax, dword [ebx + 0x2c]
ja 0x1016ac48
mov edx, dword [esp + 0x18]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x101be5e8]
movzx eax, byte [edx + 1]
add edx, eax
add edx, ecx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
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 + 0x34]
lea eax, [edx + 3]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
cmp eax, 1
je 0x10160e04
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x10160dd0
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 0x10160dd0
mov ecx, dword [esp + 0x18]
cmp byte [ecx], 0x77
je 0x10160dd8
cmp byte [edx], 0x77
mov ecx, eax
je 0x10160dd8
test eax, eax
jne case.default.0x10161491
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 0x10160d65
jmp 0x10160e13
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 0x10160e21
cmp al, 0x77
jne case.default.0x10162ef5
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 0x10160e21
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 0x10160e60
cmp esi, ebp
jne 0x1016a3c8
mov ebp, dword [esp + 0x20]
add edx, 3
mov dword [esp + 0x18], edx
mov ebx, eax
jmp 0x10160cf0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], 0
jmp 0x101619ea
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], 0
jmp 0x10161a0b
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 + 0x4c], ebp
cmp byte [edx], 0x76
jne 0x10160fb2
mov edi, dword [0x101ff2dc]
test edi, edi
je 0x10160f9f
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.0x10162ef5
js 0x1016db37
mov edx, dword [esp + 0x18]
movzx eax, byte [0x101be65e]
add edx, eax
sub ebp, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x4c], ebp
movzx edi, byte [edx]
xor ebx, ebx
mov dword [esp + 0x44], edi
lea eax, [edi - 0x8d]
cmp eax, 0x10
ja case.0x10160fd1.146
movzx eax, byte [eax + 0x1016dd58]
jmp dword [eax*4 + 0x1016dd40]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xa4]
test edx, edx
je case.0x10160fd1.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 0x1016100c
cmp ecx, dword [edx + 4]
jne case.0x10160fd1.145
mov eax, dword [esp + 0x44]
mov ebx, 1
movzx ebp, byte [eax + 0x101be5e8]
jmp case.0x10160fd1.145
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa4], ebx
je case.0x10160fd1.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.0x10160fd1.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 0x10161095
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
add edx, esi
mov esi, edx
test edi, edi
jg 0x10161070
mov esi, dword [esp + 0x14]
mov eax, ebx
mov ebp, dword [esp + 0x4c]
jmp 0x10161145
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 0x101610ce
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], ebx
jl 0x101610ce
mov ebx, 1
mov eax, ebx
jmp 0x10161145
xor ebx, ebx
mov eax, ebx
jmp 0x10161145
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.0x10160fd1.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 0x1016112e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x1016112e
mov ebx, 1
jmp 0x10161130
xor ebx, ebx
mov eax, ebx
test ebx, ebx
jne 0x101611f6
mov ecx, dword [esp + 0x10]
add edx, dword [ecx + 0x24]
test edi, edi
jg 0x10161105
test eax, eax
je case.0x10160fd1.145
mov eax, dword [esp + 0x44]
movzx ebp, byte [eax + 0x101be5e8]
jmp case.0x10160fd1.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.10160ba0
add esp, 0x1c
cmp eax, 1
jne 0x10161203
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 0x101611b4
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 0x101611e6
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 0x101611d0
movzx eax, byte [edi + 0x101be5e8]
sub edx, eax
add edx, 3
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x44]
movzx ebp, byte [eax + 0x101be5e8]
jmp case.0x10160fd1.145
test eax, eax
je case.0x10160fd1.145
cmp eax, 0xfffffc20
jne 0x1016db37
mov edx, dword [esp + 0x18]
add edx, ebp
mov dword [esp + 0x18], edx
test ebx, ebx
jne 0x1016a433
cmp byte [edx - 3], 0x77
je 0x1016a433
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
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 0x1016128a
mov edx, dword [esp + 0x18]
or eax, 0x10000
mov edi, dword [esp + 0x1c]
add edx, 3
mov ebp, dword [esp + 0x20]
mov dword [ebx + 0x90], eax
mov dword [esp + 0x18], edx
jmp 0x10160cf0
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 0x10163959
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + edi*4]
cmp ecx, edx
jae 0x101612df
mov eax, ecx
nop dword [eax + eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x101612d0
mov edx, dword [esp + 0x18]
add edi, 2
mov ebp, dword [esp + 0x20]
add edx, 3
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x1016131e
mov dword [eax + 0x98], 0
mov ebx, 1
jmp 0x10161320
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.10160ba0
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x101613be
cmp edx, 0xfffffc19
je 0x101613be
mov dword [ebp + 0xac], edi
cmp edx, 0xfffffc20
jne 0x10161394
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 0x10161394
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10161390
cmp byte [ecx], 0x77
mov eax, edx
jne 0x10161394
xor edx, edx
xor eax, eax
test edx, edx
jne 0x1016db37
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 0x10161326
jmp 0x101613cb
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.0x10162ef5
test ebx, ebx
jne 0x1016adca
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 0x101613e0
mov eax, ebp
add edx, 3
mov ebp, dword [esp + 0x20]
mov ebx, eax
mov dword [esp + 0x18], edx
mov edi, dword [eax + 0x8c]
mov dword [esp + 0x1c], edi
jmp 0x10160cf0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x10161436
mov dword [eax + 0x98], 0
mov ebx, 1
jmp 0x10161438
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.10160ba0
mov ecx, eax
add esp, 0x1c
mov eax, dword [esp + 0x10]
mov dword [eax + 0xac], edi
cmp ecx, 0xfffffc1c
jle 0x101614e2
test ecx, ecx
jg 0x1016ac93
je 0x101614c0
lea eax, [ecx + 0x3e3]
cmp eax, 3
ja case.default.0x10161491
jmp dword [eax*4 + 0x1016dd6c]
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 0x101614f0
cmp byte [edx], 0x77
je 0x101614c4
cmp byte [eax], 0x77
jne 0x101614f0
jmp 0x101614c4
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 0x10161440
jmp 0x10161504
jne 0x1016ac9a
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 0x101614f0
test ebx, ebx
jne 0x1016adca
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x10160ce3
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
test ebp, ebp
je 0x10161568
or ecx, eax
mov eax, dword [esp + 0x10]
jbe 0x1016157d
mov edx, dword [eax + 0x74]
dec esi
dec ecx
mov dword [esp + 0x14], esi
cmp esi, edx
jb case.default.0x10162ef5
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016155e
nop dword [eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x10161550
mov dword [esp + 0x14], esi
test ecx, ecx
jg 0x10161536
mov eax, dword [esp + 0x10]
jmp 0x1016157d
or ecx, eax
mov eax, dword [esp + 0x10]
sub esi, ecx
mov dword [esp + 0x14], esi
cmp esi, dword [eax + 0x74]
jb case.default.0x10162ef5
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
cmp esi, dword [eax + 0x84]
jae 0x10163965
mov ebp, dword [esp + 0x20]
add edx, 3
mov dword [eax + 0x84], esi
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov edi, dword [0x101ff2dc]
test edi, edi
je 0x10161696
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.0x10162ef5
js 0x1016db37
mov edx, dword [esp + 0x18]
add edx, 6
mov dword [esp + 0x18], edx
jmp 0x10160ce7
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 0x101616c4
xor edx, edx
jmp 0x101616d1
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 0x101616fa
nop
cmp edx, dword [ecx + 4]
jne 0x101616ee
cmp esi, dword [ecx + 0x14]
je 0x1016acad
mov eax, dword [ecx]
mov ecx, eax
test eax, eax
jne 0x101616e0
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 0x10161748
lea eax, [esp + 0xe0]
mov dword [esp + 0x60], eax
jmp 0x10161769
lea eax, [ecx*4]
push eax
call dword [0x101f94e0]
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
je 0x1016acd7
mov ecx, dword [esp + 0x64]
shl ecx, 2
push ecx
mov ecx, dword [esp + 0x14]
push dword [ecx + 0xc]
push eax
call fcn.10174d90
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [ebx], 0x88
sbb ebp, ebp
inc ebp
test ebp, ebp
je 0x1016179b
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 + 0x34]
movzx eax, byte [ebx]
push edx
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101be5e8]
push dword [esp + 0x3c]
add eax, ebx
push eax
push esi
call fcn.10160ba0
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.10174d90
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 0x10161874
cmp edi, 0xfffffc19
je 0x10161874
cmp edi, 0xfffffc1c
jl 0x1016181c
cmp edi, 0xfffffc20
jle 0x10161850
test edi, edi
jne 0x1016acb7
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 0x10161787
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.0x10162ef5
push eax
call dword [0x101f94e4]
add esp, 4
xor eax, eax
jmp 0x1016db37
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xe0]
cmp eax, ecx
je 0x1016188d
push eax
call dword [0x101f94e4]
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 + 0x20]
jmp 0x10160ce7
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 0x101618c0
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov eax, dword [esp + 0x180]
mov edi, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x34]
inc edi
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edi
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
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 0x10161910
lea edx, [edi + 3]
mov dword [esp + 0x18], edx
jmp 0x10160ce7
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 0x10161940
mov eax, dword [esp + 0x180]
mov edi, dword [esp + 0x1c]
inc eax
push eax
push dword [esp + 0x34]
lea eax, [edx + 3]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
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 0x101619a0
lea edx, [eax + 3]
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x24], 1
mov dword [esp + 0x18], ecx
movzx edx, byte [ecx]
mov dword [esp + 0x3c], edx
cmp edx, 0x86
je 0x101619ea
cmp edx, 0x8b
jne 0x10161a0b
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 0x10161b78
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 0x10161a32
mov dword [eax + 0x98], 2
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [ecx]
push dword [esp + 0x18]
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101be5e8]
push dword [esp + 0x3c]
add eax, ecx
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
cmp eax, 0xfffffc1a
jne 0x10161ab0
mov eax, dword [esp + 0x10]
mov ebp, 1
mov dword [esp + 0x4c], 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 0x10161b2d
mov edx, dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
jmp 0x10161a20
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x10161af0
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 0x10161af0
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10161af8
cmp byte [edx], 0x77
mov eax, ecx
je 0x10161af8
test eax, eax
jne case.default.0x10161491
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 0x10161b54
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x90], ebx
jmp 0x10161a20
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 0x10161b30
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jne 0x10161b64
mov edx, eax
cmp dword [esp + 0x24], ebp
je case.default.0x10162ef5
mov ebx, dword [esp + 0x10]
add edx, 3
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x10160ce7
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 + 0x4c], edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x38], 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 + 0x3c], 0x88
mov eax, dword [eax + 0xc]
mov dword [eax + ecx*4], edx
jb 0x10161bd8
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 + 0x34]
push dword [esp + 0x18]
movzx eax, byte [ecx]
push dword [esp + 0x28]
push dword [esp + 0x3c]
movzx eax, byte [eax + 0x101be5e8]
add eax, ecx
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
cmp eax, 0xfffffc1a
jne 0x10161c5b
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 0x10161cd2
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
jmp 0x10161bb0
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x10161c9b
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 0x10161c9b
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10161ca3
cmp byte [edx], 0x77
mov eax, ecx
je 0x10161ca3
test eax, eax
jne case.default.0x10161491
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 0x10161cfc
mov eax, dword [esp + 0x10]
jmp 0x10161bb0
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 0x10161cd4
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
jmp 0x10161d31
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x10161d31
mov ebp, dword [esp + 0x10]
lea ecx, [ebx + ebx]
mov edi, dword [esp + 0x4c]
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 + 0x38]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
sub ecx, ebx
mov dword [eax + ecx*4], edi
cmp dword [esp + 0x24], 0
jne 0x10163959
test edx, edx
jmp 0x10163953
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 + 0x24], ebx
mov cl, byte [ebx]
cmp cl, 0x88
jae 0x10161d6c
cmp cl, 0x81
je 0x10161d6c
xor ebp, ebp
jmp 0x10161d7c
mov ebp, dword [esp + 0x30]
lea eax, [ebp + 4]
mov ebp, dword [ebp]
mov dword [esp + 0x30], ebp
mov ebp, dword [eax]
cmp cl, 0x7d
jb 0x10161d8a
cmp cl, 0x80
jbe 0x1016adb3
cmp cl, 0x82
je 0x1016adb3
cmp cl, 0x85
je 0x10161dab
cmp cl, 0x8a
je 0x10161dab
cmp cl, 0x86
je 0x10161dab
cmp cl, 0x8b
jne 0x10161e6e
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 0x10161dd2
cmp dword [eax + 4], edi
je 0x1016ace1
mov eax, dword [ecx + 0x90]
and eax, 0xffff0000
or eax, edi
mov dword [ecx + 0x90], eax
cmp ebx, dword [ecx + 0x14]
jl 0x10161dff
mov ebx, dword [esp + 0x24]
or eax, 0x10000
mov edi, dword [esp + 0x1c]
mov dword [ecx + 0x90], eax
jmp 0x10161e72
cmp ebx, dword [esp + 0x1c]
jle 0x10161e33
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + ebx*4]
lea ecx, [eax + ecx*4]
cmp ecx, edx
jae 0x10161e2f
mov eax, ecx
nop dword [eax + eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x10161e20
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 0x10161e68
lea edi, [ebx + 2]
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x24]
jmp 0x10161e72
mov ecx, dword [esp + 0x10]
mov al, byte [edx]
cmp al, 0x7b
je 0x1016ad96
cmp al, 0x78
je 0x10161e88
cmp esi, ebp
jne 0x1016a474
cmp byte [ebx], 0x81
je 0x1016ad5a
mov ebx, dword [esp + 0x10]
add edx, 3
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0
je 0x10161ebe
cmp esi, dword [eax + 0x74]
je case.default.0x10162ef5
jmp 0x10161ebe
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x74]
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0
je 0x10161ef0
cmp esi, dword [eax + 0x74]
je case.default.0x10162ef5
mov edx, dword [eax + 0x74]
cmp esi, edx
je 0x10163c42
cmp esi, dword [eax + 0x78]
je case.default.0x10162ef5
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x10161f4a
cmp esi, edx
jbe 0x10161f2a
push ebp
add eax, 0x1c
push eax
push edx
push ecx
push esi
call fcn.1016fe50
add esp, 0x14
test eax, eax
je 0x10161f2a
mov eax, 1
jmp 0x10161f2c
xor eax, eax
test eax, eax
je case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov ecx, dword [eax + 0x1c]
lea eax, [ecx + edx]
cmp esi, eax
jb case.default.0x10162ef5
mov ebx, dword [esp + 0x10]
mov eax, esi
sub eax, ecx
mov al, byte [eax]
cmp al, byte [ebx + 0x34]
jne case.default.0x10162ef5
cmp ecx, 1
je case.0x10162ef5.10
mov eax, esi
sub eax, ecx
mov al, byte [eax + 1]
cmp al, byte [ebx + 0x35]
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov eax, dword [ebx + 0x94]
add eax, dword [ebx + 0x74]
cmp esi, eax
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10162047
mov edx, dword [eax + 0x18]
test edx, edx
je 0x10162013
push ebp
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.1016fcc0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
je 0x1016add4
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov edx, dword [eax + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016add8
mov ebx, dword [esp + 0x10]
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10162040
cmp edx, 1
je case.0x10162ef5.10
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x10162ef5.10
mov eax, ebx
jmp 0x1016add8
cmp dword [eax + 0x48], 0
jne case.default.0x10162ef5
mov eax, dword [eax + 0x88]
mov ebx, dword [esp + 0x10]
test eax, eax
je case.0x10162ef5.10
cmp esi, dword [ebx + 0x84]
jbe case.0x10162ef5.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x48], 0
jne case.default.0x10162ef5
cmp dword [eax + 0x58], 0
je 0x101620ba
jmp 0x101620ab
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jb case.default.0x10162ef5
jmp 0x10162051
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10162051
mov edx, dword [eax + 0x18]
test edx, edx
je 0x101620ee
push ebp
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.1016fcc0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
je 0x1016add4
mov ecx, dword [esp + 0x10]
jmp 0x1016211b
mov edx, dword [eax + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016add8
mov ecx, dword [esp + 0x10]
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x1016ae0d
cmp edx, 1
je 0x1016211b
mov al, byte [esi + 1]
cmp al, byte [ecx + 0x35]
jne 0x1016ae0d
mov eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x1c]
cmp esi, eax
mov eax, dword [esp + 0x10]
jne 0x1016add8
jmp 0x10162051
test ebp, ebp
je 0x10162420
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x74]
je 0x10162299
mov al, byte [esi - 1]
lea edx, [esi - 1]
and al, 0xc0
mov ecx, edx
cmp al, 0x80
jne 0x10162161
mov al, byte [edx - 1]
dec edx
and al, 0xc0
mov ecx, edx
cmp al, 0x80
je 0x10162155
mov eax, dword [esp + 0x10]
cmp ecx, dword [eax + 0x84]
jae 0x10162173
mov dword [eax + 0x84], edx
movzx ebx, byte [edx]
mov eax, ebx
mov ecx, ebx
mov ebp, ebx
mov edi, ebx
cmp ebx, 0xc0
jb 0x1016222e
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x101621a3
and eax, 0x1f
mov ebx, ecx
shl eax, 6
jmp 0x10162224
movzx eax, byte [edx + 2]
test bl, 0x10
jne 0x101621b6
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x1016221e
and eax, 0x3f
test bl, 8
jne 0x101621d1
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
jmp 0x1016221e
test bl, 4
jne 0x101621f5
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 0x1016221e
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 0x10162281
cmp ebp, 0x5f
je 0x1016227a
shr eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10162257
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x1016227a
cmp eax, 3
jne 0x1016229b
mov ebp, 1
jmp 0x1016229d
cmp edi, 0x100
jae 0x1016229b
mov eax, dword [edx + 0x40]
test byte [ebx + eax], 0x10
je 0x1016229b
mov ebp, 1
jmp 0x1016229d
mov edx, eax
xor ebp, ebp
cmp esi, dword [edx + 0x78]
jb 0x101622d1
mov eax, dword [edx + 0x88]
test eax, eax
je 0x101622c4
cmp esi, dword [edx + 0x84]
jbe 0x101622c4
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov ebx, dword [esp + 0x10]
xor ecx, ecx
xor edx, edx
jmp 0x101624d3
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
cmp edx, 0xc0
jb 0x10162388
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101622ff
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10162380
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10162312
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1016237a
and eax, 0x3f
test dl, 8
jne 0x1016232d
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016237a
test dl, 4
jne 0x10162351
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 0x1016237a
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 0x101623f3
cmp ebx, 0x5f
je 0x101623e3
shr eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x101623b3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x101623e3
cmp eax, 3
je 0x101623e3
mov ebx, dword [esp + 0x10]
xor edx, edx
xor ecx, ecx
jmp 0x101624d3
mov ebx, dword [esp + 0x10]
mov edx, 1
mov ecx, edx
jmp 0x101624d3
cmp edi, 0x100
jae 0x101622c4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je 0x101622c4
mov ebx, dword [esp + 0x10]
mov ecx, 1
mov edx, ecx
jmp 0x101624d3
cmp esi, dword [ebx + 0x74]
je 0x101624a6
cmp esi, dword [ebx + 0x84]
ja 0x1016243a
lea eax, [esi - 1]
mov dword [ebx + 0x84], eax
cmp dword [ebx + 0x54], 0
movzx ecx, byte [esi - 1]
je 0x10162496
cmp ecx, 0x5f
je 0x1016248f
mov eax, ecx
test eax, eax
jns 0x10162452
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016246c
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x1016248f
cmp eax, 3
jne 0x101624a6
mov ebp, 1
jmp 0x101624a8
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x101624a6
mov ebp, 1
jmp 0x101624a8
xor ebp, ebp
cmp esi, dword [ebx + 0x78]
jb 0x101624f2
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101624cf
cmp esi, dword [ebx + 0x84]
jbe 0x101624cf
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
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 0x10162571
xor eax, eax
cmp ecx, ebp
sete al
jmp 0x10162578
cmp dword [ebx + 0x54], 0
movzx ecx, byte [esi]
je 0x10162558
cmp ecx, 0x5f
je 0x1016254c
mov eax, ecx
test eax, eax
jns 0x10162509
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10162523
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x1016254c
cmp eax, 3
je 0x1016254c
xor edx, edx
xor ecx, ecx
jmp 0x101624d3
mov edx, 1
mov ecx, edx
jmp 0x101624d3
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x101624cf
mov ecx, 1
mov edx, ecx
jmp 0x101624d3
xor eax, eax
cmp edx, ebp
setne al
test eax, eax
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x101625c2
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x101625b6
push ebp
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016fcc0
add esp, 0x14
test eax, eax
je 0x101625b6
mov eax, 1
jmp 0x101625b8
xor eax, eax
test eax, eax
jne case.default.0x10162ef5
jmp 0x101625ea
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x101625ea
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x101625ea
cmp ecx, 1
je case.default.0x10162ef5
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10162ef5
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je case.0x10160d1c.13
mov eax, dword [ebx + 0x78]
dec eax
cmp esi, eax
jne case.0x10160d1c.13
cmp dword [ebx + 0x18], 0
jne case.0x10160d1c.13
cmp dword [ebx + 0x1c], 2
jne case.0x10160d1c.13
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne case.0x10160d1c.13
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d762
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016ae11
inc esi
mov dword [esp + 0x14], esi
test ebp, ebp
je case.0x10162ef5.10
cmp esi, edx
jae case.0x10162ef5.10
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne case.0x10162ef5.10
lea esi, [ecx + 1]
mov dword [esp + 0x14], esi
mov ecx, esi
cmp esi, edx
jb 0x10162641
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
mov edx, dword [esp + 0x18]
inc esi
inc edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x1016278a
cmp ecx, 0xc0
jb 0x1016278a
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101626c8
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10162784
test cl, 0x10
jne 0x101626e9
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 0x10162784
test cl, 8
jne 0x10162713
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 0x10162784
test cl, 4
jne 0x10162749
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 0x10162784
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.0x10162ef5.10
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x101628ca
cmp edx, 0xc0
jb 0x101628ca
test dl, 0x20
jne 0x101627f6
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101628c4
test dl, 0x10
jne 0x1016281d
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 0x101628c4
test dl, 8
jne 0x1016284d
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 0x101628c4
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10162889
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 0x101628c4
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.0x10162ef5
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 4
je case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x10162a0a
cmp edx, 0xc0
jb 0x10162a0a
test dl, 0x20
jne 0x10162936
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10162a04
test dl, 0x10
jne 0x1016295d
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 0x10162a04
test dl, 8
jne 0x1016298d
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 0x10162a04
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101629c9
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 0x10162a04
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.0x10162ef5.10
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x10162b4a
cmp edx, 0xc0
jb 0x10162b4a
test dl, 0x20
jne 0x10162a76
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10162b44
test dl, 0x10
jne 0x10162a9d
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 0x10162b44
test dl, 8
jne 0x10162acd
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 0x10162b44
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10162b09
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 0x10162b44
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.0x10162ef5
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
je case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x10162c76
cmp ecx, 0xc0
jb 0x10162c76
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10162bb4
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10162c70
test cl, 0x10
jne 0x10162bd5
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 0x10162c70
test cl, 8
jne 0x10162bff
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 0x10162c70
test cl, 4
jne 0x10162c35
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 0x10162c70
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.0x10162ef5.10
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x10162da2
cmp ecx, 0xc0
jb 0x10162da2
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10162ce0
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10162d9c
test cl, 0x10
jne 0x10162d01
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 0x10162d9c
test cl, 8
jne 0x10162d2b
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 0x10162d9c
test cl, 4
jne 0x10162d61
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 0x10162d9c
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.0x10162ef5
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
test ebp, ebp
je 0x10162ed2
cmp ecx, 0xc0
jb 0x10162ed2
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10162e0e
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10162eca
test cl, 0x10
jne 0x10162e2f
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 0x10162eca
test cl, 8
jne 0x10162e59
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 0x10162eca
test cl, 4
jne 0x10162e8f
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 0x10162eca
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 0x10162f5d
cmp edx, 0x85
je case.0x10162ef5.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x10162ef5
jmp dword [ecx*4 + 0x1016dd7c]
cmp esi, dword [ebx + 0x78]
jb 0x10162f3d
mov eax, dword [ebx + 0x88]
test eax, eax
je case.0x10162ef5.10
cmp esi, dword [ebx + 0x84]
jbe case.0x10162ef5.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp byte [esi], 0xa
jne case.0x10162ef5.10
mov edx, dword [esp + 0x18]
inc esi
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x10160cf0
sub ecx, 0x2028
je case.0x10162ef5.11
sub ecx, 1
jne case.default.0x10162ef5
cmp dword [ebx + 0x68], 0
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov eax, edx
mov dword [esp + 0x14], esi
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
je 0x101630b3
cmp edx, 0xc0
jb 0x101630b3
test dl, 0x20
jne 0x10162fd7
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101630a5
test dl, 0x10
jne 0x10162ffe
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 0x101630a5
test dl, 8
jne 0x1016302e
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 0x101630a5
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016306a
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 0x101630a5
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 0x1016311a
cmp edi, 0x2000
je case.default.0x10162ef5
cmp ebp, 0xa0
ja 0x10163106
cmp edx, 0xa0
je case.default.0x10162ef5
cmp edx, 9
je case.default.0x10162ef5
cmp edx, 0x20
je case.default.0x10162ef5
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp edx, 0x1680
je case.default.0x10162ef5
cmp edx, 0x180e
jmp 0x101630e6
cmp ecx, 0x3000
ja case.0x10163140.8203
cmp ebx, 0x3000
je case.default.0x10162ef5
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10163140.8203
movzx eax, byte [edx + 0x1016dd94]
jmp dword [eax*4 + 0x1016dd8c]
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov eax, ecx
mov dword [esp + 0x14], esi
mov edi, ecx
mov ebp, ecx
mov edx, ecx
mov ebx, ecx
je 0x1016325c
cmp ecx, 0xc0
jb 0x1016325c
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10163192
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016324e
test cl, 0x10
jne 0x101631b3
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 0x1016324e
test cl, 8
jne 0x101631dd
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 0x1016324e
test cl, 4
jne 0x10163213
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 0x1016324e
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 0x101632b7
cmp edi, 0x2000
je case.0x10163140.8203
cmp ebp, 0xa0
ja 0x1016329a
cmp ecx, 0xa0
je case.0x10163140.8203
cmp ecx, 9
je case.0x10163140.8203
cmp ecx, 0x20
jne case.default.0x10162ef5
jmp case.0x10163140.8203
cmp ecx, 0x1680
je case.0x10163140.8203
cmp ecx, 0x180e
jne case.default.0x10162ef5
jmp case.0x10163140.8203
cmp edx, 0x3000
ja case.default.0x10162ef5
cmp ebx, 0x3000
je case.0x10163140.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x10162ef5
movzx eax, byte [ecx + 0x1016ddfc]
jmp dword [eax*4 + 0x1016ddf4]
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
test ebp, ebp
je 0x101633f2
cmp ecx, 0xc0
jb 0x101633f2
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016332e
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101633ea
test cl, 0x10
jne 0x1016334f
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 0x101633ea
test cl, 8
jne 0x10163379
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 0x101633ea
test cl, 4
jne 0x101633af
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 0x101633ea
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 0x10163418
cmp edx, 0x85
je case.default.0x10162ef5
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x10162ef5.10
jmp dword [ecx*4 + 0x1016de5c]
sub ecx, 0x2028
je case.default.0x10162ef5
sub ecx, 1
je case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
mov ecx, edx
test ebp, ebp
je 0x10163559
cmp edx, 0xc0
jb 0x10163559
test dl, 0x20
jne 0x10163483
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10163551
test dl, 0x10
jne 0x101634aa
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 0x10163551
test dl, 8
jne 0x101634da
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 0x10163551
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10163516
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 0x10163551
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 0x1016357f
cmp ecx, 0x85
je case.0x10162ef5.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10162ef5
jmp dword [edx*4 + 0x1016de6c]
sub edx, 0x2028
je case.0x10162ef5.10
sub edx, 1
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov eax, edx
mov dword [esp + 0x14], esi
mov ecx, edx
mov edi, edx
mov dword [esp + 0x24], edx
mov ebx, edx
mov dword [esp + 0x40], edx
mov ebp, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], edx
je 0x101636ff
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], edx
cmp edx, 0xc0
jb 0x101636ff
test dl, 0x20
jne 0x10163613
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101636e1
test dl, 0x10
jne 0x1016363a
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 0x101636e1
test dl, 8
jne 0x1016366a
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 0x101636e1
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101636a6
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 0x101636e1
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 + 0x24], edx
mov edi, edx
mov dword [esp + 0x40], eax
mov ebx, edx
mov dword [esp + 0x28], eax
mov ebp, edx
mov dword [esp + 0x38], eax
shr eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10163719
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x101c25e8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
movzx eax, byte [eax + 1]
cmp eax, 0xa
ja case.default.0x10163744
mov dword [esp + 0x44], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x44], ebp
jmp dword [eax*4 + 0x1016de7c]
cmp dword [esp + 0x3c], 0xf
jmp 0x10163953
mov al, byte [ecx*8 + 0x101bed69]
cmp al, 9
je 0x10163942
cmp al, 5
je 0x10163942
cmp al, 8
je 0x10163942
xor ecx, ecx
jmp 0x10163947
mov eax, dword [esp + 0x18]
xor edx, edx
movzx ecx, byte [ecx*8 + 0x101bed69]
movzx eax, byte [eax + 2]
cmp eax, dword [ecx*4 + 0x101be700]
setne dl
xor eax, eax
cmp dword [esp + 0x3c], 0x10
sete al
cmp edx, eax
jmp 0x10163953
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + 0x4c]
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x101bed69]
setne cl
xor eax, eax
cmp dword [esp + 0x3c], 0x10
jmp 0x1016394e
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + 0x4c]
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x101bed68]
setne cl
xor eax, eax
cmp dword [esp + 0x3c], 0x10
jmp 0x1016394e
movzx eax, byte [ecx*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x10163942
cmp eax, 3
je 0x10163942
xor ecx, ecx
jmp 0x10163947
cmp edx, 0x20
ja 0x10163830
je case.0x10163744.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x101638ab.8203
jmp dword [edx*4 + 0x1016dea8]
cmp dword [esp + 0x24], 0x2000
ja 0x1016388b
cmp edx, 0x2000
je case.0x10163744.0
cmp edx, 0x1680
ja 0x10163883
je case.0x10163744.0
sub edx, 0x85
je case.0x10163744.0
sub edx, 0x1b
je case.0x10163744.0
movzx eax, byte [ecx*8 + 0x101bed69]
xor ecx, ecx
cmp dword [eax*4 + 0x101be700], 6
sete cl
jmp 0x10163947
cmp edx, 0x180e
jmp 0x10163863
cmp edx, 0x3000
ja case.0x101638ab.8203
je case.0x10163744.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x101638ab.8203
movzx eax, byte [edx + 0x1016dec4]
jmp dword [eax*4 + 0x1016debc]
movzx eax, byte [ecx*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x10163942
cmp eax, 3
je 0x10163942
cmp edx, 0x5f
je 0x10163942
xor ecx, ecx
jmp 0x10163947
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
movzx eax, byte [eax + 2]
cmp ecx, dword [eax*4 + 0x101bec28]
lea eax, [eax*4 + 0x101bec28]
jb 0x101638ff
mov ecx, dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x10163906
mov ecx, dword [eax]
cmp edx, ecx
jae 0x101638f2
cmp dword [esp + 0x3c], 0x10
jmp 0x10163953
cmp dword [esp + 0x3c], 0x10
jne case.default.0x10162ef5
jmp 0x10163959
cmp dword [esp + 0x28], 0x24
je 0x10163942
cmp dword [esp + 0x38], 0x40
je 0x10163942
cmp edx, 0x60
je 0x10163942
cmp edx, 0xa0
jb 0x10163936
cmp edx, 0xd7ff
jbe 0x10163942
cmp edx, 0xe000
jae 0x10163942
xor ecx, ecx
jmp 0x10163947
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x3c], 0xf
sete al
cmp ecx, eax
je case.default.0x10162ef5
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
mov edi, esi
je 0x10163a92
cmp eax, 0xc0
jb 0x10163a92
test al, 0x20
jne 0x101639bc
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10163a8a
test al, 0x10
jne 0x101639e2
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 0x10163a8a
test al, 8
jne 0x10163a11
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 0x10163a8a
test al, 4
movzx eax, byte [esi]
jne 0x10163a4c
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 0x10163a8a
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10163aac
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx ebx, byte [eax*8 + 0x101bed6a]
cmp edi, ebp
jae 0x10163bf5
nop word [eax + eax]
cmp dword [esp + 0x20], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x10163ba9
cmp edx, 0xc0
jb 0x10163ba9
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10163b11
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10163ba5
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10163b29
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10163b9f
and eax, 0x3f
test dl, 8
jne 0x10163b49
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10163b9f
test dl, 4
jne 0x10163b72
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 0x10163b9f
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 + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10163bc3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx ecx, byte [eax*8 + 0x101bed6a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101be778], eax
je 0x10163bf1
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x10163ad0
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101630f0
cmp esi, dword [ebx + 0x78]
jb 0x101630f0
cmp esi, dword [ebx + 0x84]
jbe 0x101630f0
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
inc edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x10160cf0
mov edx, dword [esp + 0x18]
mov ebx, eax
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x10160cf0
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 + 0x24], ecx
test edx, edx
je 0x10163cdc
movzx ecx, byte [eax]
mov ebp, eax
shl ecx, 8
mov ebx, eax
movzx eax, byte [eax + 1]
dec edx
or ecx, eax
lea edi, [ecx + ecx]
mov ecx, dword [esp + 0x10]
cmp edi, dword [esp + 0x1c]
jge 0x10163ccb
mov eax, dword [ecx + 0xc]
cmp dword [eax + edi*4], 0
jge 0x10163d04
mov eax, dword [ecx + 0x24]
add eax, ebx
test edx, edx
jg 0x10163ca4
mov ecx, dword [esp + 0x24]
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.0x10163cfd
movzx eax, byte [ebx + 0x1016df2c]
jmp dword [eax*4 + 0x1016df24]
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
mov dword [esp + 0x24], ecx
jmp 0x10163cd8
mov ebp, dword [esp + 0x18]
xor edx, edx
cmp dword [esp + 0x3c], 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 0x10163d56
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edi*4]
test eax, eax
js 0x10163d56
mov ecx, dword [ecx + edi*4 + 4]
sub ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x10163ce0
mov ecx, dword [ebx + 0x50]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [esp + 0x24], ecx
jmp 0x10163ce0
mov eax, ebx
inc ebp
and eax, 1
mov dword [esp + 0x18], ebp
movsx ebp, byte [ebx + 0x101bdc40]
mov dword [esp + 0x44], eax
movsx eax, byte [ebx + 0x101bdc4c]
mov ebx, bind
test eax, eax
cmove eax, ebx
mov dword [esp + 0x4c], eax
jmp 0x10163dd6
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 + 0x4c], ebx
mov eax, ebp
test ecx, ecx
je 0x10160cdb
jns 0x10163dea
test eax, eax
je 0x10160cc9
cmp ebp, 1
jl 0x10163e1f
mov ebx, 1
push edx
push dword [esp + 0x14]
push ecx
push esi
push edi
call fcn.1016e980
add esp, 0x14
test eax, eax
js 0x1016ae3a
mov ecx, dword [esp + 0x24]
add esi, eax
mov edx, dword [esp + 0x40]
inc ebx
mov dword [esp + 0x14], esi
cmp ebx, ebp
jle 0x10163df4
mov ebx, dword [esp + 0x4c]
cmp ebp, ebx
je 0x10160cdb
cmp dword [esp + 0x44], 0
je 0x1016ae4f
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov ebx, dword [esp + 0x24]
mov ecx, ebp
nop word [eax + eax]
cmp ecx, dword [esp + 0x4c]
jge case.default.0x10162ef5
push dword [esp + 0x40]
push dword [esp + 0x14]
push ebx
push esi
push edi
call fcn.1016e980
add esp, 0x14
test eax, eax
js 0x1016ae3a
add esi, eax
inc ebp
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x10163e70
jmp 0x1016db37
mov ebx, dword [esp + 0x10]
push edx
push ebx
push ecx
push esi
push edi
call fcn.1016e980
add esp, 0x14
test eax, eax
js 0x1016af09
mov edx, dword [esp + 0x18]
add esi, eax
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x14], esi
jmp 0x10160ce7
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 + 0x34], ebx
mov dword [esp + 0x18], edi
cmp ecx, 0xb
ja case.default.0x10163f20
movzx eax, byte [ecx + 0x1016df3c]
jmp dword [eax*4 + 0x1016df34]
inc edi
mov dword [esp + 0x18], edi
cmp ecx, 8
jae 0x10163f3c
mov eax, ecx
and eax, 1
mov dword [esp + 0x38], eax
jmp 0x10163f44
mov dword [esp + 0x40], 1
movsx edx, byte [ecx + 0x101bdc4c]
mov eax, bind
movsx ebp, byte [ecx + 0x101bdc40]
test edx, edx
mov ecx, ebp
cmove edx, eax
mov eax, ebp
mov dword [esp + 0x24], edx
jmp 0x10163fbe
movzx ebp, byte [edi + 1]
xor eax, eax
cmp dl, 0x69
sete al
mov dword [esp + 0x38], 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 + 0x24], edx
mov dword [esp + 0x18], edi
jmp 0x10163fba
mov dword [esp + 0x24], 1
mov ebp, 1
mov ecx, ebp
mov eax, ecx
mov edx, dword [esp + 0x20]
mov edi, 1
test edx, edx
je 0x10164114
cmp ecx, edi
jl 0x10164159
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
nop
cmp esi, ebx
jae 0x1016af2d
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 0x101640e1
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016401d
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101640d9
test cl, 0x10
jne 0x1016403e
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 0x101640d9
test cl, 8
jne 0x10164068
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 0x101640d9
test cl, 4
jne 0x1016409e
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 0x101640d9
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 0x101640ef
cmp dword [esp + 0x3c], 0x6e
jmp 0x10164103
and ecx, 7
shr edx, 3
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x34]
test byte [edx + ecx], al
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x10163fe0
jmp 0x10164151
cmp eax, 1
jl 0x10164159
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
cmp esi, ebx
jae 0x1016af2d
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 + 0x34]
mov dword [esp + 0x14], esi
test byte [edx + ecx], al
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x10164120
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x10160cbb
cmp dword [esp + 0x38], 0
jne 0x1016b006
mov edi, esi
mov dword [esp + 0x28], edi
test edx, edx
je 0x101642f2
cmp ebp, eax
jge 0x101642ae
nop word [eax + eax]
mov ebx, dword [esp + 0x10]
cmp esi, dword [ebx + 0x78]
jae 0x101642ca
movzx edx, byte [esi]
mov ebx, 1
mov edi, edx
mov ecx, ebx
mov eax, edx
cmp edx, 0xc0
jb 0x10164271
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101641d5
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebx, 2
jmp 0x10164269
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101641ed
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x10164263
and eax, 0x3f
test dl, 8
jne 0x1016420d
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10164263
test dl, 4
jne 0x10164236
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 0x10164263
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 0x1016427f
cmp dword [esp + 0x3c], 0x6e
jmp 0x10164297
and edx, 7
shr edi, 3
mov ebx, ecx
mov eax, 1
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 0x34]
test byte [edi + ecx], al
je 0x101642aa
add esi, ebx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x24]
jl 0x10164190
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016af57
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101642ec
cmp esi, dword [ebx + 0x84]
jbe 0x101642ec
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov edi, dword [esp + 0x28]
jmp 0x101642b2
cmp ebp, eax
jge 0x1016432b
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
nop dword [eax]
cmp esi, edi
jae 0x10164347
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 0x10164327
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x24]
jl 0x10164300
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016afc9
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016436d
cmp esi, dword [ebx + 0x84]
jbe 0x1016436d
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov edi, dword [esp + 0x28]
jmp 0x1016432f
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.0x101643a9
movzx eax, byte [ecx + 0x1016df50]
jmp dword [eax*4 + 0x1016df48]
inc edi
mov dword [esp + 0x18], edi
cmp ecx, 8
jae 0x101643c5
mov eax, ecx
and eax, 1
mov dword [esp + 0x38], eax
jmp 0x101643cd
mov dword [esp + 0x40], 1
movsx eax, byte [ecx + 0x101bdc4c]
movsx ebx, byte [ecx + 0x101bdc40]
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [esp + 0x24], eax
jmp 0x10164430
movzx ebx, byte [edi + 1]
xor eax, eax
cmp dl, 0x69
sete al
mov dword [esp + 0x38], 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 + 0x24], edx
mov dword [esp + 0x18], edi
mov ecx, ebx
mov edi, 1
cmp ecx, edi
jl 0x1016458c
jmp 0x10164450
mov ebx, 1
mov dword [esp + 0x24], 1
mov edi, ebx
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016af31
movzx edx, byte [esi]
inc esi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], esi
test ecx, ecx
je 0x10164570
cmp edx, 0xc0
jb 0x10164570
test dl, 0x20
jne 0x10164496
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016456c
test dl, 0x10
jne 0x101644c1
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 + 0x20]
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016456c
test dl, 8
jne 0x101644f5
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 + 0x20]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1016456c
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10164531
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 0x1016456c
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.10170330
add esp, 0xc
test eax, eax
je case.default.0x10162ef5
inc edi
cmp edi, ebx
jle 0x10164450
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
cmp ebx, eax
je 0x10160cbb
cmp dword [esp + 0x38], 0
jne 0x1016b2b3
mov ebp, esi
cmp ebx, eax
jge 0x101646dc
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x101646ba
mov ecx, dword [esp + 0x20]
mov edi, 1
movzx edx, byte [esi]
test ecx, ecx
je 0x10164695
cmp edx, 0xc0
jb 0x10164695
test dl, 0x20
jne 0x101645f4
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x1016468d
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x10164613
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10164689
and eax, 0x3f
test dl, 8
jne 0x10164633
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10164689
test dl, 4
jne 0x1016465c
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 0x10164689
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 + 0x20]
and eax, 0x3f
shl edx, 6
or edx, eax
push ecx
push dword [esp + 0x48]
push edx
call fcn.10170330
add esp, 0xc
test eax, eax
je 0x101646dc
add esi, edi
inc ebx
mov dword [esp + 0x14], esi
cmp ebx, dword [esp + 0x24]
jl 0x101645b1
jmp 0x101646dc
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x101646dc
cmp esi, dword [ecx + 0x84]
jbe 0x101646dc
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x1016d762
cmp dword [esp + 0x40], 0
mov ebx, dword [esp + 0x10]
je 0x1016b23a
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
test ebp, ebp
je 0x1016477c
mov ebp, dword [esp + 0x18]
mov edx, 1
inc ebp
mov ecx, edx
movzx eax, byte [ebp]
cmp eax, 0xc0
jb 0x10164746
test al, 0x20
jne 0x10164720
lea edx, [ecx + 1]
jmp 0x10164744
test al, 0x10
jne 0x1016472b
mov edx, 3
jmp 0x10164744
test al, 8
jne 0x10164736
mov edx, 4
jmp 0x10164744
mov edx, 5
test al, 4
je 0x10164744
mov edx, 6
mov ecx, edx
mov edi, dword [ebx + 0x78]
mov eax, edi
sub eax, esi
cmp ecx, eax
jg 0x1016b449
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.0x10162ef5
test edx, edx
jg 0x10164755
mov edx, ebp
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov eax, dword [ebx + 0x78]
sub eax, esi
cmp eax, 1
jl 0x1016ae11
mov edx, dword [esp + 0x18]
mov al, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp byte [edx + 1], al
jne case.default.0x10162ef5
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x10160cf0
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
test ebp, ebp
je 0x10164a0d
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 0x10164891
movzx ecx, byte [ebp + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x101647f9
and eax, 0x1f
mov ebx, ecx
shl eax, 6
mov edi, 2
jmp 0x1016488d
movzx eax, byte [ebp + 2]
test bl, 0x10
jne 0x10164811
and ebx, 0xf
mov edi, 3
shl ebx, 6
or ebx, ecx
jmp 0x10164887
and eax, 0x3f
test bl, 8
jne 0x10164831
and ebx, 7
mov edi, 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [ebp + 3]
jmp 0x10164887
test bl, 4
jne 0x1016485a
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 0x10164887
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 0x101648c1
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
mov al, byte [ebx + edx]
cmp al, byte [ecx + edx]
jne case.default.0x10162ef5
mov edx, dword [esp + 0x18]
inc edx
inc esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jmp 0x10160cdf
inc esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x14], esi
mov edx, ecx
cmp ecx, 0xc0
jb 0x101649b3
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101648f1
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101649ad
test cl, 0x10
jne 0x10164912
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 0x101649ad
test cl, 8
jne 0x1016493c
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 0x101649ad
test cl, 4
jne 0x10164972
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 0x101649ad
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 + 0x20]
cmp ebx, ecx
je 0x10160cd1
mov eax, ebx
test eax, eax
jns 0x101649d2
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x101c03e8]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x101649ed
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x101c25e8]
mov eax, dword [eax*8 + 0x101bed6c]
add eax, ebx
cmp edx, eax
jne case.default.0x10162ef5
jmp 0x10160cdb
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.0x10162ef5
mov edx, dword [esp + 0x18]
inc esi
add edx, 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x10160cf0
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 + 0x24], ebp
mov ecx, eax
mov dword [esp + 0x18], eax
jmp 0x10164b49
mov dword [esp + 0x40], 1
mov eax, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x24], 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 0x10164a96
mov dword [esp + 0x38], ebp
cmp cl, 0x35
jne 0x10164a9e
mov dword [esp + 0x38], 1
mov eax, dword [esp + 0x18]
add eax, 3
mov dword [esp + 0x18], eax
mov ecx, eax
jmp 0x10164b4d
mov eax, dword [esp + 0x18]
xor ebp, ebp
inc eax
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], ebp
mov ecx, eax
mov dword [esp + 0x18], eax
jmp 0x10164b44
mov eax, dword [esp + 0x18]
mov ebp, 1
inc eax
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], ebp
mov ecx, eax
mov dword [esp + 0x18], eax
jmp 0x10164b44
mov eax, dword [esp + 0x18]
xor ebp, ebp
inc eax
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], ebp
mov ecx, eax
mov dword [esp + 0x18], eax
lea edi, [ebp + 1]
jmp 0x10164b49
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 + 0x38], ebx
movsx edi, byte [eax + 0x101bdc4c]
movsx ebp, byte [eax + 0x101bdc40]
mov eax, ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
test edi, edi
jne 0x10164b4d
mov edi, bind
mov dword [esp + 0x28], edi
cmp dword [esp + 0x20], 0
movzx ebx, byte [eax]
je 0x10164fda
mov dword [esp + 0x44], 1
mov dword [esp + 0x44], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], ebx
cmp ebx, 0xc0
jb 0x10164fd7
movzx ecx, byte [eax + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x10164ba7
and ebx, 0x1f
mov dword [esp + 0x34], 2
shl ebx, 6
or ecx, ebx
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x10164c6d
movzx eax, byte [eax + 2]
test bl, 0x10
jne 0x10164bca
and ebx, 0xf
mov dword [esp + 0x34], 3
shl ebx, 6
mov edi, 3
or ecx, ebx
jmp 0x10164c61
and eax, 0x3f
test bl, 8
jne 0x10164bf6
and ebx, 7
mov dword [esp + 0x34], 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 0x10164c61
mov edx, dword [esp + 0x18]
test bl, 4
jne 0x10164c2b
and ebx, 3
mov dword [esp + 0x34], 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 0x10164c61
and ebx, 1
mov dword [esp + 0x34], 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 + 0x3c], 0x2e
mov edx, ecx
mov dword [esp + 0x24], ecx
mov ebx, ecx
mov edi, ecx
jb 0x10164ccb
mov eax, ecx
test eax, eax
jns 0x10164c87
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10164ca1
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
mov eax, dword [eax*8 + 0x101bed6c]
add eax, edi
cmp eax, ebx
je 0x10164ccb
lea ecx, [esp + 0x158]
push ecx
push eax
call fcn.1016fff0
add esp, 8
jmp 0x10164ccd
xor eax, eax
mov ebx, 1
mov dword [esp + 0x24], eax
cmp ebp, ebx
jl 0x10164df0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x34]
mov ecx, dword [eax + 0x78]
mov eax, ecx
sub eax, edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], eax
cmp esi, eax
ja 0x10164d56
mov edx, dword [esp + 0x4c]
mov ecx, esi
sub edi, 4
jb 0x10164d15
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10164d1a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10164d04
cmp edi, 0xfffffffc
je 0x10164d47
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10164d52
cmp edi, 0xfffffffd
je 0x10164d47
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10164d52
cmp edi, 0xfffffffe
je 0x10164d47
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10164d52
cmp edi, 0xffffffff
je 0x10164d47
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10164d52
mov edi, dword [esp + 0x34]
add esi, edi
jmp 0x10164ddb
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
test edi, edi
jle 0x1016b464
mov eax, ecx
sub eax, edi
cmp esi, eax
ja 0x1016b464
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x10164d91
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10164d96
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10164d80
cmp edi, 0xfffffffc
je 0x10164dd3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016b464
cmp edi, 0xfffffffd
je 0x10164dd3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016b464
cmp edi, 0xfffffffe
je 0x10164dd3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016b464
cmp edi, 0xffffffff
je 0x10164dd3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016b464
add esi, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
inc ebx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
cmp ebx, ebp
jle 0x10164cf5
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x10160cbb
cmp dword [esp + 0x38], 0
jne 0x1016b484
mov ebx, esi
mov dword [esp + 0x38], ebx
cmp ebp, eax
jge 0x10164f2b
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
mov ecx, dword [eax + 0x78]
mov eax, ecx
sub eax, ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], eax
cmp esi, eax
ja 0x10164e8f
mov edx, dword [esp + 0x4c]
mov edi, ebx
mov ecx, esi
sub edi, 4
jb 0x10164e52
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10164e57
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10164e41
cmp edi, 0xfffffffc
je 0x10164e84
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10164e8b
cmp edi, 0xfffffffd
je 0x10164e84
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10164e8b
cmp edi, 0xfffffffe
je 0x10164e84
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10164e8b
cmp edi, 0xffffffff
je 0x10164e84
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10164e8b
add esi, ebx
jmp 0x10164f10
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x24]
test ebx, ebx
jle 0x10164fa3
mov eax, ecx
sub eax, ebx
cmp esi, eax
ja 0x10164fa3
mov edi, ebx
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x10164ec8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10164ecd
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10164eb7
cmp edi, 0xfffffffc
je 0x10164f0a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10164fa3
cmp edi, 0xfffffffd
je 0x10164f0a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10164fa3
cmp edi, 0xfffffffe
je 0x10164f0a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10164fa3
cmp edi, 0xffffffff
je 0x10164f0a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10164fa3
add esi, ebx
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
inc ebp
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10164e30
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
jne 0x10160cdb
cmp esi, ebx
jbe 0x1016a544
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x10164f90
nop dword [eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x10164f80
mov dword [esp + 0x14], esi
cmp ecx, ebx
mov ecx, dword [esp + 0x10]
ja 0x10164f42
mov edx, dword [esp + 0x18]
mov edi, ecx
jmp 0x1016a54c
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x10164fce
cmp esi, dword [ecx + 0x78]
jb 0x10164fce
cmp esi, dword [ecx + 0x84]
jbe 0x10164fce
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov ebx, dword [esp + 0x38]
jmp 0x10164f2f
inc eax
jmp 0x10164fdd
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
mov ecx, 1
cmp edx, 0x2e
jb 0x101650af
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x3c]
movzx edi, byte [eax + ebx]
cmp ebp, 1
jl 0x1016502c
mov edx, dword [ecx + 0x78]
mov ecx, 1
cmp esi, edx
jae 0x1016af2d
movzx eax, byte [esi]
cmp ebx, eax
je 0x1016501e
cmp edi, eax
jne case.default.0x10162ef5
inc esi
inc ecx
mov dword [esp + 0x14], esi
cmp ecx, ebp
jle 0x10165007
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
cmp ebp, eax
je 0x10160cdb
cmp dword [esp + 0x38], 0
jne 0x1016b5ef
mov edx, dword [esp + 0x24]
mov ebp, esi
cmp edx, eax
jge 0x1016506b
mov ecx, dword [ecx + 0x78]
cmp esi, ecx
jae 0x10165087
movzx eax, byte [esi]
cmp ebx, eax
je 0x1016505f
cmp edi, eax
jne 0x1016506b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, dword [esp + 0x28]
jl 0x10165050
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016a504
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016506f
cmp esi, dword [ebx + 0x84]
jbe 0x1016506f
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
jmp 0x1016506f
cmp ebp, 1
jl 0x101650dd
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x78]
nop dword [eax + eax]
cmp esi, edx
jae 0x1016af2d
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp ebx, eax
jne case.default.0x10162ef5
inc ecx
cmp ecx, ebp
jle 0x101650c0
cmp ebp, edi
je 0x10160cdb
cmp dword [esp + 0x38], 0
jne 0x1016b684
mov edx, dword [esp + 0x28]
mov edi, esi
cmp ebp, edx
jge 0x10165116
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10165132
movzx eax, byte [esi]
cmp ebx, eax
jne 0x10165116
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x10165101
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016a57a
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016511a
cmp esi, dword [ebx + 0x84]
jbe 0x1016511a
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
jmp 0x1016511a
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
mov eax, dword [esp + 0x18]
test ebp, ebp
je 0x101653d9
movzx ebx, byte [eax + 1]
lea ecx, [eax + 2]
mov dword [esp + 0x18], ecx
cmp ebx, 0xc0
jb 0x1016525f
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 0x20
jne 0x1016519f
and ebx, 0x1f
shl ebx, 6
or ebx, eax
inc ecx
jmp 0x1016525b
test bl, 0x10
jne 0x101651c0
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 0x1016525b
test bl, 8
jne 0x101651ea
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 0x1016525b
test bl, 4
jne 0x10165220
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 0x1016525b
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 0x10165360
movzx eax, byte [esi]
and eax, 0x3f
test dl, 0x20
jne 0x10165298
and edx, 0x1f
shl edx, 6
or edx, eax
inc esi
jmp 0x10165354
test dl, 0x10
jne 0x101652b9
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 0x10165354
test dl, 8
jne 0x101652e3
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 0x10165354
test dl, 4
jne 0x10165319
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 0x10165354
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 + 0x3c], 0x1f
jne 0x10165380
cmp ebx, eax
je case.default.0x10162ef5
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
cmp ebx, 0x7f
jbe 0x101653be
mov eax, ebx
test eax, eax
jns 0x1016538e
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x101c03e8]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x101653a9
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x101c25e8]
mov eax, dword [eax*8 + 0x101bed6c]
add eax, ebx
jmp 0x101653cd
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.0x10162ef5
cmp eax, edi
jmp 0x10165369
movzx edx, byte [esi]
inc esi
movzx ecx, byte [eax + 1]
mov dword [esp + 0x14], esi
cmp ecx, edx
je case.default.0x10162ef5
cmp dword [esp + 0x3c], 0x20
jne 0x10165403
mov eax, dword [ebx + 0x3c]
movzx eax, byte [eax + ecx]
cmp eax, edx
je case.default.0x10162ef5
mov edx, dword [esp + 0x18]
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x10160cf0
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 + 0x24], ebp
mov ecx, ebx
jmp 0x10165532
mov ebx, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x24], 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 0x10165461
mov dword [esp + 0x38], ebp
cmp cl, 0x4f
jne 0x10165469
mov dword [esp + 0x38], 1
add ebx, 3
mov ecx, ebx
jmp 0x10165532
mov ebx, dword [esp + 0x18]
xor ebp, ebp
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], ebp
mov ecx, ebx
jmp 0x1016552a
mov ebx, dword [esp + 0x18]
mov ebp, 1
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], ebp
mov ecx, ebx
jmp 0x1016552a
mov ebx, dword [esp + 0x18]
xor ebp, ebp
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], ebp
mov ecx, ebx
mov dword [esp + 0x28], 1
jmp 0x10165532
mov ebx, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], 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 0x10165532
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 + 0x38], edx
movsx ebp, byte [eax + 0x101bdc40]
movsx eax, byte [eax + 0x101bdc4c]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], eax
test eax, eax
jne 0x10165532
mov dword [esp + 0x28], bind
cmp dword [esp + 0x20], 0
lea eax, [ecx + 1]
movzx ebx, byte [ebx]
mov dword [esp + 0x18], eax
mov ecx, ebx
mov dword [esp + 0x34], ebx
mov eax, ebx
mov edi, ebx
mov edx, ebx
je 0x10165677
cmp ebx, 0xc0
jb 0x10165677
test bl, 0x20
jne 0x10165582
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 0x1016566b
test bl, 0x10
jne 0x101655b1
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 0x1016566b
test bl, 8
jne 0x101655ec
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 0x1016566b
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 4
jne 0x1016562c
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 0x10165667
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 + 0x34], ebx
mov ecx, eax
mov edi, eax
mov edx, eax
cmp dword [esp + 0x3c], 0x48
jb 0x10165a16
cmp dword [esp + 0x20], 0
je 0x101656c1
cmp edx, 0x7f
jbe 0x101656c1
shr eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x101656a8
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx eax, word [eax*2 + 0x101c25e8]
mov edx, dword [eax*8 + 0x101bed6c]
add edx, edi
jmp 0x101656cc
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x3c]
movzx edx, byte [eax + ebx]
cmp dword [esp + 0x20], 0
mov edi, 1
mov dword [esp + 0x3c], edx
je 0x10165802
cmp ebp, edi
jl 0x10165835
nop dword [eax + eax]
cmp esi, dword [ecx + 0x78]
jae 0x1016af31
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], edx
mov eax, edx
mov dword [esp + 0x14], esi
cmp edx, 0xc0
jb 0x101657e3
test dl, 0x20
jne 0x1016572c
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x101657dd
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x10165753
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x101657d9
test dl, 8
jne 0x10165776
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 0x101657d9
test dl, 4
jne 0x101657a5
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 0x101657d9
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.0x10162ef5
mov edx, dword [esp + 0x3c]
cmp edx, eax
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x101656f0
jmp 0x10165835
cmp ebp, 1
jl 0x10165835
mov ecx, dword [ecx + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x1016af2d
movzx eax, byte [esi]
cmp ebx, eax
je case.default.0x10162ef5
cmp edx, eax
je case.default.0x10162ef5
inc esi
inc edi
mov dword [esp + 0x14], esi
cmp edi, ebp
jle 0x10165810
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x10160ccd
cmp dword [esp + 0x38], 0
jne 0x1016b704
cmp dword [esp + 0x20], 0
mov edi, esi
mov dword [esp + 0x24], edi
je 0x101659ac
cmp ebp, eax
jge 0x10165964
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
jae 0x10165980
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x10165945
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101658ac
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x10165941
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101658c4
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016593b
and eax, 0x3f
test dl, 8
jne 0x101658e4
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016593b
test dl, 4
jne 0x1016590d
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 0x1016593b
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 0x10165960
cmp dword [esp + 0x3c], eax
je 0x10165960
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10165870
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016a5b6
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101659a6
cmp esi, dword [ebx + 0x84]
jbe 0x101659a6
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov edi, dword [esp + 0x24]
jmp 0x10165968
cmp ebp, eax
jge 0x101659d2
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x101659ee
movzx eax, byte [esi]
cmp ebx, eax
je 0x101659d2
cmp edx, eax
je 0x101659d2
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x101659b7
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016a619
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101659d6
cmp esi, dword [ebx + 0x84]
jbe 0x101659d6
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
jmp 0x101659d6
mov edx, dword [esp + 0x20]
mov ecx, 1
mov dword [esp + 0x3c], ecx
test edx, edx
je 0x10165b71
mov edi, dword [esp + 0x34]
cmp ebp, ecx
jl 0x10165ba6
mov edx, dword [esp + 0x10]
nop dword [eax + eax]
cmp esi, dword [edx + 0x78]
jae 0x1016b8ec
movzx ebx, byte [esi]
inc esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x14], esi
cmp ebx, 0xc0
jb 0x10165b5a
mov al, byte [esi]
test bl, 0x20
jne 0x10165a7b
and ebx, 0x1f
movzx eax, al
inc esi
shl ebx, 6
jmp 0x10165b51
lea ecx, [esi + 1]
test bl, 0x10
jne 0x10165a9f
and ebx, 0xf
movzx edx, al
movzx eax, byte [ecx]
and edx, 0x3f
shl ebx, 6
add esi, 2
or ebx, edx
shl ebx, 6
jmp 0x10165b49
lea edx, [esi + 2]
test bl, 8
jne 0x10165acb
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
jmp 0x10165b45
movzx eax, al
lea edi, [esi + 3]
and eax, 0x3f
test bl, 4
jne 0x10165b02
and ebx, 3
add esi, 4
shl ebx, 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
jmp 0x10165b45
mov ebp, dword [esp + 0x4c]
lea ebx, [esi + 4]
and ebp, 1
add esi, 5
shl ebp, 6
or ebp, eax
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
movzx eax, byte [ebx]
shl ebp, 6
mov dword [esp + 0x4c], ebp
mov ebx, ebp
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
and eax, 0x3f
mov dword [esp + 0x14], esi
or ebx, eax
cmp edi, ebx
je case.default.0x10162ef5
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, ebp
jle 0x10165a40
jmp 0x10165ba2
cmp ebp, 1
jl 0x10165c17
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x1016b1a8
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp ebx, eax
je case.default.0x10162ef5
inc ecx
cmp ecx, ebp
jle 0x10165b81
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp ebp, eax
je 0x10160cdb
cmp dword [esp + 0x38], 0
jne 0x1016b912
mov ebx, esi
mov dword [esp + 0x24], ebx
test edx, edx
je 0x10165d7e
cmp ebp, eax
jge 0x10165cd6
mov ebx, dword [esp + 0x34]
nop word [eax + eax]
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x10165d53
movzx edx, byte [esi]
mov edi, 1
cmp edx, 0xc0
jb 0x10165cbf
test dl, 0x20
jne 0x10165c1d
movzx eax, byte [esi + 1]
mov edi, 2
and edx, 0x1f
jmp 0x10165cb3
mov edi, dword [esp + 0x34]
jmp 0x10165ba6
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x10165c3c
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10165cb3
and eax, 0x3f
test dl, 8
jne 0x10165c5c
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10165cb3
test dl, 4
jne 0x10165c85
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 0x10165cb3
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 0x10165cd2
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, eax
jl 0x10165be0
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
jne 0x10160cdb
cmp esi, ebx
jbe 0x1016a544
nop dword [eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push edx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x10165d40
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x10165d30
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x10]
cmp ecx, ebx
ja 0x10165cf0
mov edi, edx
mov edx, dword [esp + 0x18]
jmp 0x1016a54c
mov eax, dword [edx + 0x88]
test eax, eax
je 0x10165d75
cmp esi, dword [edx + 0x84]
jbe 0x10165d75
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov ebx, dword [esp + 0x24]
jmp 0x10165cda
mov edx, dword [esp + 0x10]
cmp ebp, eax
jge 0x10165dcb
mov ecx, dword [edx + 0x78]
nop dword [eax]
cmp esi, ecx
jae 0x10165da9
movzx eax, byte [esi]
cmp edi, eax
je 0x10165dcb
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10165d90
jmp 0x10165dcb
mov eax, dword [edx + 0x88]
test eax, eax
je 0x10165dcb
cmp esi, dword [edx + 0x84]
jbe 0x10165dcb
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x1016d762
cmp dword [esp + 0x40], 0
jne 0x10160cdb
cmp esi, ebx
je 0x1016a544
nop
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push edx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edx, dword [esp + 0x10]
dec esi
mov dword [esp + 0x14], esi
cmp esi, ebx
jne 0x10165de0
mov edi, edx
mov edx, dword [esp + 0x18]
jmp 0x1016a54c
mov edi, dword [esp + 0x18]
mov dword [esp + 0x38], 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 + 0x34], ecx
mov dword [esp + 0x3c], ebp
mov ecx, edi
jmp 0x10165f33
mov edi, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x3c], 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 + 0x34], edx
sete al
add edi, 3
mov dword [esp + 0x38], eax
mov ecx, edi
jmp 0x10165f33
mov edi, dword [esp + 0x18]
xor ebp, ebp
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], ebp
mov ecx, edi
jmp 0x10165f2b
mov edi, dword [esp + 0x18]
mov ebp, 1
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], ebp
mov ecx, edi
jmp 0x10165f2b
mov edi, dword [esp + 0x18]
xor ebp, ebp
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], ebp
mov ecx, edi
mov dword [esp + 0x34], 1
jmp 0x10165f33
mov edi, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], ebp
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, 3
mov dword [esp + 0x34], ecx
mov ecx, edi
jmp 0x10165f33
mov edi, dword [esp + 0x18]
add edx, 0xffffffab
mov eax, edx
inc edi
and edx, 1
mov ecx, edi
mov dword [esp + 0x38], edx
movsx ebp, byte [eax + 0x101bdc40]
movsx eax, byte [eax + 0x101bdc4c]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], eax
test eax, eax
jne 0x10165f33
mov dword [esp + 0x34], bind
movzx edi, byte [edi]
lea eax, [ecx + 1]
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], eax
cmp edi, 0x10
je 0x10165f54
cmp edi, 0xf
je 0x10165f54
or edx, 0xffffffff
or eax, edx
or ecx, edx
jmp 0x10165f76
movzx edx, byte [eax]
xor ecx, ecx
cmp edi, 0xf
sete cl
mov dword [esp + 0x48], ecx
movzx ecx, byte [eax + 1]
add eax, 2
mov dword [esp + 0x50], ecx
mov ecx, edx
mov dword [esp + 0x18], eax
mov eax, edx
mov dword [esp + 0x4c], edx
test ebp, ebp
jle 0x10166b47
test eax, eax
js 0x10166e51
cmp ecx, 0xa
ja case.default.0x10163744
jmp dword [edx*4 + 0x1016df5c]
cmp dword [esp + 0x48], 0
jne case.default.0x10162ef5
mov ecx, 1
cmp ebp, ecx
jl 0x10166b47
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov dword [esp + 0x14], esi
je 0x10165ffc
cmp eax, 0xc0
jb 0x10165ffc
test al, 0x20
jne 0x10165fda
inc esi
jmp 0x10165ff8
test al, 0x10
jne 0x10165fe3
add esi, 2
jmp 0x10165ff8
test al, 8
jne 0x10165fec
add esi, 3
jmp 0x10165ff8
test al, 4
jne 0x10165ff5
add esi, 4
jmp 0x10165ff8
add esi, 5
mov dword [esp + 0x14], esi
inc ecx
cmp ecx, ebp
jle 0x10165fb5
jmp 0x10166b47
mov edi, 1
cmp ebp, edi
jl 0x10166b43
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016af2d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x1016612c
cmp eax, 0xc0
jb 0x1016612c
test al, 0x20
jne 0x10166058
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10166126
test al, 0x10
jne 0x1016607e
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 0x10166126
test al, 8
jne 0x101660ad
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 0x10166126
test al, 4
movzx eax, byte [esi]
jne 0x101660e8
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 0x10166126
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10166146
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp eax, 9
je 0x1016616b
cmp eax, 5
je 0x1016616b
cmp eax, 8
je 0x1016616b
xor eax, eax
jmp 0x10166170
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x10166016
jmp 0x10166b43
mov edi, 1
cmp ebp, edi
jl 0x10166b43
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016af2d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x101662ae
cmp eax, 0xc0
jb 0x101662ae
test al, 0x20
jne 0x101661da
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x101662a8
test al, 0x10
jne 0x10166200
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 0x101662a8
test al, 8
jne 0x1016622f
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 0x101662a8
test al, 4
movzx eax, byte [esi]
jne 0x1016626a
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 0x101662a8
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x101662c8
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x50]
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp dword [eax*4 + 0x101be700], edx
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x10166198
jmp 0x10166b43
mov edi, 1
cmp ebp, edi
jl 0x10166b43
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016af2d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x1016642a
cmp eax, 0xc0
jb 0x1016642a
test al, 0x20
jne 0x10166354
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x10166424
test al, 0x10
jne 0x1016637a
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 0x10166424
test al, 8
jne 0x101663a9
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 0x10166424
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x101663e6
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 0x10166424
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10166444
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x10166312
jmp 0x10166b43
mov edi, 1
cmp ebp, edi
jl 0x10166b43
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016af2d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x1016659f
cmp eax, 0xc0
jb 0x1016659f
test al, 0x20
jne 0x101664c9
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x10166599
test al, 0x10
jne 0x101664ef
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 0x10166599
test al, 8
jne 0x1016651e
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 0x10166599
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016655b
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 0x10166599
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x101665b9
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed68]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x10166487
jmp 0x10166b43
mov edi, 1
cmp ebp, edi
jl 0x10166b43
mov ebx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, ebx
jae 0x1016af2d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10166716
cmp eax, 0xc0
jb 0x10166716
test al, 0x20
jne 0x10166642
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10166710
test al, 0x10
jne 0x10166668
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 0x10166710
test al, 8
jne 0x10166697
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 0x10166710
test al, 4
movzx eax, byte [esi]
jne 0x101666d2
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 0x10166710
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10166730
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x10166757
cmp eax, 3
je 0x10166757
xor eax, eax
jmp 0x1016675c
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x10166600
jmp 0x10166b43
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x10166b47
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov eax, ecx
mov dword [esp + 0x14], esi
mov edx, ecx
mov edi, ecx
mov dword [esp + 0x24], ecx
mov ebx, ecx
mov ebp, ecx
je 0x101668a6
mov dword [esp + 0x24], ecx
cmp ecx, 0xc0
jb 0x101668a6
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101667d8
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166894
test cl, 0x10
jne 0x101667f9
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 0x10166894
test cl, 8
jne 0x10166823
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 0x10166894
test cl, 4
jne 0x10166859
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 0x10166894
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 + 0x24], ecx
mov edi, ecx
mov ebx, ecx
mov ebp, ecx
cmp eax, 0x20
ja 0x101668c3
cmp edx, 0x20
je case.0x1016699d.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x1016699d.8203
jmp dword [eax*4 + 0x1016df88]
cmp edi, 0x2000
ja 0x10166975
cmp ebx, 0x2000
je case.0x1016699d.8193
cmp ecx, 0x1680
ja 0x1016696d
je case.0x1016699d.8193
mov eax, ecx
sub eax, 0x85
je case.0x1016699d.8193
sub eax, 0x1b
je case.0x1016699d.8193
mov eax, ecx
test eax, eax
jns 0x1016690c
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10166926
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp dword [eax*4 + 0x101be700], 6
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10162ef5
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
inc eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x10166785
jmp 0x10166b43
cmp ecx, 0x180e
jmp 0x101668fd
cmp ebp, 0x3000
ja case.0x1016699d.8203
cmp dword [esp + 0x24], 0x3000
je case.0x1016699d.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x1016699d.8203
movzx eax, byte [eax + 0x1016dfa4]
jmp dword [eax*4 + 0x1016df9c]
cmp dword [esp + 0x48], 0
jne case.default.0x10162ef5
jmp 0x1016694f
mov ebx, 1
cmp ebp, ebx
jl 0x10166b47
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x1016af2d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
mov edi, eax
je 0x10166adf
cmp eax, 0xc0
jb 0x10166adf
test al, 0x20
jne 0x10166a09
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10166ad7
test al, 0x10
jne 0x10166a2f
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 0x10166ad7
test al, 8
jne 0x10166a5e
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 0x10166ad7
test al, 4
movzx eax, byte [esi]
jne 0x10166a99
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 0x10166ad7
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10166af9
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x10166b25
cmp eax, 3
je 0x10166b25
cmp edi, 0x5f
je 0x10166b25
xor eax, eax
jmp 0x10166b2a
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10162ef5
inc ebx
cmp ebx, dword [esp + 0x3c]
jle 0x101669c5
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
cmp ebp, edx
je 0x10160cdb
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x4c]
jne 0x1016bb34
mov edi, esi
mov dword [esp + 0x38], edi
test eax, eax
js 0x10168f19
cmp eax, 0xa
ja case.default.0x10163744
jmp dword [eax*4 + 0x1016e004]
mov edi, 1
cmp ebp, edi
jl 0x10166b43
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016af2d
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov edx, ecx
mov dword [esp + 0x14], esi
je 0x10166c94
cmp ecx, 0xc0
jb 0x10166c94
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166bd2
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166c8e
test cl, 0x10
jne 0x10166bf3
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 0x10166c8e
test cl, 8
jne 0x10166c1d
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 0x10166c8e
test cl, 4
jne 0x10166c53
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 0x10166c8e
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 + 0x50]
cmp edx, dword [eax*4 + 0x101bec28]
lea eax, [eax*4 + 0x101bec28]
jb 0x10166cbd
mov edx, dword [eax]
nop word [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x10166cd6
mov edx, dword [eax]
cmp ecx, edx
jae 0x10166cb0
cmp dword [esp + 0x48], 0
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x10166b90
jmp 0x10166b43
cmp dword [esp + 0x48], 0
jne case.default.0x10162ef5
jmp 0x10166cc8
mov ebp, 1
cmp dword [esp + 0x3c], ebp
jl 0x1016806f
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov eax, ecx
mov dword [esp + 0x14], esi
mov edx, ecx
mov edi, ecx
mov ebx, ecx
je 0x10166e03
cmp ecx, 0xc0
jb 0x10166e03
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166d3b
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166df7
test cl, 0x10
jne 0x10166d5c
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 0x10166df7
test cl, 8
jne 0x10166d86
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 0x10166df7
test cl, 4
jne 0x10166dbc
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 0x10166df7
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 0x10166e2e
cmp edx, 0x40
je 0x10166e2e
cmp edi, 0x60
je 0x10166e2e
cmp ebx, 0xa0
jb 0x10166e22
cmp ecx, 0xd7ff
jbe 0x10166e2e
cmp ecx, 0xe000
jae 0x10166e2e
xor eax, eax
jmp 0x10166e33
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10162ef5
mov ebx, dword [esp + 0x10]
inc ebp
cmp ebp, dword [esp + 0x3c]
jle 0x10166cf2
jmp 0x10166b3f
cmp edi, 0x16
jne 0x1016713a
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x10166b47
nop dword [eax + eax]
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
mov edi, esi
je 0x10166f92
cmp eax, 0xc0
jb 0x10166f92
test al, 0x20
jne 0x10166eb7
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x10166f8a
test al, 0x10
jne 0x10166edd
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 0x10166f8a
test al, 8
jne 0x10166f0f
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 0x10166f8a
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x10166f4c
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 0x10166f8a
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10166fac
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx ebx, byte [eax*8 + 0x101bed6a]
cmp edi, ebp
jae 0x101670f5
nop word [eax + eax]
cmp dword [esp + 0x20], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x101670a9
cmp edx, 0xc0
jb 0x101670a9
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10167011
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x101670a5
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10167029
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016709f
and eax, 0x3f
test dl, 8
jne 0x10167049
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016709f
test dl, 4
jne 0x10167072
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 0x1016709f
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 + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x101670c3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx ecx, byte [eax*8 + 0x101bed6a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101be778], eax
je 0x101670f1
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x10166fd0
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10167120
cmp esi, dword [ebx + 0x78]
jb 0x10167120
cmp esi, dword [ebx + 0x84]
jbe 0x10167120
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x10166e70
jmp 0x10166b43
mov ecx, dword [esp + 0x20]
lea eax, [edi - 6]
test ecx, ecx
je 0x10167cd3
cmp eax, 0xf
ja case.default.0x10163744
jmp dword [eax*4 + 0x1016e030]
mov edi, 1
cmp ebp, edi
jl 0x10168078
nop word [eax + eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016ae11
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x101671a7
push dword [esp + 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016fcc0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10162ef5
jmp 0x101671cc
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x101671cc
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x101671cc
cmp edx, 1
je case.default.0x10162ef5
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10162ef5
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x10167201
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x10167201
cmp dword [ebx + 0x18], 0
jne 0x10167201
cmp dword [ebx + 0x1c], 2
jne 0x10167201
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10167201
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d762
mov edx, dword [ebx + 0x78]
inc esi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x10167225
mov ecx, esi
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10167221
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10167210
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x10167170
jmp 0x10166b43
mov edi, 1
cmp ebp, edi
jl 0x10168078
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016af2d
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x10167275
mov ecx, esi
nop dword [eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10167271
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10167260
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x10167243
jmp 0x10166b43
mov eax, dword [ebx + 0x78]
sub eax, ebp
cmp esi, eax
ja case.default.0x10162ef5
add esi, ebp
mov dword [esp + 0x14], esi
jmp 0x10166b4b
mov ebx, 1
cmp ebp, ebx
jl 0x10166b4b
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
nop dword [eax + eax]
cmp esi, ebp
jae 0x1016af31
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 0x101673b5
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101672ef
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101673ab
test cl, 0x10
jne 0x10167310
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 0x101673ab
test cl, 8
jne 0x1016733a
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 0x101673ab
test cl, 4
jne 0x10167370
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 0x101673ab
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 0x101673eb
cmp edx, 0x85
je case.0x101673d0.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x10162ef5
jmp dword [ecx*4 + 0x1016e070]
cmp edi, ebp
jae case.0x101673d0.10
cmp byte [esi], 0xa
mov ecx, dword [esp + 0x10]
jne 0x10167410
inc esi
mov dword [esp + 0x14], esi
jmp 0x10167410
sub ecx, 0x2028
je case.0x101673d0.11
sub ecx, 1
jne case.default.0x10162ef5
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x68], 0
jne case.default.0x10162ef5
jmp 0x10167410
mov ecx, dword [esp + 0x10]
inc ebx
cmp ebx, dword [esp + 0x3c]
jle 0x101672b0
jmp 0x10166b3f
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x10166b4b
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
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 0x1016753f
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10167475
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10167531
test cl, 0x10
jne 0x10167496
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 0x10167531
test cl, 8
jne 0x101674c0
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 0x10167531
test cl, 4
jne 0x101674f6
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 0x10167531
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 0x101675b0
cmp edi, 0x2000
je case.default.0x10162ef5
cmp ebp, 0xa0
ja 0x10167596
cmp ecx, 0xa0
je case.default.0x10162ef5
cmp ecx, 9
je case.default.0x10162ef5
cmp ecx, 0x20
je case.default.0x10162ef5
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
inc eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x10167431
jmp 0x10166b43
cmp ecx, 0x1680
je case.default.0x10162ef5
cmp ecx, 0x180e
je case.default.0x10162ef5
jmp case.0x101675d6.8203
cmp edx, 0x3000
ja case.0x101675d6.8203
cmp ebx, 0x3000
je case.default.0x10162ef5
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x101675d6.8203
movzx eax, byte [ecx + 0x1016e088]
jmp dword [eax*4 + 0x1016e080]
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x10166b4b
nop
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
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 0x101676eb
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x10167636
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x101676dd
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x10167657
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x101676dd
test dl, 8
jne 0x1016767a
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 0x101676dd
test dl, 4
jne 0x101676a9
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 0x101676dd
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 0x1016774c
cmp edi, 0x2000
je case.0x10167776.8193
cmp ebp, 0xa0
ja 0x10167736
cmp edx, 0xa0
je case.0x10167776.8193
cmp edx, 9
je case.0x10167776.8193
cmp edx, 0x20
jne case.default.0x10162ef5
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
inc eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x101675f0
jmp 0x10166b43
cmp edx, 0x1680
je case.0x10167776.8193
cmp edx, 0x180e
jne case.default.0x10162ef5
jmp case.0x10167776.8193
cmp ecx, 0x3000
ja case.default.0x10162ef5
cmp ebx, 0x3000
je case.0x10167776.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x10162ef5
movzx eax, byte [edx + 0x1016e0f0]
jmp dword [eax*4 + 0x1016e0e8]
mov edi, 1
cmp ebp, edi
jl 0x10168078
mov ebx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, ebx
jae 0x1016af2d
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 0x1016787e
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x101677cf
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x10167876
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x101677f0
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x10167876
test dl, 8
jne 0x10167813
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 0x10167876
test dl, 4
jne 0x10167842
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 0x10167876
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 0x101678a0
cmp ecx, 0x85
je case.default.0x10162ef5
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10167899
jmp dword [edx*4 + 0x1016e150]
sub edx, 0x2028
je case.default.0x10162ef5
sub edx, 1
je case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x10167790
jmp 0x10166b43
mov edi, 1
cmp ebp, edi
jl 0x10168078
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016af2d
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 0x101679c1
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x10167912
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x101679b9
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x10167933
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x101679b9
test dl, 8
jne 0x10167956
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 0x101679b9
test dl, 4
jne 0x10167985
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 0x101679b9
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 0x101679e3
cmp ecx, 0x85
je case.0x101679dc.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10162ef5
jmp dword [edx*4 + 0x1016e160]
sub edx, 0x2028
je case.0x101679dc.10
sub edx, 1
jne case.default.0x10162ef5
inc edi
cmp edi, ebp
jle 0x101678d3
jmp 0x10166b43
mov edx, 1
cmp ebp, edx
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], ecx
mov eax, ecx
mov dword [esp + 0x14], esi
cmp ecx, 0xc0
jb 0x10167b0f
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10167a4d
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10167b09
test cl, 0x10
jne 0x10167a6e
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 0x10167b09
test cl, 8
jne 0x10167a98
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 0x10167b09
test cl, 4
jne 0x10167ace
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 0x10167b09
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 0x10167b23
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10162ef5
inc edx
cmp edx, ebp
jle 0x10167a12
jmp 0x10166b43
cmp ebp, 1
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x10162ef5
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.default.0x10162ef5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167b42
jmp 0x10166b43
mov edi, 1
cmp ebp, edi
jl 0x10168078
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016af2d
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x10167ba9
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.default.0x10162ef5
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x10167bd5
mov ecx, esi
nop dword [eax + eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10167bd1
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10167bc0
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x10167b85
jmp 0x10166b43
cmp ebp, 1
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x10162ef5
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.default.0x10162ef5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167bf0
jmp 0x10166b43
mov edi, 1
cmp ebp, edi
jl 0x10168078
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016af2d
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x10167c57
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10162ef5
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x10167c85
mov ecx, esi
nop dword [eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10167c81
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10167c70
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x10167c33
jmp 0x10166b43
cmp ebp, 1
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x10162ef5
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10162ef5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167ca0
jmp 0x10166b43
cmp eax, 0xf
ja case.default.0x10163744
jmp dword [eax*4 + 0x1016e170]
mov edi, 1
cmp ebp, edi
jl 0x10168078
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016ae11
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10167d25
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016fcc0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10162ef5
jmp 0x10167d4a
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x10167d4a
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10167d4a
cmp edx, 1
je case.default.0x10162ef5
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10162ef5
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x10167d7f
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x10167d7f
cmp dword [ebx + 0x18], 0
jne 0x10167d7f
cmp dword [ebx + 0x1c], 2
jne 0x10167d7f
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10167d7f
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d762
inc esi
inc edi
mov dword [esp + 0x14], esi
cmp edi, ebp
jle 0x10167cf0
jmp 0x10166b43
mov eax, dword [ebx + 0x78]
sub eax, ebp
cmp esi, eax
ja 0x1016ae11
add esi, ebp
mov dword [esp + 0x14], esi
jmp 0x10166b4b
mov ecx, 1
cmp ebp, ecx
jl 0x10166b47
mov edx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edx
jae 0x1016ae11
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.default.0x10162ef5
movzx eax, byte [eax + 0x1016e1c0]
jmp dword [eax*4 + 0x1016e1b0]
cmp esi, edx
jae case.0x10167de5.10
cmp byte [esi], 0xa
jne case.0x10167de5.10
inc esi
mov dword [esp + 0x14], esi
jmp case.0x10167de5.10
cmp dword [ebx + 0x68], 0
jne case.default.0x10162ef5
inc ecx
cmp ecx, ebp
jle 0x10167dc0
jmp 0x10166b47
mov ecx, 1
cmp ebp, ecx
jl 0x10166b47
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp eax, 9
je case.default.0x10162ef5
cmp eax, 0x20
je case.default.0x10162ef5
cmp eax, 0xa0
je case.default.0x10162ef5
inc ecx
cmp ecx, ebp
jle 0x10167e20
jmp 0x10166b47
mov ecx, 1
cmp ebp, ecx
jl 0x10166b47
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp eax, 9
je 0x10167e8c
cmp eax, 0x20
je 0x10167e8c
cmp eax, 0xa0
jne case.default.0x10162ef5
inc ecx
cmp ecx, ebp
jle 0x10167e67
jmp 0x10166b47
mov ecx, 1
cmp ebp, ecx
jl 0x10166b47
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016ae11
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.0x10167ec7.14
movzx eax, byte [eax + 0x1016e244]
jmp dword [eax*4 + 0x1016e23c]
inc ecx
cmp ecx, ebp
jle 0x10167ea6
jmp 0x10166b47
mov ecx, 1
cmp ebp, ecx
jl 0x10166b47
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016ae11
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.default.0x10162ef5
movzx eax, byte [eax + 0x1016e2c8]
jmp dword [eax*4 + 0x1016e2c0]
inc ecx
cmp ecx, ebp
jle 0x10167ee8
jmp 0x10166b47
cmp ebp, 1
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
mov edx, 1
nop
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10162ef5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167f30
jmp 0x10166b43
cmp ebp, 1
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.default.0x10162ef5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167f68
jmp 0x10166b43
cmp ebp, 1
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.default.0x10162ef5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167fa0
jmp 0x10166b43
cmp ebp, 1
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.default.0x10162ef5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167fd8
jmp 0x10166b43
cmp ebp, 1
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10162ef5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10168010
jmp 0x10166b43
cmp ebp, 1
jl 0x10166b4b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016ae11
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10162ef5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10168048
jmp 0x10166b43
mov ebp, dword [esp + 0x3c]
jmp 0x10166b47
mov edi, dword [esp + 0x28]
jmp 0x10166b4b
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x10168293
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x101680fa
cmp dword [esp + 0x20], 0
mov eax, 1
movzx ecx, byte [esi]
je 0x101680dd
cmp ecx, 0xc0
jb 0x101680dd
test cl, 0x20
jne 0x101680b7
mov eax, 2
jmp 0x101680dd
test cl, 0x10
jne 0x101680c3
mov eax, 3
jmp 0x101680dd
test cl, 8
jne 0x101680cf
mov eax, 4
jmp 0x101680dd
test cl, 4
mov eax, 0
setne al
add eax, 5
cmp dword [esp + 0x48], 0
jne 0x10168293
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10168090
jmp 0x10168293
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168293
cmp esi, dword [ebx + 0x84]
jbe 0x10168293
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
jmp 0x10168293
cmp ebp, edx
jge 0x10168f10
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x101682ab
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x10168230
cmp eax, 0xc0
jb 0x10168230
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10168185
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016822c
test al, 0x10
jne 0x1016819f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x10168226
test al, 8
jne 0x101681c2
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 0x10168226
test al, 4
jne 0x101681f1
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 0x10168226
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016824a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp eax, 9
je 0x1016826f
cmp eax, 5
je 0x1016826f
cmp eax, 8
je 0x1016826f
xor eax, eax
jmp 0x10168274
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016828b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10168140
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x40], 0
je 0x1016a65a
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016828f
cmp esi, dword [ebx + 0x84]
jbe 0x1016828f
mov dword [ebx + 0x64], edi
cmp eax, 1
jg 0x1016d762
jmp 0x1016828f
cmp ebp, edx
jge 0x10168f10
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x1016842c
cmp dword [esp + 0x20], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x101683d0
cmp eax, 0xc0
jb 0x101683d0
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10168325
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x101683cc
test al, 0x10
jne 0x1016833f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x101683c6
test al, 8
jne 0x10168362
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 0x101683c6
test al, 4
jne 0x10168391
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 0x101683c6
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x101683ea
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x50]
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp dword [eax*4 + 0x101be700], edx
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016828b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x101682e0
jmp 0x1016828b
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016828f
cmp esi, dword [ebx + 0x84]
jbe 0x1016828f
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
jmp 0x1016828f
cmp ebp, edx
jge 0x10168f10
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x1016842c
cmp dword [esp + 0x20], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x1016855c
cmp eax, 0xc0
jb 0x1016855c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x101684b1
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x10168558
test al, 0x10
jne 0x101684cb
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x10168552
test al, 8
jne 0x101684ee
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 0x10168552
test al, 4
jne 0x1016851d
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 0x10168552
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10168576
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016828b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10168470
jmp 0x1016828b
cmp ebp, edx
jge 0x10168f10
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x1016842c
cmp dword [esp + 0x20], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x101686b0
cmp eax, 0xc0
jb 0x101686b0
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10168605
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x101686ac
test al, 0x10
jne 0x1016861f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x101686a6
test al, 8
jne 0x10168642
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 0x101686a6
test al, 4
jne 0x10168671
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 0x101686a6
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x101686ca
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed68]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016828b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x101685c0
jmp 0x1016828b
cmp ebp, edx
jge 0x10168f10
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x101682ab
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x10168810
cmp eax, 0xc0
jb 0x10168810
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10168765
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x1016880c
test al, 0x10
jne 0x1016877f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x10168806
test al, 8
jne 0x101687a2
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 0x10168806
test al, 4
jne 0x101687d1
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 0x10168806
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016882a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x10168851
cmp eax, 3
je 0x10168851
xor eax, eax
jmp 0x10168856
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016828b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10168720
jmp 0x1016828b
cmp ebp, edx
jge 0x10168f10
nop
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x28], 1
cmp esi, dword [ebx + 0x78]
jae 0x10168430
cmp dword [esp + 0x20], 0
movzx edx, byte [esi]
mov eax, edx
mov dword [esp + 0x24], edx
mov ecx, edx
mov edi, edx
mov ebx, edx
mov ebp, edx
je 0x10168996
mov dword [esp + 0x24], edx
cmp edx, 0xc0
jb 0x10168996
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101688e2
and eax, 0x1f
mov dword [esp + 0x28], 2
shl eax, 6
mov edx, ecx
jmp 0x10168986
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10168900
and edx, 0xf
mov dword [esp + 0x28], 3
shl edx, 6
or edx, ecx
jmp 0x10168980
and eax, 0x3f
test dl, 8
jne 0x10168923
and edx, 7
mov dword [esp + 0x28], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10168980
test dl, 4
jne 0x1016894f
and edx, 3
mov dword [esp + 0x28], 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 0x10168980
and edx, 1
mov dword [esp + 0x28], 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 + 0x24], edx
mov ecx, edx
mov edi, edx
mov ebx, edx
mov ebp, edx
cmp eax, 0x20
ja 0x101689b3
cmp ecx, 0x20
je case.0x10168a8f.8193
lea eax, [edx - 9]
cmp eax, 4
ja case.0x10168a8f.8203
jmp dword [eax*4 + 0x1016e344]
cmp edi, 0x2000
ja 0x10168a67
cmp ebx, 0x2000
je case.0x10168a8f.8193
cmp edx, 0x1680
ja 0x10168a5f
je case.0x10168a8f.8193
mov eax, edx
sub eax, 0x85
je case.0x10168a8f.8193
sub eax, 0x1b
je case.0x10168a8f.8193
mov eax, edx
test eax, eax
jns 0x101689fc
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10168a16
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp dword [eax*4 + 0x101be700], 6
sete cl
cmp ecx, dword [esp + 0x48]
je 0x1016828b
mov eax, dword [esp + 0x3c]
add esi, dword [esp + 0x28]
inc eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x34]
jl 0x10168880
jmp 0x1016828b
cmp edx, 0x180e
jmp 0x101689ed
cmp ebp, 0x3000
ja case.0x10168a8f.8203
cmp dword [esp + 0x24], 0x3000
je case.0x10168a8f.8193
lea eax, [edx - 0x2001]
cmp eax, 0x5e
ja case.0x10168a8f.8203
movzx eax, byte [eax + 0x1016e360]
jmp dword [eax*4 + 0x1016e358]
cmp dword [esp + 0x48], 0
jne 0x1016828b
jmp 0x10168a3f
cmp ebp, edx
jge 0x10168f10
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, 1
cmp esi, ebp
jae 0x1016842c
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
mov edi, eax
je 0x10168ba6
cmp eax, 0xc0
jb 0x10168ba6
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10168af9
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x10168ba0
test al, 0x10
jne 0x10168b13
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x10168b9a
test al, 8
jne 0x10168b36
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 0x10168b9a
test al, 4
jne 0x10168b65
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 0x10168b9a
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x10168bc0
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x10168bec
cmp eax, 3
je 0x10168bec
cmp edi, 0x5f
je 0x10168bec
xor eax, eax
jmp 0x10168bf1
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016828b
mov eax, dword [esp + 0x3c]
add esi, ebx
inc eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x34]
jl 0x10168ab2
jmp 0x1016828b
cmp ebp, edx
jge 0x10168f10
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x101682ab
cmp dword [esp + 0x20], 0
movzx edx, byte [esi]
mov ecx, edx
je 0x10168d14
cmp edx, 0xc0
jb 0x10168d14
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10168c79
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10168d10
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10168c94
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10168d0a
and eax, 0x3f
test dl, 8
jne 0x10168cb4
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10168d0a
test dl, 4
jne 0x10168cdd
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 0x10168d0a
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 + 0x50]
cmp ecx, dword [eax*4 + 0x101bec28]
lea eax, [eax*4 + 0x101bec28]
jb 0x10168d3d
mov ecx, dword [eax]
nop word [eax + eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x10168d5e
mov ecx, dword [eax]
cmp edx, ecx
jae 0x10168d30
cmp dword [esp + 0x48], 0
je 0x1016828b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10168c30
jmp 0x1016828b
cmp dword [esp + 0x48], 0
jne 0x1016828b
jmp 0x10168d48
cmp ebp, edx
jge 0x10168f10
mov ebx, dword [esp + 0x10]
mov ebp, 1
cmp esi, dword [ebx + 0x78]
jae 0x10168ee5
cmp dword [esp + 0x20], 0
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
je 0x10168e8d
cmp edx, 0xc0
jb 0x10168e8d
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10168dcf
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 0x10168e8d
movzx eax, byte [esi + 2]
and eax, 0x3f
test dl, 0x10
jne 0x10168dfa
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 0x10168e8d
test dl, 8
jne 0x10168e27
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 0x10168e8d
test dl, 4
jne 0x10168e50
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 0x10168e7d
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 0x10168eb8
cmp ecx, 0x40
je 0x10168eb8
cmp edi, 0x60
je 0x10168eb8
cmp ebx, 0xa0
jb 0x10168eac
cmp edx, 0xd7ff
jbe 0x10168eb8
cmp edx, 0xe000
jae 0x10168eb8
xor eax, eax
jmp 0x10168ebd
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x1016828b
mov eax, dword [esp + 0x3c]
add esi, ebp
inc eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x34]
jl 0x10168d73
jmp 0x1016828b
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016828f
cmp esi, dword [ebx + 0x84]
jbe 0x1016828f
mov dword [ebx + 0x64], ebp
cmp eax, 1
jg 0x1016d762
jmp 0x1016828f
mov ebx, dword [esp + 0x10]
jmp 0x10168293
mov eax, dword [esp + 0x28]
cmp eax, 0x16
jne 0x10169236
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x1016921e
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x101691f8
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
mov edi, esi
je 0x10169054
cmp eax, 0xc0
jb 0x10169054
test al, 0x20
jne 0x10168f79
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016904c
test al, 0x10
jne 0x10168f9f
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 0x1016904c
test al, 8
jne 0x10168fd1
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 0x1016904c
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016900e
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 0x1016904c
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016906e
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx ebx, byte [eax*8 + 0x101bed6a]
cmp edi, ebp
jae 0x101691b8
nop dword [eax + eax]
cmp dword [esp + 0x20], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x1016916c
cmp edx, 0xc0
jb 0x1016916c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101690d1
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10169168
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101690ec
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10169162
and eax, 0x3f
test dl, 8
jne 0x1016910c
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169162
test dl, 4
jne 0x10169135
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 0x10169162
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 + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10169186
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx ecx, byte [eax*8 + 0x101bed6a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101be778], eax
je 0x101691b4
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x10169090
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101691e3
cmp esi, dword [ebx + 0x78]
jb 0x101691e3
cmp esi, dword [ebx + 0x84]
jbe 0x101691e3
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x34]
jl 0x10168f32
jmp 0x1016921a
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016921a
cmp esi, dword [ebx + 0x84]
jbe 0x1016921a
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x40], 0
je 0x1016a6bb
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
add eax, 0xfffffffa
test ecx, ecx
je 0x10169fed
cmp eax, 0xf
ja case.default.0x10163744
jmp dword [eax*4 + 0x1016e3c0]
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x10169557
nop dword [eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016937b
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10169293
push dword [esp + 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016fcc0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne 0x10169557
jmp 0x101692b8
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x101692b8
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x101692b8
cmp edx, 1
je 0x10169557
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je 0x10169557
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x101692ed
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x101692ed
cmp dword [ebx + 0x18], 0
jne 0x101692ed
cmp dword [ebx + 0x1c], 2
jne 0x101692ed
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x101692ed
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d762
mov edx, dword [ebx + 0x78]
inc esi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x10169315
mov ecx, esi
nop dword [eax + eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10169311
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10169300
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, dword [esp + 0x34]
jl 0x10169260
jmp 0x10169557
mov ebx, dword [esp + 0x10]
cmp edx, 0x7fffffff
jge 0x10169374
cmp ebp, edx
jge 0x10169557
mov edi, dword [ebx + 0x78]
mov eax, dword [esp + 0x34]
cmp esi, edi
jae 0x1016937b
inc esi
mov edx, edi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x1016936a
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10169362
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10169351
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, eax
jl 0x10169340
jmp 0x10169557
mov esi, dword [ebx + 0x78]
mov dword [esp + 0x14], esi
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10169557
cmp esi, dword [ebx + 0x84]
jbe 0x10169557
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
jmp 0x10169557
mov ebx, dword [esp + 0x10]
sub edx, ebp
mov ecx, dword [ebx + 0x78]
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x101693d7
mov eax, dword [ebx + 0x88]
mov esi, ecx
mov dword [esp + 0x14], esi
test eax, eax
je 0x10169557
cmp ecx, dword [ebx + 0x84]
jmp 0x1016938f
add esi, edx
mov dword [esp + 0x14], esi
jmp 0x10169557
cmp ebp, edx
jge 0x10169553
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 0x1016956f
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x101694e3
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169442
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebp, 2
jmp 0x101694d9
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016945d
and edx, 0xf
mov ebp, 3
shl edx, 6
or edx, ecx
jmp 0x101694d3
and eax, 0x3f
test dl, 8
jne 0x1016947d
and edx, 7
mov ebp, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x101694d3
test dl, 4
jne 0x101694a6
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 0x101694d3
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 0x101694fd
mov eax, dword [esp + 0x44]
inc esi
mov dword [esp + 0x14], esi
cmp esi, eax
jae 0x10169553
cmp byte [esi], 0xa
jne 0x10169540
inc esi
jmp 0x1016953c
cmp ecx, 0xa
je 0x10169536
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x68], 0
jne 0x10169fe6
cmp edi, 0xb
je 0x10169536
cmp ebx, 0xc
je 0x10169536
cmp edx, 0x85
je 0x10169536
cmp edx, 0x2028
je 0x10169536
cmp edx, 0x2029
jne 0x10169fe6
mov eax, dword [esp + 0x44]
add esi, ebp
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x3c]
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, dword [esp + 0x34]
jl 0x10169400
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016a93d
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10169557
cmp esi, dword [ebx + 0x84]
jbe 0x10169557
mov dword [ebx + 0x64], ebp
cmp eax, 1
jg 0x1016d762
jmp 0x10169557
cmp ebp, edx
jge 0x10169553
nop word [eax + eax]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x24], 1
cmp esi, dword [ebx + 0x78]
jae 0x1016937b
movzx edx, byte [esi]
mov eax, edx
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x101696a2
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101695ef
and eax, 0x1f
mov dword [esp + 0x24], 2
shl eax, 6
mov edx, ecx
jmp 0x10169696
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016960d
and edx, 0xf
mov dword [esp + 0x24], 3
shl edx, 6
or edx, ecx
jmp 0x10169690
and eax, 0x3f
test dl, 8
jne 0x10169633
and edx, 7
mov dword [esp + 0x24], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169690
test dl, 4
jne 0x1016965f
and edx, 3
mov dword [esp + 0x24], 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 0x10169690
and edx, 1
mov dword [esp + 0x24], 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 0x10169723
cmp edi, 0x2000
je case.0x10169745.8193
cmp ebp, 0xa0
ja 0x10169713
cmp edx, 0xa0
je case.0x10169745.8193
cmp edx, 9
je case.0x10169745.8193
cmp edx, 0x20
je case.0x10169745.8193
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x28], 0x12
sete al
cmp ecx, eax
je 0x10169553
mov eax, dword [esp + 0x3c]
add esi, dword [esp + 0x24]
inc eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x34]
jl 0x101695a0
jmp 0x10169553
cmp edx, 0x1680
je case.0x10169745.8193
cmp edx, 0x180e
jmp 0x101696d9
cmp ecx, 0x3000
ja case.0x10169745.8203
cmp ebx, 0x3000
je case.0x10169745.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10169745.8203
movzx eax, byte [edx + 0x1016e408]
jmp dword [eax*4 + 0x1016e400]
mov ecx, 1
jmp 0x101696e1
cmp ebp, edx
jge 0x10169553
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
mov edi, 1
cmp esi, ebx
jae 0x10169899
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x1016983d
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101697a0
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov edi, 2
jmp 0x10169837
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101697bb
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10169831
and eax, 0x3f
test dl, 8
jne 0x101697db
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169831
test dl, 4
jne 0x10169804
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 0x10169831
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 0x1016985b
cmp ecx, 0x85
je case.0x10169854.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10169854
jmp dword [edx*4 + 0x1016e468]
sub edx, 0x2028
je case.0x10169854.10
sub edx, 1
je case.0x10169854.10
xor ecx, ecx
jmp 0x10169871
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x28], 0x14
sete al
cmp ecx, eax
je 0x10169553
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169762
jmp 0x10169553
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10169557
cmp esi, dword [ebx + 0x84]
jbe 0x10169557
mov dword [ebx + 0x64], edi
cmp eax, 1
jg 0x1016d762
jmp 0x10169557
cmp ebp, edx
jge 0x10169553
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x101699fa
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x101699c9
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169917
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x101699c3
test dl, 0x10
jne 0x10169932
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x101699bd
test dl, 8
jne 0x10169959
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 0x101699bd
test dl, 4
jne 0x10169989
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 0x101699bd
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 0x101699e4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne 0x10169553
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x101698d7
jmp 0x10169553
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10169557
cmp esi, dword [ebx + 0x84]
jbe 0x10169557
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
jmp 0x10169557
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x10169557
mov edi, dword [ebx + 0x78]
nop dword [eax]
cmp esi, edi
jae 0x1016937b
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x10169b1b
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169a7c
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x10169b17
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10169a97
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x10169b11
and eax, 0x3f
test dl, 8
jne 0x10169aba
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169b11
test dl, 4
jne 0x10169ae3
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 0x10169b11
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 0x10169557
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 4
je 0x10169557
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169a40
jmp 0x10169557
cmp ebp, edx
jge 0x10169553
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x101699fa
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x10169c4a
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169b98
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10169c44
test dl, 0x10
jne 0x10169bb3
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x10169c3e
test dl, 8
jne 0x10169bda
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 0x10169c3e
test dl, 4
jne 0x10169c0a
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 0x10169c3e
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 0x10169c65
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne 0x10169553
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169b58
jmp 0x10169553
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x10169557
mov edi, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edi
jae 0x1016937b
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x10169d6b
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169ccc
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x10169d67
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10169ce7
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x10169d61
and eax, 0x3f
test dl, 8
jne 0x10169d0a
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169d61
test dl, 4
jne 0x10169d33
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 0x10169d61
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 0x10169557
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
je 0x10169557
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169c90
jmp 0x10169557
cmp ebp, edx
jge 0x10169553
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x101699fa
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x10169e9a
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169de8
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10169e94
test dl, 0x10
jne 0x10169e03
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x10169e8e
test dl, 8
jne 0x10169e2a
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 0x10169e8e
test dl, 4
jne 0x10169e5a
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 0x10169e8e
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 0x10169eb5
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne 0x10169553
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169da8
jmp 0x10169553
cmp ebp, edx
jge 0x10169553
mov ebx, dword [esp + 0x10]
mov edi, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edi
jae 0x1016937b
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x10169fb8
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169f1c
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x10169fb4
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10169f37
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x10169fae
and eax, 0x3f
test dl, 8
jne 0x10169f57
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169fae
test dl, 4
jne 0x10169f80
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 0x10169fae
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 0x10169557
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 0x10
je 0x10169557
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169ee0
jmp 0x10169557
mov ebx, eax
jmp 0x10169557
cmp eax, 0xf
ja case.default.0x10163744
jmp dword [eax*4 + 0x1016e478]
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
nop dword [eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016a38e
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016a041
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016fcc0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne case.0x1016a1f2.10
jmp 0x1016a066
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016a066
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016a066
cmp edx, 1
je case.0x1016a1f2.10
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x1016a1f2.10
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016a09b
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016a09b
cmp dword [ebx + 0x18], 0
jne 0x1016a09b
cmp dword [ebx + 0x1c], 2
jne 0x1016a09b
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016a09b
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d762
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x1016a010
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
sub edx, ebp
mov ecx, dword [ebx + 0x78]
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x1016a0e0
mov eax, dword [ebx + 0x88]
mov esi, ecx
mov dword [esp + 0x14], esi
test eax, eax
je case.0x1016a1f2.10
cmp ecx, dword [ebx + 0x84]
jmp 0x1016a39e
add esi, edx
mov dword [esp + 0x14], esi
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov ecx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x1016a38e
mov al, byte [esi]
cmp al, 0xd
jne 0x1016a122
inc esi
mov dword [esp + 0x14], esi
cmp esi, ecx
jae case.0x1016a1f2.10
cmp byte [esi], 0xa
jne 0x1016a145
jmp 0x1016a140
cmp al, 0xa
je 0x1016a140
cmp dword [ebx + 0x68], 0
jne case.0x1016a1f2.10
cmp al, 0xb
je 0x1016a140
cmp al, 0xc
je 0x1016a140
cmp al, 0x85
jne case.0x1016a1f2.10
inc esi
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, edx
jl 0x1016a100
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov ecx, dword [ebx + 0x78]
nop
cmp esi, ecx
jae 0x1016a38e
mov al, byte [esi]
cmp al, 9
je case.0x1016a1f2.10
cmp al, 0x20
je case.0x1016a1f2.10
cmp al, 0xa0
je case.0x1016a1f2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016a160
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016a38e
mov al, byte [esi]
cmp al, 9
je 0x1016a1ba
cmp al, 0x20
je 0x1016a1ba
cmp al, 0xa0
jne case.0x1016a1f2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016a1a0
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016a38e
movzx eax, byte [esi]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x1016a1f2.14
movzx eax, byte [eax + 0x1016e4c0]
jmp dword [eax*4 + 0x1016e4b8]
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016a1d8
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016a38e
movzx eax, byte [esi]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x1016a1f2.10
movzx eax, byte [eax + 0x1016e544]
jmp dword [eax*4 + 0x1016e53c]
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x1016a217
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov edx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edx
jae 0x1016a38e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.0x1016a1f2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x1016a260
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a38e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.0x1016a1f2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x1016a298
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a38e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.0x1016a1f2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x1016a2d0
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a38e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.0x1016a1f2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x1016a308
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a38e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.0x1016a1f2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x1016a340
jmp case.0x1016a1f2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x1016a1f2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a38e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.0x1016a1f2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x1016a370
jmp case.0x1016a1f2.10
mov eax, dword [ebx + 0x88]
test eax, eax
je case.0x1016a1f2.10
cmp esi, dword [ebx + 0x84]
jbe case.0x1016a1f2.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
cmp dword [esp + 0x40], 0
je 0x1016a9c9
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x10160ce7
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
cmp cl, 0x7a
jne 0x1016a404
push dword [esp + 0x18]
mov ebp, dword [esp + 0x38]
lea eax, [edx + 3]
push edi
push ebp
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edx, ebx
mov dword [esp + 0x18], edx
jmp 0x1016a548
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push ebx
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x1016a54c
cmp dword [esp + 0x3c], 0x8c
jne 0x1016a548
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x98], 2
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edx
push esi
call fcn.10160ba0
add esp, 0x1c
jmp 0x1016db37
mov ebp, dword [esp + 0x2c]
cmp al, 0x7a
mov eax, dword [esp + 0x180]
jne 0x1016a4be
inc eax
push eax
push dword [esp + 0x34]
lea eax, [edx + 3]
push ecx
push edi
push ebp
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov al, byte [ebx]
cmp al, 0x81
je 0x1016ad1a
cmp al, 0x88
jae 0x1016acf8
mov edx, ebx
mov dword [esp + 0x18], edx
jmp 0x1016a548
inc eax
push eax
push dword [esp + 0x34]
push ecx
push edi
push ebp
push ebx
push esi
call fcn.10160ba0
mov edx, dword [esp + 0x2c]
add esp, 0x1c
mov ecx, eax
cmp eax, 0xfffffc1b
jne 0x1016a4e6
cmp dword [edx + 0xb4], ebx
je 0x1016a4ee
test ecx, ecx
jne 0x1016db37
cmp byte [ebx], 0x81
je 0x1016ad30
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x1016a548
cmp esi, ebp
je 0x1016a544
nop dword [eax + eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
dec esi
add esp, 0x1c
mov dword [esp + 0x14], esi
test eax, eax
jne 0x1016db37
cmp esi, ebp
jne 0x1016a510
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
mov ebp, dword [edi + 0x4c]
mov dword [esp + 0x20], ebp
cmp eax, dword [edi + 4]
jae 0x1016db2f
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x180]
cmp eax, dword [edi + 8]
jae 0x1016db28
mov ecx, dword [esp + 0x30]
jmp 0x10160c90
cmp esi, edi
je 0x1016a544
nop
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
dec esi
add esp, 0x1c
mov dword [esp + 0x14], esi
test eax, eax
jne 0x1016db37
cmp esi, edi
jne 0x1016a580
jmp 0x1016a544
cmp esi, edi
jbe 0x1016a544
nop word [eax + eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x1016a610
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x1016a600
mov dword [esp + 0x14], esi
cmp ecx, edi
ja 0x1016a5c0
jmp 0x1016a544
cmp esi, edi
je 0x1016a544
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
dec esi
mov dword [esp + 0x14], esi
cmp esi, edi
jne 0x1016a621
jmp 0x1016a544
cmp esi, edi
jbe 0x1016a544
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
dec esi
mov ecx, esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0x20], eax
je 0x1016a6b2
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016a6b2
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x1016a6a2
mov dword [esp + 0x14], esi
cmp ecx, edi
ja 0x1016a662
jmp 0x1016a544
cmp esi, edi
jbe 0x1016a544
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
dec esi
mov dword [esp + 0x14], esi
test ebp, ebp
jne 0x1016a703
movzx edx, byte [esi]
jmp 0x1016a7d2
mov cl, byte [esi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x1016a720
nop dword [eax]
mov al, byte [esi - 1]
dec esi
mov cl, al
and al, 0xc0
cmp al, 0x80
je 0x1016a710
mov dword [esp + 0x14], esi
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x1016a7d4
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016a74c
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x1016a7d0
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016a762
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1016a7ca
and eax, 0x3f
test dl, 8
jne 0x1016a77d
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016a7ca
test dl, 4
jne 0x1016a7a1
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 0x1016a7ca
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 + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016a7ee
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx ebx, byte [eax*8 + 0x101bed6a]
cmp esi, edi
jbe 0x1016a544
lea edi, [esi - 1]
test ebp, ebp
jne 0x1016a817
movzx edx, byte [edi]
jmp 0x1016a8df
mov cl, byte [edi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x1016a82d
mov al, byte [edi - 1]
dec edi
mov cl, al
and al, 0xc0
cmp al, 0x80
je 0x1016a821
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x1016a8e1
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016a859
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x1016a8dd
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x1016a86f
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1016a8d7
and eax, 0x3f
test dl, 8
jne 0x1016a88a
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x1016a8d7
test dl, 4
jne 0x1016a8ae
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 0x1016a8d7
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 + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016a8fb
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x101c25e8]
movzx edx, byte [eax*8 + 0x101bed6a]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x101be778], eax
je 0x1016a930
mov esi, edi
mov ebx, edx
mov edi, dword [esp + 0x38]
mov dword [esp + 0x14], esi
jmp 0x1016a800
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
jmp 0x1016a6c7
mov edi, dword [esp + 0x38]
cmp esi, edi
jbe 0x1016a544
nop dword [eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
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 0x1016a9a2
nop dword [eax]
mov cl, byte [esi - 1]
dec esi
mov al, cl
mov edx, esi
and al, 0xc0
cmp al, 0x80
je 0x1016a990
mov dword [esp + 0x14], esi
cmp dword [esp + 0x28], 0x11
jne 0x1016a9c0
cmp edx, edi
jbe 0x1016a9c0
cmp cl, 0xa
jne 0x1016a9c0
cmp byte [esi - 1], 0xd
lea eax, [esi - 1]
cmove esi, eax
mov dword [esp + 0x14], esi
cmp esi, edi
ja 0x1016a950
jmp 0x1016a544
cmp esi, edi
je 0x1016a544
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
dec esi
cmp dword [esp + 0x28], 0x11
mov dword [esp + 0x14], esi
mov eax, esi
jne 0x1016aa24
cmp esi, edi
jbe 0x1016aa24
cmp byte [esi], 0xa
jne 0x1016aa24
cmp byte [esi - 1], 0xd
lea ecx, [esi - 1]
jne 0x1016aa24
mov esi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
cmp eax, edi
jne 0x1016a9d1
jmp 0x1016a544
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 0x1016ab33
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 + 0x24], eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi + 0x10]
mov eax, ecx
sub eax, ebx
mov eax, dword [edx + eax*4]
mov dword [esp + 0x50], 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 dword [eax]
cmp dword [esp + 0x3c], 0x88
jb 0x1016aaa4
mov dword [edi + 0x98], 2
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [ecx]
push edi
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101be5e8]
push dword [esp + 0x3c]
add eax, ecx
push eax
push esi
call fcn.10160ba0
mov edi, eax
add esp, 0x1c
cmp edi, 0xfffffc1b
je 0x1016d7ad
mov ecx, edi
cmp edi, 0xfffffc20
jne 0x1016d76c
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 0x1016d76c
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x1016ab28
cmp byte [edx], 0x77
mov eax, ecx
jne 0x1016d76c
xor edi, edi
jmp 0x1016d774
mov edi, dword [esp + 0x10]
cmp edx, 0x88
jae 0x1016ab75
cmp edx, 0x81
je 0x1016ab75
cmp dword [edi + 0x6c], 0
mov edx, dword [esp + 0x18]
jne 0x1016ab83
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + edx], 0x77
je 0x1016ab83
movzx eax, byte [edx]
movzx eax, byte [eax + 0x101be5e8]
add edx, eax
mov dword [esp + 0x18], edx
jmp 0x1016a54c
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 + 0x34]
movzx eax, byte [edx]
push edi
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101be5e8]
push dword [esp + 0x3c]
add eax, edx
push eax
push esi
call fcn.10160ba0
mov edx, eax
add esp, 0x1c
mov ecx, edx
cmp edx, 0xfffffc20
jne 0x1016ac0b
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 0x1016ac07
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x1016abf9
cmp byte [edi], 0x77
mov eax, ecx
jne 0x1016ac07
mov edi, dword [esp + 0x10]
mov dword [esp + 0x44], 0
jmp 0x1016ac13
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x1016d7e3
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.0x10162ef5
mov edx, dword [esp + 0x3c]
mov dword [edi + 0x90], ebp
jmp 0x1016ab33
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
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 + 0x101be5e8]
add eax, edi
add ecx, eax
push ecx
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
lea eax, [edi + 2]
mov dword [ebx + 0x7c], eax
mov eax, 0xfffffc1f
jmp 0x1016db37
mov eax, ecx
sub eax, 1
jmp 0x1016aca0
cmp ecx, 0xfffffc19
je case.default.0x10162ef5
mov eax, ecx
jmp 0x1016db37
mov eax, 0xffffffe6
jmp 0x1016db37
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xe0]
cmp eax, ecx
je 0x1016acd0
push eax
call dword [0x101f94e4]
add esp, 4
mov eax, edi
jmp 0x1016db37
mov eax, 0xfffffffa
jmp 0x1016db37
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x7c], eax
mov eax, 1
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push edi
push ebp
push ebx
push esi
call fcn.10160ba0
add esp, 0x1c
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push edi
push ebp
push ebx
jmp 0x1016ad48
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
mov eax, dword [esp + 0x20]
push edx
push edi
push ebp
add eax, 3
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016ad82
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
lea eax, [edx + 3]
push ecx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov eax, dword [esp + 0x10]
mov dword [eax + 0xb4], ebx
mov eax, 0xfffffc1b
jmp 0x1016db37
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x7c], eax
mov eax, 0xfffffc1a
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x8c], edi
jmp 0x1016db37
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 0x1016db37
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x88]
test ecx, ecx
je case.default.0x10162ef5
mov edx, dword [esp + 0x10]
lea eax, [esi + 1]
cmp eax, dword [edx + 0x78]
jb case.default.0x10162ef5
cmp dword [edx + 0x18], 0
jne case.default.0x10162ef5
cmp dword [edx + 0x1c], 2
jne case.default.0x10162ef5
mov al, byte [esi]
cmp al, byte [edx + 0x34]
jne case.default.0x10162ef5
mov dword [edx + 0x64], 1
cmp ecx, 1
jmp 0x1016ae2d
mov eax, ecx
jmp 0x1016add8
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, dword [ebx + 0x84]
jbe case.default.0x10162ef5
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d762
xor eax, eax
jmp 0x1016db37
mov ecx, dword [esp + 0x10]
cmp eax, 0xfffffffe
jne 0x1016b468
mov esi, dword [ecx + 0x78]
jmp 0x1016b468
mov dword [esp + 0x44], esi
cmp ebp, ebx
jge 0x1016aec0
nop dword [eax + eax]
push dword [esp + 0x40]
push dword [esp + 0x14]
push ecx
push esi
push edi
call fcn.1016e980
add esp, 0x14
test eax, eax
js 0x1016ae84
mov ecx, dword [esp + 0x24]
inc ebp
add esi, eax
cmp ebp, ebx
jl 0x1016ae60
jmp 0x1016aeb2
cmp eax, 0xfffffffe
jne 0x1016aeb2
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x88]
test ecx, ecx
je 0x1016aeb2
mov eax, dword [edx + 0x78]
cmp eax, dword [edx + 0x84]
jbe 0x1016aeb2
mov dword [edx + 0x64], 1
cmp ecx, 1
jg 0x1016d762
mov ebp, dword [esp + 0x44]
cmp esi, ebp
jb case.default.0x10162ef5
jmp 0x1016aec4
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x24]
nop dword [eax + eax]
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
sub esi, ebx
cmp esi, ebp
jae 0x1016aed0
jmp 0x1016db37
cmp eax, 0xfffffffe
jne 0x1016af11
mov esi, dword [ebx + 0x78]
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jb case.default.0x10162ef5
jmp 0x1016ae1b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, dword [ecx + 0x84]
jbe case.default.0x10162ef5
mov dword [ecx + 0x64], 1
jmp 0x1016ae2a
mov eax, dword [esp + 0x180]
mov ebp, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push ebp
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov eax, esi
dec esi
cmp eax, edi
jbe case.default.0x10162ef5
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016afa0
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x1016af96
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push ebp
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016af83
jmp 0x1016db37
cmp esi, edi
jb case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
dec esi
cmp esi, edi
jae 0x1016afd1
jmp 0x1016db37
mov eax, dword [esp + 0x180]
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
test edx, edx
je 0x1016b1ce
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x24]
jge case.default.0x10162ef5
cmp esi, dword [edi + 0x78]
jae 0x1016b1a8
movzx edx, byte [esi]
inc esi
mov edi, edx
mov eax, edx
cmp edx, 0xc0
jb 0x1016b143
test dl, 0x20
jne 0x1016b081
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 0x1016b143
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x1016b0ac
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 0x1016b143
test dl, 8
jne 0x1016b0d6
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 0x1016b143
test dl, 4
jne 0x1016b109
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 0x1016b143
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 0x1016b151
cmp dword [esp + 0x3c], 0x6e
jmp 0x1016b163
and edx, 7
shr edi, 3
mov eax, 1
mov ecx, edx
shl eax, cl
test byte [edi + ebx], al
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x24]
jl 0x1016b047
jmp 0x1016db37
mov eax, dword [edi + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, dword [edi + 0x84]
jbe case.default.0x10162ef5
mov dword [edi + 0x64], 1
jmp 0x1016ae2a
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov ecx, ebp
cmp ecx, dword [esp + 0x24]
jge case.default.0x10162ef5
cmp esi, dword [edi + 0x78]
jae 0x1016b1a8
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.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
push eax
push dword [esp + 0x34]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016b1e0
jmp 0x1016db37
mov eax, dword [esp + 0x180]
mov edi, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edi
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov eax, esi
dec esi
cmp eax, ebp
jbe case.default.0x10162ef5
cmp dword [esp + 0x20], 0
je 0x1016b28a
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016b28a
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x1016b280
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edi
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016b266
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebx
cmp edi, dword [esp + 0x24]
jge case.default.0x10162ef5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016af31
movzx edx, byte [esi]
inc esi
mov edi, dword [esp + 0x20]
test edi, edi
je 0x1016b400
cmp edx, 0xc0
jb 0x1016b400
test dl, 0x20
jne 0x1016b32f
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016b400
test dl, 0x10
jne 0x1016b356
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 0x1016b400
test dl, 8
jne 0x1016b389
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 0x1016b400
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016b3c5
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 0x1016b400
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.10170330
add esp, 0xc
test eax, eax
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebx
inc eax
mov edi, ebx
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016b2e3
jmp 0x1016db37
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, edi
jb case.default.0x10162ef5
jmp 0x1016ae1b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, dword [ecx + 0x78]
jb case.default.0x10162ef5
jmp 0x1016af3f
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x10162ef5
mov ebx, dword [ebx + 0x78]
mov eax, ebx
mov edi, dword [esp + 0x34]
sub eax, edi
cmp esi, eax
ja 0x1016b52c
mov edx, dword [esp + 0x4c]
mov ecx, esi
sub edi, 4
jb 0x1016b4f1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016b4f6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1016b4e0
cmp edi, 0xfffffffc
je 0x1016b523
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016b52c
cmp edi, 0xfffffffd
je 0x1016b523
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016b52c
cmp edi, 0xfffffffe
je 0x1016b523
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016b52c
cmp edi, 0xffffffff
je 0x1016b523
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016b52c
add esi, dword [esp + 0x34]
jmp 0x1016b599
mov edi, dword [esp + 0x24]
test edi, edi
jle 0x1016b5d0
mov eax, ebx
sub eax, edi
cmp esi, eax
ja 0x1016b5d0
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x1016b563
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016b568
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1016b552
cmp edi, 0xfffffffc
je 0x1016b595
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016b5d0
cmp edi, 0xfffffffd
je 0x1016b595
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016b5d0
cmp edi, 0xfffffffe
je 0x1016b595
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016b5d0
cmp edi, 0xffffffff
je 0x1016b595
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016b5d0
add esi, dword [esp + 0x24]
mov eax, dword [esp + 0x180]
inc ebp
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
mov edi, ebp
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016b4b5
jmp 0x1016db37
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, ebx
jb case.default.0x10162ef5
jmp 0x1016af3f
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x28]
jge case.default.0x10162ef5
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016af31
movzx eax, byte [esi]
cmp ebx, eax
je 0x1016b64c
cmp edi, eax
jne case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc esi
inc eax
inc ebp
push eax
push dword [esp + 0x34]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x28]
jl 0x1016b630
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov ecx, ebp
cmp ecx, edi
jge case.default.0x10162ef5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016af31
movzx eax, byte [esi]
inc esi
cmp ebx, eax
jne case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
push eax
push dword [esp + 0x34]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016b6b4
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
cmp dword [esp + 0x20], 0
je 0x1016b87d
test eax, eax
jne 0x1016db37
mov edi, ebp
nop
cmp edi, dword [esp + 0x28]
jge case.default.0x10162ef5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016af31
movzx edx, byte [esi]
inc esi
mov eax, edx
cmp edx, 0xc0
jb 0x1016b838
test dl, 0x20
jne 0x1016b782
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016b836
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x1016b7a9
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016b832
test dl, 8
jne 0x1016b7cf
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 0x1016b832
test dl, 4
jne 0x1016b7fe
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 0x1016b832
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 eax, edx
cmp ebx, edx
je case.default.0x10162ef5
cmp dword [esp + 0x3c], eax
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x34]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016b740
jmp 0x1016db37
test eax, eax
jne 0x1016db37
mov edi, ebp
nop word [eax + eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x10162ef5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016af31
movzx eax, byte [esi]
cmp ebx, eax
je case.default.0x10162ef5
cmp dword [esp + 0x3c], eax
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc esi
inc eax
inc ebp
push eax
push dword [esp + 0x34]
mov edi, ebp
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016b890
jmp 0x1016db37
mov eax, dword [edx + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, dword [edx + 0x84]
jbe case.default.0x10162ef5
mov dword [edx + 0x64], 1
jmp 0x1016ae2a
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
test edx, edx
je 0x1016bac2
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov ebx, ebp
nop word [eax + eax]
cmp ebx, dword [esp + 0x28]
jge case.default.0x10162ef5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016af31
movzx ebx, byte [esi]
inc esi
mov dword [esp + 0x44], ebx
cmp ebx, 0xc0
jb 0x1016ba83
mov al, byte [esi]
test bl, 0x20
jne 0x1016b996
and ebx, 0x1f
movzx eax, al
shl ebx, 6
and eax, 0x3f
inc esi
or ebx, eax
jmp 0x1016ba83
lea ecx, [esi + 1]
test bl, 0x10
jne 0x1016b9bf
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 0x1016ba7f
lea edx, [esi + 2]
test bl, 8
jne 0x1016b9f3
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 0x1016ba7b
lea edi, [esi + 3]
test bl, 4
jne 0x1016ba33
movzx ebx, al
add esi, 4
mov eax, dword [esp + 0x44]
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 0x1016ba7b
movzx ebp, al
lea ebx, [esi + 4]
mov eax, dword [esp + 0x44]
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 + 0x24]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
cmp edi, ebx
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov dword [esp + 0x24], ebp
push eax
push dword [esp + 0x34]
mov ebx, ebp
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016b950
jmp 0x1016db37
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov ecx, ebp
cmp ecx, dword [esp + 0x28]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp edi, eax
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016bae6
jmp 0x1016db37
test eax, eax
js 0x1016ccfb
cmp eax, 0xa
ja case.default.0x10163744
jmp dword [eax*4 + 0x1016e5c0]
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x34]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
je 0x1016bbca
cmp eax, 0xc0
jb 0x1016bbca
test al, 0x20
jne 0x1016bbac
inc esi
jmp 0x1016bbca
test al, 0x10
jne 0x1016bbb5
add esi, 2
jmp 0x1016bbca
test al, 8
jne 0x1016bbbe
add esi, 3
jmp 0x1016bbca
test al, 4
jne 0x1016bbc7
add esi, 4
jmp 0x1016bbca
add esi, 5
cmp dword [esp + 0x48], 0
jne case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016bb80
jmp 0x1016db37
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebp
cmp edi, dword [esp + 0x34]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016bd51
cmp eax, 0xc0
jb 0x1016bd51
test al, 0x20
jne 0x1016bc7e
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016bd4f
test al, 0x10
jne 0x1016bca4
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 0x1016bd4f
test al, 8
jne 0x1016bcd6
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 0x1016bd4f
test al, 4
movzx eax, byte [esi]
jne 0x1016bd11
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 0x1016bd4f
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016bd6b
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp eax, 9
je 0x1016bd90
cmp eax, 5
je 0x1016bd90
cmp eax, 8
je 0x1016bd90
xor eax, eax
jmp 0x1016bd95
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016bc35
jmp 0x1016db37
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebp
cmp edi, dword [esp + 0x34]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016bf1f
cmp eax, 0xc0
jb 0x1016bf1f
test al, 0x20
jne 0x1016be4c
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016bf1d
test al, 0x10
jne 0x1016be72
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 0x1016bf1d
test al, 8
jne 0x1016bea4
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 0x1016bf1d
test al, 4
movzx eax, byte [esi]
jne 0x1016bedf
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 0x1016bf1d
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016bf39
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x50]
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp dword [eax*4 + 0x101be700], edx
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016be03
jmp 0x1016db37
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x34]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016c0ec
cmp eax, 0xc0
jb 0x1016c0ec
test al, 0x20
jne 0x1016c019
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016c0ea
test al, 0x10
jne 0x1016c03f
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 0x1016c0ea
test al, 8
jne 0x1016c071
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 0x1016c0ea
test al, 4
movzx eax, byte [esi]
jne 0x1016c0ac
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 0x1016c0ea
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c106
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016bfd0
jmp 0x1016db37
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebp
nop
cmp edi, dword [esp + 0x34]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016c2ac
cmp eax, 0xc0
jb 0x1016c2ac
test al, 0x20
jne 0x1016c1d9
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016c2aa
test al, 0x10
jne 0x1016c1ff
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 0x1016c2aa
test al, 8
jne 0x1016c231
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 0x1016c2aa
test al, 4
movzx eax, byte [esi]
jne 0x1016c26c
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 0x1016c2aa
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c2c6
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed68]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016c190
jmp 0x1016db37
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebp
nop
cmp edi, dword [esp + 0x34]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016c46c
cmp eax, 0xc0
jb 0x1016c46c
test al, 0x20
jne 0x1016c399
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016c46a
test al, 0x10
jne 0x1016c3bf
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 0x1016c46a
test al, 8
jne 0x1016c3f1
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 0x1016c46a
test al, 4
movzx eax, byte [esi]
jne 0x1016c42c
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 0x1016c46a
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c486
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x1016c4ad
cmp eax, 3
je 0x1016c4ad
xor eax, eax
jmp 0x1016c4b2
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016c350
jmp 0x1016db37
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x34]
jge case.default.0x10162ef5
nop dword [eax + eax]
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov eax, ecx
mov dword [esp + 0x24], ecx
mov edx, ecx
mov ebx, ecx
mov edi, ecx
mov ebp, ecx
je 0x1016c64c
mov dword [esp + 0x24], ecx
cmp ecx, 0xc0
jb 0x1016c64c
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016c57f
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016c63e
test cl, 0x10
jne 0x1016c5a0
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 0x1016c63e
test cl, 8
jne 0x1016c5cd
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 0x1016c63e
test cl, 4
jne 0x1016c603
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 0x1016c63e
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 + 0x24], ecx
mov eax, ecx
mov edx, ecx
mov ebx, ecx
mov edi, ecx
mov ebp, ecx
cmp dword [esp + 0x24], 0x20
ja 0x1016c66b
cmp eax, 0x20
je case.0x1016c779.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x1016c779.8203
jmp dword [eax*4 + 0x1016e5ec]
cmp ecx, 0x2000
ja 0x1016c74f
cmp edx, 0x2000
je case.0x1016c779.8193
cmp ebx, 0x1680
ja 0x1016c744
cmp ecx, 0x1680
je case.0x1016c779.8193
mov eax, ecx
sub eax, 0x85
je case.0x1016c779.8193
sub eax, 0x1b
je case.0x1016c779.8193
mov eax, ecx
test eax, eax
jns 0x1016c6ba
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016c6d4
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
cmp dword [eax*4 + 0x101be700], 6
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
mov ebp, dword [esp + 0x3c]
push eax
push dword [esp + 0x34]
inc ebp
push ebx
push dword [esp + 0x28]
mov dword [esp + 0x4c], ebp
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x34]
jl 0x1016c530
jmp 0x1016db37
cmp ecx, 0x180e
jmp 0x1016c6ab
cmp edi, 0x3000
ja case.0x1016c779.8203
cmp ebp, 0x3000
je case.0x1016c779.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x1016c779.8203
movzx eax, byte [eax + 0x1016e608]
jmp dword [eax*4 + 0x1016e600]
cmp dword [esp + 0x48], 0
jne case.default.0x10162ef5
jmp 0x1016c6fd
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebp
cmp edi, dword [esp + 0x34]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
mov edi, eax
je 0x1016c8e1
cmp eax, 0xc0
jb 0x1016c8e1
test al, 0x20
jne 0x1016c80c
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016c8dd
test al, 0x10
jne 0x1016c832
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 0x1016c8dd
test al, 8
jne 0x1016c864
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 0x1016c8dd
test al, 4
movzx eax, byte [esi]
jne 0x1016c89f
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 0x1016c8dd
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c8fb
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx eax, byte [eax*8 + 0x101bed69]
mov eax, dword [eax*4 + 0x101be700]
cmp eax, 1
je 0x1016c927
cmp eax, 3
je 0x1016c927
cmp edi, 0x5f
je 0x1016c927
xor eax, eax
jmp 0x1016c92c
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
mov edi, ebp
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016c7c1
jmp 0x1016db37
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
mov edi, dword [esp + 0x18]
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edi
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x34]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, edx
je 0x1016cab9
cmp edx, 0xc0
jb 0x1016cab9
test dl, 0x20
jne 0x1016c9e6
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 0x1016cab7
test dl, 0x10
jne 0x1016ca0d
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 0x1016cab7
test dl, 8
jne 0x1016ca40
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 0x1016cab7
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016ca7c
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 0x1016cab7
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 + 0x50]
cmp ecx, dword [eax*4 + 0x101bec28]
lea eax, [eax*4 + 0x101bec28]
jb 0x1016cadd
mov ecx, dword [eax]
nop
lea eax, [eax + 4]
cmp edx, ecx
je 0x1016cb20
mov ecx, dword [eax]
cmp edx, ecx
jae 0x1016cad0
cmp dword [esp + 0x48], 0
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edi
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x34]
jl 0x1016c9a3
jmp 0x1016db37
cmp dword [esp + 0x48], 0
jne case.default.0x10162ef5
jmp 0x1016cae8
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov edi, ebp
nop
cmp edi, dword [esp + 0x34]
jge case.default.0x10162ef5
cmp esi, dword [ebx + 0x78]
jae 0x1016ae11
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
je 0x1016cc8a
cmp edx, 0xc0
jb 0x1016cc8a
test dl, 0x20
jne 0x1016cbb1
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x1016cc82
test dl, 0x10
jne 0x1016cbd8
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 0x1016cc82
test dl, 8
jne 0x1016cc0b
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 0x1016cc82
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016cc47
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 0x1016cc82
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 0x1016ccb5
cmp ecx, 0x40
je 0x1016ccb5
cmp edi, 0x60
je 0x1016ccb5
cmp ebx, 0xa0
jb 0x1016cca9
cmp edx, 0xd7ff
jbe 0x1016ccb5
cmp edx, 0xe000
jae 0x1016ccb5
xor eax, eax
jmp 0x1016ccba
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x34]
mov edi, ebp
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016cb60
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
cmp edi, 0x16
jne 0x1016d022
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x34]
jge case.default.0x10162ef5
nop dword [eax]
mov ebp, dword [edi + 0x78]
cmp esi, ebp
jae 0x1016b1a8
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
mov edi, esi
je 0x1016ce5a
cmp eax, 0xc0
jb 0x1016ce5a
test al, 0x20
jne 0x1016cd83
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016ce56
test al, 0x10
jne 0x1016cda9
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 0x1016ce56
test al, 8
jne 0x1016cddb
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 0x1016ce56
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016ce18
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 0x1016ce56
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 + 0x101c03e8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016ce74
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c25e8]
movzx ebx, byte [eax*8 + 0x101bed6a]
cmp edi, ebp
jae 0x1016cfb4
nop
cmp dword [esp + 0x20], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x1016cf6c
cmp edx, 0xc0
jb 0x1016cf6c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016ced1
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016cf68
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016ceec
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016cf62
and eax, 0x3f
test dl, 8
jne 0x1016cf0c
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016cf62
test dl, 4
jne 0x1016cf35
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 0x1016cf62
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 + 0x101c03e8]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016cf86
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c25e8]
movzx ecx, byte [eax*8 + 0x101bed6a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101be778], eax
je 0x1016cfb4
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x1016ce90
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x88]
test eax, eax
je 0x1016cfdf
cmp esi, dword [edi + 0x78]
jb 0x1016cfdf
cmp esi, dword [edi + 0x84]
jbe 0x1016cfdf
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x1016d762
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x3c]
inc eax
push eax
push dword [esp + 0x34]
inc ebx
push edi
push dword [esp + 0x28]
mov dword [esp + 0x4c], ebx
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebx, dword [esp + 0x34]
jl 0x1016cd40
jmp 0x1016db37
test ecx, ecx
je 0x1016d504
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x34]
jge case.default.0x10162ef5
mov ebp, dword [esp + 0x10]
mov ecx, dword [ebp + 0x78]
cmp esi, ecx
jae 0x1016d4de
cmp edi, 0xc
jne 0x1016d0ba
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x1016d095
push dword [esp + 0x20]
lea eax, [ebp + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016fcc0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10162ef5
jmp 0x1016d0ba
mov edx, dword [ebp + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016d0ba
mov al, byte [esi]
cmp al, byte [ebp + 0x34]
jne 0x1016d0ba
cmp edx, 1
je case.default.0x10162ef5
mov al, byte [esi + 1]
cmp al, byte [ebp + 0x35]
je case.default.0x10162ef5
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x40], edx
mov ecx, edx
mov dword [esp + 0x24], ecx
mov edi, edx
mov dword [esp + 0x50], edi
mov eax, edx
mov ebx, edx
mov ebp, edx
cmp edx, 0xc0
jb 0x1016d1bb
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x1016d0fb
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x1016d1a5
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x1016d11c
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016d1a5
test dl, 8
jne 0x1016d142
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 0x1016d1a5
test dl, 4
jne 0x1016d171
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 0x1016d1a5
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 + 0x24], ecx
mov dword [esp + 0x50], edi
mov ebx, eax
mov ebp, eax
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.default.0x10163744
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x1016e668]
mov ebp, dword [esp + 0x10]
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x1016d1d2.13
cmp esi, dword [ebp + 0x78]
jb case.0x1016d1d2.13
cmp dword [ebp + 0x18], 0
jne case.0x1016d1d2.13
cmp dword [ebp + 0x1c], 2
jne case.0x1016d1d2.13
movzx eax, byte [ebp + 0x34]
cmp edx, eax
jne case.0x1016d1d2.13
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x1016d762
jmp case.0x1016d1d2.13
cmp edx, 0x85
ja 0x1016d262
je case.0x1016d23f.11
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10162ef5
jmp dword [edx*4 + 0x1016e6a8]
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae case.0x1016d1d2.13
cmp byte [esi], 0xa
jne case.0x1016d1d2.13
inc esi
jmp case.0x1016d1d2.13
sub edx, 0x2028
je case.0x1016d23f.11
sub edx, 1
jne case.default.0x10162ef5
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x68], 0
jne case.default.0x10162ef5
jmp case.0x1016d1d2.13
cmp edx, 0x2000
ja 0x1016d2ca
je case.default.0x10162ef5
cmp edx, 0xa0
ja 0x1016d2b3
je case.default.0x10162ef5
cmp edx, 9
je case.default.0x10162ef5
cmp edx, 0x20
jmp 0x1016d48e
cmp edx, 0x1680
je case.default.0x10162ef5
cmp edx, 0x180e
jmp 0x1016d48e
cmp edx, 0x3000
ja case.0x1016d1d2.13
je case.default.0x10162ef5
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x1016d1d2.13
movzx eax, byte [edx + 0x1016e6c0]
jmp dword [eax*4 + 0x1016e6b8]
cmp edx, 0x2000
ja 0x1016d349
je case.0x1016d1d2.13
cmp edx, 0xa0
ja 0x1016d32c
je case.0x1016d1d2.13
cmp edx, 9
je case.0x1016d1d2.13
cmp edx, 0x20
jne case.default.0x10162ef5
jmp case.0x1016d1d2.13
cmp edx, 0x1680
je case.0x1016d1d2.13
cmp edx, 0x180e
jne case.default.0x10162ef5
jmp case.0x1016d1d2.13
cmp edx, 0x3000
ja case.default.0x10162ef5
je case.0x1016d1d2.13
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x10162ef5
movzx eax, byte [edx + 0x1016e728]
jmp dword [eax*4 + 0x1016e720]
cmp edx, 0x85
ja 0x1016d399
je case.default.0x10162ef5
add edx, 0xfffffff6
cmp edx, 3
ja case.0x1016d1d2.13
jmp dword [edx*4 + 0x1016e788]
sub edx, 0x2028
je case.default.0x10162ef5
sub edx, 1
jmp 0x1016d48e
cmp edx, 0x85
ja 0x1016d3ce
je case.0x1016d1d2.13
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10162ef5
jmp dword [edx*4 + 0x1016e798]
sub edx, 0x2028
je case.0x1016d1d2.13
sub edx, 1
jne case.default.0x10162ef5
jmp case.0x1016d1d2.13
cmp eax, 0x100
jae case.0x1016d1d2.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne case.default.0x10162ef5
jmp case.0x1016d1d2.13
cmp dword [esp + 0x24], 0x100
jae case.default.0x10162ef5
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jmp 0x1016d48e
cmp dword [esp + 0x50], 0x100
jae case.0x1016d1d2.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne case.default.0x10162ef5
jmp case.0x1016d1d2.13
cmp ebx, 0x100
jae case.default.0x10162ef5
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jmp 0x1016d48e
cmp ebp, 0x100
jae case.0x1016d1d2.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne case.default.0x10162ef5
jmp case.0x1016d1d2.13
cmp dword [esp + 0x40], 0x100
jae case.default.0x10162ef5
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
mov ebp, dword [esp + 0x3c]
inc eax
push eax
push dword [esp + 0x34]
inc ebp
push dword [esp + 0x18]
mov dword [esp + 0x48], ebp
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x34]
jge case.default.0x10162ef5
mov edi, dword [esp + 0x28]
jmp 0x1016d055
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, dword [ebp + 0x84]
jbe case.default.0x10162ef5
mov dword [ebp + 0x64], 1
jmp 0x1016ae2a
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x34]
jge case.default.0x10162ef5
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016d738
cmp edi, 0xc
jne 0x1016d58f
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016d56a
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016fcc0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x10162ef5
jmp 0x1016d58f
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016d58f
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016d58f
cmp edx, 1
je case.default.0x10162ef5
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x10162ef5
movzx ecx, byte [esi]
lea eax, [edi - 6]
inc esi
cmp eax, 0xf
ja case.default.0x10163744
jmp dword [eax*4 + 0x1016e7a8]
mov edx, dword [ebx + 0x88]
test edx, edx
je case.0x1016d59f.13
cmp esi, dword [ebx + 0x78]
jb case.0x1016d59f.13
cmp dword [ebx + 0x18], 0
jne case.0x1016d59f.13
cmp dword [ebx + 0x1c], 2
jne case.0x1016d59f.13
movzx eax, byte [ebx + 0x34]
cmp ecx, eax
jne case.0x1016d59f.13
mov dword [ebx + 0x64], 1
cmp edx, 1
jg 0x1016d762
jmp case.0x1016d59f.13
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.default.0x10162ef5
movzx eax, byte [ecx + 0x1016e7f8]
jmp dword [eax*4 + 0x1016e7e8]
cmp esi, dword [ebx + 0x78]
jae case.0x1016d59f.13
cmp byte [esi], 0xa
jne case.0x1016d59f.13
inc esi
jmp case.0x1016d59f.13
cmp dword [ebx + 0x68], 0
jne case.default.0x10162ef5
jmp case.0x1016d59f.13
cmp ecx, 9
je case.default.0x10162ef5
cmp ecx, 0x20
je case.default.0x10162ef5
cmp ecx, 0xa0
jmp 0x1016d6ed
cmp ecx, 9
je case.0x1016d59f.13
cmp ecx, 0x20
je case.0x1016d59f.13
cmp ecx, 0xa0
jne case.default.0x10162ef5
jmp case.0x1016d59f.13
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x1016d59f.13
movzx eax, byte [ecx + 0x1016e87c]
jmp dword [eax*4 + 0x1016e874]
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.default.0x10162ef5
movzx eax, byte [ecx + 0x1016e900]
jmp dword [eax*4 + 0x1016e8f8]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x10162ef5
jmp case.0x1016d59f.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jmp 0x1016d6ed
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.default.0x10162ef5
jmp case.0x1016d59f.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jmp 0x1016d6ed
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x10162ef5
jmp case.0x1016d59f.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x10162ef5
mov eax, dword [esp + 0x180]
inc ebp
inc eax
push eax
push dword [esp + 0x34]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
cmp ebp, dword [esp + 0x34]
jl 0x1016d530
jmp 0x1016db37
mov eax, 0xfffffff2
jmp 0x1016db37
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x10162ef5
cmp esi, dword [ebx + 0x84]
jbe case.default.0x10162ef5
mov dword [ebx + 0x64], 1
cmp eax, 1
jle case.default.0x10162ef5
mov eax, 0xfffffff4
jmp 0x1016db37
test eax, eax
jne case.default.0x10161491
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 0x1016d7b1
mov edi, edx
jmp 0x1016aa90
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0xc]
lea eax, [ebx + ebx]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x4c]
mov dword [ecx + eax*4], edx
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub edx, ebx
mov eax, dword [esp + 0x50]
mov dword [ecx + edx*4], eax
mov eax, edi
jmp 0x1016db37
cmp ecx, 0xfffffc1b
jne 0x1016d838
mov ebx, dword [esp + 0x18]
cmp byte [ebx], 0x81
je 0x1016d829
cmp byte [ebx], 0x77
mov edi, ebx
jne 0x1016d818
mov esi, ebx
nop dword [eax]
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 0x1016d800
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 0x1016db37
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 + 0x34]
movzx eax, byte [edx]
push ebx
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101be5e8]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10160ba0
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x1016d89f
cmp edx, 0xfffffc19
je 0x1016d89f
cmp edx, 0xfffffc1a
jne 0x1016d8b5
cmp dword [ebx + 0xac], 0
jne 0x1016d8b5
mov dword [ebx + 0xac], edi
mov eax, edx
jmp 0x1016db37
cmp edx, 0xfffffc1f
jne 0x1016d8ed
mov eax, dword [ebx + 0x7c]
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x1016d8e0
test cl, cl
je 0x1016d8dc
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x1016d8e0
add edi, 2
add eax, 2
test cl, cl
jne 0x1016d8c0
xor eax, eax
jmp 0x1016d8e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x1016da08
mov eax, edx
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [edx + 0x101be5e8]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
mov ecx, 0xfffffc1c
test eax, eax
cmovne ecx, eax
mov eax, ecx
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [edx + 0x101be5e8]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016d9ce
jmp 0x1016db37
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 + 0x34]
movzx eax, byte [edx]
push ebx
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101be5e8]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10160ba0
add esp, 0x1c
cmp eax, 1
je 0x1016d9b7
cmp eax, 0xfffffc19
jne 0x1016d9c6
cmp dword [ebx + 0xac], 0
jne 0x1016d9c6
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x1016db37
mov eax, 0xfffffc1d
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [edx + 0x101be5e8]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
jne 0x1016db37
mov dword [ebx + 0x7c], esi
mov eax, 0xfffffc1e
jmp 0x1016db37
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [edx + 0x101be5e8]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160ba0
add esp, 0x1c
test eax, eax
je 0x1016dab6
jmp 0x1016db37
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 + 0x34]
movzx eax, byte [edx]
push ebx
push dword [esp + 0x28]
movzx eax, byte [eax + 0x101be5e8]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10160ba0
add esp, 0x1c
cmp eax, 1
je 0x1016da9f
cmp eax, 0xfffffc19
jne 0x1016daae
cmp dword [ebx + 0xac], 0
jne 0x1016daae
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x1016db37
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x7c], eax
mov eax, 0xfffffc20
jmp 0x1016db37
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jne 0x1016db01
cmp edx, 0x9f
je 0x1016db01
cmp dword [ebx + 0xa4], 0
jne 0x1016db01
cmp dword [ebx + 0x5c], 0
jne case.default.0x10162ef5
cmp dword [ebx + 0x60], 0
je 0x1016db01
mov eax, dword [ebx + 0x94]
add eax, dword [ebx + 0x74]
cmp ecx, eax
je case.default.0x10162ef5
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 0x1016db37
mov eax, 0xfffffffb
jmp 0x1016db37
mov eax, 0xffffffeb
jmp 0x1016db37
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.10173495
add esp, 0x154
ret