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

Disassembly:
sub esp, 0x154
mov eax, dword [0x101f8740]
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 0x1016053f
lea eax, [esp + 0x174]
cmp dword [esp + 0x174], edx
jne 0x10160520
push 1
push edx
push edx
push edx
push edx
push edx
push eax
call fcn.10160490
add esp, 0x1c
pop esi
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.10172863
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.10172863
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 0x1016d41f
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x180]
cmp eax, dword [edi + 8]
jae 0x1016d418
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 2
jne 0x101605a7
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 0x101605d7
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605e0
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
jmp 0x101605e0
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.0x1016060c.98
movzx eax, byte [edx + 0x1016d58c]
jmp dword [eax*4 + 0x1016d440]
mov eax, dword [ebx + 0x28]
inc eax
mov dword [ebx + 0x28], eax
cmp eax, dword [ebx + 0x2c]
ja 0x1016a538
mov edx, dword [esp + 0x18]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x101bd2a8]
movzx eax, byte [edx + 1]
add edx, eax
add edx, ecx
mov dword [esp + 0x18], edx
jmp 0x101605e0
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.10160490
add esp, 0x1c
cmp eax, 1
je 0x101606f4
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x101606c0
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 0x101606c0
mov ecx, dword [esp + 0x18]
cmp byte [ecx], 0x77
je 0x101606c8
cmp byte [edx], 0x77
mov ecx, eax
je 0x101606c8
test eax, eax
jne case.default.0x10160d81
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 0x10160655
jmp 0x10160703
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 0x10160711
cmp al, 0x77
jne case.default.0x101627e5
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 0x10160711
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 0x10160750
cmp esi, ebp
jne 0x10169cb8
mov ebp, dword [esp + 0x20]
add edx, 3
mov dword [esp + 0x18], edx
mov ebx, eax
jmp 0x101605e0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], 0
jmp 0x101612da
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], 0
jmp 0x101612fb
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 0x101608a2
mov edi, dword [0x101fe24c]
test edi, edi
je 0x1016088f
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.0x101627e5
js 0x1016d427
mov edx, dword [esp + 0x18]
movzx eax, byte [0x101bd31e]
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.0x101608c1.146
movzx eax, byte [eax + 0x1016d648]
jmp dword [eax*4 + 0x1016d630]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xa4]
test edx, edx
je case.0x101608c1.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 0x101608fc
cmp ecx, dword [edx + 4]
jne case.0x101608c1.145
mov eax, dword [esp + 0x44]
mov ebx, 1
movzx ebp, byte [eax + 0x101bd2a8]
jmp case.0x101608c1.145
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa4], ebx
je case.0x101608c1.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.0x101608c1.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 0x10160985
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
add edx, esi
mov esi, edx
test edi, edi
jg 0x10160960
mov esi, dword [esp + 0x14]
mov eax, ebx
mov ebp, dword [esp + 0x4c]
jmp 0x10160a35
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 0x101609be
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], ebx
jl 0x101609be
mov ebx, 1
mov eax, ebx
jmp 0x10160a35
xor ebx, ebx
mov eax, ebx
jmp 0x10160a35
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.0x101608c1.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 0x10160a1e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x10160a1e
mov ebx, 1
jmp 0x10160a20
xor ebx, ebx
mov eax, ebx
test ebx, ebx
jne 0x10160ae6
mov ecx, dword [esp + 0x10]
add edx, dword [ecx + 0x24]
test edi, edi
jg 0x101609f5
test eax, eax
je case.0x101608c1.145
mov eax, dword [esp + 0x44]
movzx ebp, byte [eax + 0x101bd2a8]
jmp case.0x101608c1.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.10160490
add esp, 0x1c
cmp eax, 1
jne 0x10160af3
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 0x10160aa4
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 0x10160ad6
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 0x10160ac0
movzx eax, byte [edi + 0x101bd2a8]
sub edx, eax
add edx, 3
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x44]
movzx ebp, byte [eax + 0x101bd2a8]
jmp case.0x101608c1.145
test eax, eax
je case.0x101608c1.145
cmp eax, 0xfffffc20
jne 0x1016d427
mov edx, dword [esp + 0x18]
add edx, ebp
mov dword [esp + 0x18], edx
test ebx, ebx
jne 0x10169d23
cmp byte [edx - 3], 0x77
je 0x10169d23
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
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 0x10160b7a
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 0x101605e0
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 0x10163249
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + edi*4]
cmp ecx, edx
jae 0x10160bcf
mov eax, ecx
nop dword [eax + eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x10160bc0
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 0x101605e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x10160c0e
mov dword [eax + 0x98], 0
mov ebx, 1
jmp 0x10160c10
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.10160490
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x10160cae
cmp edx, 0xfffffc19
je 0x10160cae
mov dword [ebp + 0xac], edi
cmp edx, 0xfffffc20
jne 0x10160c84
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 0x10160c84
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10160c80
cmp byte [ecx], 0x77
mov eax, edx
jne 0x10160c84
xor edx, edx
xor eax, eax
test edx, edx
jne 0x1016d427
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 0x10160c16
jmp 0x10160cbb
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.0x101627e5
test ebx, ebx
jne 0x1016a6ba
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 0x10160cd0
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 0x101605e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x10160d26
mov dword [eax + 0x98], 0
mov ebx, 1
jmp 0x10160d28
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.10160490
mov ecx, eax
add esp, 0x1c
mov eax, dword [esp + 0x10]
mov dword [eax + 0xac], edi
cmp ecx, 0xfffffc1c
jle 0x10160dd2
test ecx, ecx
jg 0x1016a583
je 0x10160db0
lea eax, [ecx + 0x3e3]
cmp eax, 3
ja case.default.0x10160d81
jmp dword [eax*4 + 0x1016d65c]
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 0x10160de0
cmp byte [edx], 0x77
je 0x10160db4
cmp byte [eax], 0x77
jne 0x10160de0
jmp 0x10160db4
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 0x10160d30
jmp 0x10160df4
jne 0x1016a58a
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 0x10160de0
test ebx, ebx
jne 0x1016a6ba
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x101605d3
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
test ebp, ebp
je 0x10160e58
or ecx, eax
mov eax, dword [esp + 0x10]
jbe 0x10160e6d
mov edx, dword [eax + 0x74]
dec esi
dec ecx
mov dword [esp + 0x14], esi
cmp esi, edx
jb case.default.0x101627e5
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10160e4e
nop dword [eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x10160e40
mov dword [esp + 0x14], esi
test ecx, ecx
jg 0x10160e26
mov eax, dword [esp + 0x10]
jmp 0x10160e6d
or ecx, eax
mov eax, dword [esp + 0x10]
sub esi, ecx
mov dword [esp + 0x14], esi
cmp esi, dword [eax + 0x74]
jb case.default.0x101627e5
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
cmp esi, dword [eax + 0x84]
jae 0x10163255
mov ebp, dword [esp + 0x20]
add edx, 3
mov dword [eax + 0x84], esi
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov edi, dword [0x101fe24c]
test edi, edi
je 0x10160f86
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.0x101627e5
js 0x1016d427
mov edx, dword [esp + 0x18]
add edx, 6
mov dword [esp + 0x18], edx
jmp 0x101605d7
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 0x10160fb4
xor edx, edx
jmp 0x10160fc1
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 0x10160fea
nop
cmp edx, dword [ecx + 4]
jne 0x10160fde
cmp esi, dword [ecx + 0x14]
je 0x1016a59d
mov eax, dword [ecx]
mov ecx, eax
test eax, eax
jne 0x10160fd0
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 0x10161038
lea eax, [esp + 0xe0]
mov dword [esp + 0x60], eax
jmp 0x10161059
lea eax, [ecx*4]
push eax
call dword [0x101f84c8]
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
je 0x1016a5c7
mov ecx, dword [esp + 0x64]
shl ecx, 2
push ecx
mov ecx, dword [esp + 0x14]
push dword [ecx + 0xc]
push eax
call fcn.10174950
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [ebx], 0x88
sbb ebp, ebp
inc ebp
test ebp, ebp
je 0x1016108b
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 + 0x101bd2a8]
push dword [esp + 0x3c]
add eax, ebx
push eax
push esi
call fcn.10160490
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.10174950
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 0x10161164
cmp edi, 0xfffffc19
je 0x10161164
cmp edi, 0xfffffc1c
jl 0x1016110c
cmp edi, 0xfffffc20
jle 0x10161140
test edi, edi
jne 0x1016a5a7
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 0x10161077
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.0x101627e5
push eax
call dword [0x101f84cc]
add esp, 4
xor eax, eax
jmp 0x1016d427
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xe0]
cmp eax, ecx
je 0x1016117d
push eax
call dword [0x101f84cc]
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 0x101605d7
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 0x101611b0
mov dword [esp + 0x18], edx
jmp 0x101605e0
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
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 0x10161200
lea edx, [edi + 3]
mov dword [esp + 0x18], edx
jmp 0x101605d7
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 0x10161230
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
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 0x10161290
lea edx, [eax + 3]
mov dword [esp + 0x18], edx
jmp 0x101605e0
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 0x101612da
cmp edx, 0x8b
jne 0x101612fb
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 0x10161468
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 0x10161322
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 + 0x101bd2a8]
push dword [esp + 0x3c]
add eax, ecx
push eax
push esi
call fcn.10160490
add esp, 0x1c
cmp eax, 0xfffffc1a
jne 0x101613a0
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 0x1016141d
mov edx, dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
jmp 0x10161310
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x101613e0
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 0x101613e0
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x101613e8
cmp byte [edx], 0x77
mov eax, ecx
je 0x101613e8
test eax, eax
jne case.default.0x10160d81
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 0x10161444
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x90], ebx
jmp 0x10161310
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 0x10161420
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jne 0x10161454
mov edx, eax
cmp dword [esp + 0x24], ebp
je case.default.0x101627e5
mov ebx, dword [esp + 0x10]
add edx, 3
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x101605d7
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 0x101614c8
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 + 0x101bd2a8]
add eax, ecx
push eax
push esi
call fcn.10160490
add esp, 0x1c
cmp eax, 0xfffffc1a
jne 0x1016154b
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 0x101615c2
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
jmp 0x101614a0
mov ecx, eax
cmp eax, 0xfffffc20
jne 0x1016158b
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 0x1016158b
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x10161593
cmp byte [edx], 0x77
mov eax, ecx
je 0x10161593
test eax, eax
jne case.default.0x10160d81
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 0x101615ec
mov eax, dword [esp + 0x10]
jmp 0x101614a0
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 0x101615c4
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
jmp 0x10161621
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x10161621
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 0x10163249
test edx, edx
jmp 0x10163243
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 0x1016165c
cmp cl, 0x81
je 0x1016165c
xor ebp, ebp
jmp 0x1016166c
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 0x1016167a
cmp cl, 0x80
jbe 0x1016a6a3
cmp cl, 0x82
je 0x1016a6a3
cmp cl, 0x85
je 0x1016169b
cmp cl, 0x8a
je 0x1016169b
cmp cl, 0x86
je 0x1016169b
cmp cl, 0x8b
jne 0x1016175e
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 0x101616c2
cmp dword [eax + 4], edi
je 0x1016a5d1
mov eax, dword [ecx + 0x90]
and eax, 0xffff0000
or eax, edi
mov dword [ecx + 0x90], eax
cmp ebx, dword [ecx + 0x14]
jl 0x101616ef
mov ebx, dword [esp + 0x24]
or eax, 0x10000
mov edi, dword [esp + 0x1c]
mov dword [ecx + 0x90], eax
jmp 0x10161762
cmp ebx, dword [esp + 0x1c]
jle 0x10161723
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + ebx*4]
lea ecx, [eax + ecx*4]
cmp ecx, edx
jae 0x1016171f
mov eax, ecx
nop dword [eax + eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x10161710
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 0x10161758
lea edi, [ebx + 2]
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x24]
jmp 0x10161762
mov ecx, dword [esp + 0x10]
mov al, byte [edx]
cmp al, 0x7b
je 0x1016a686
cmp al, 0x78
je 0x10161778
cmp esi, ebp
jne 0x10169d64
cmp byte [ebx], 0x81
je 0x1016a64a
mov ebx, dword [esp + 0x10]
add edx, 3
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0
je 0x101617ae
cmp esi, dword [eax + 0x74]
je case.default.0x101627e5
jmp 0x101617ae
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x74]
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0
je 0x101617e0
cmp esi, dword [eax + 0x74]
je case.default.0x101627e5
mov edx, dword [eax + 0x74]
cmp esi, edx
je 0x10163532
cmp esi, dword [eax + 0x78]
je case.default.0x101627e5
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x1016183a
cmp esi, edx
jbe 0x1016181a
push ebp
add eax, 0x1c
push eax
push edx
push ecx
push esi
call fcn.1016f740
add esp, 0x14
test eax, eax
je 0x1016181a
mov eax, 1
jmp 0x1016181c
xor eax, eax
test eax, eax
je case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov ecx, dword [eax + 0x1c]
lea eax, [ecx + edx]
cmp esi, eax
jb case.default.0x101627e5
mov ebx, dword [esp + 0x10]
mov eax, esi
sub eax, ecx
mov al, byte [eax]
cmp al, byte [ebx + 0x34]
jne case.default.0x101627e5
cmp ecx, 1
je case.0x101627e5.10
mov eax, esi
sub eax, ecx
mov al, byte [eax + 1]
cmp al, byte [ebx + 0x35]
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov eax, dword [ebx + 0x94]
add eax, dword [ebx + 0x74]
cmp esi, eax
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10161937
mov edx, dword [eax + 0x18]
test edx, edx
je 0x10161903
push ebp
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.1016f5b0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
je 0x1016a6c4
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov edx, dword [eax + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016a6c8
mov ebx, dword [esp + 0x10]
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10161930
cmp edx, 1
je case.0x101627e5.10
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x101627e5.10
mov eax, ebx
jmp 0x1016a6c8
cmp dword [eax + 0x48], 0
jne case.default.0x101627e5
mov eax, dword [eax + 0x88]
mov ebx, dword [esp + 0x10]
test eax, eax
je case.0x101627e5.10
cmp esi, dword [ebx + 0x84]
jbe case.0x101627e5.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x48], 0
jne case.default.0x101627e5
cmp dword [eax + 0x58], 0
je 0x101619aa
jmp 0x1016199b
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jb case.default.0x101627e5
jmp 0x10161941
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10161941
mov edx, dword [eax + 0x18]
test edx, edx
je 0x101619de
push ebp
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.1016f5b0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
je 0x1016a6c4
mov ecx, dword [esp + 0x10]
jmp 0x10161a0b
mov edx, dword [eax + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016a6c8
mov ecx, dword [esp + 0x10]
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x1016a6fd
cmp edx, 1
je 0x10161a0b
mov al, byte [esi + 1]
cmp al, byte [ecx + 0x35]
jne 0x1016a6fd
mov eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x1c]
cmp esi, eax
mov eax, dword [esp + 0x10]
jne 0x1016a6c8
jmp 0x10161941
test ebp, ebp
je 0x10161d10
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x74]
je 0x10161b89
mov al, byte [esi - 1]
lea edx, [esi - 1]
and al, 0xc0
mov ecx, edx
cmp al, 0x80
jne 0x10161a51
mov al, byte [edx - 1]
dec edx
and al, 0xc0
mov ecx, edx
cmp al, 0x80
je 0x10161a45
mov eax, dword [esp + 0x10]
cmp ecx, dword [eax + 0x84]
jae 0x10161a63
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 0x10161b1e
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x10161a93
and eax, 0x1f
mov ebx, ecx
shl eax, 6
jmp 0x10161b14
movzx eax, byte [edx + 2]
test bl, 0x10
jne 0x10161aa6
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x10161b0e
and eax, 0x3f
test bl, 8
jne 0x10161ac1
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
jmp 0x10161b0e
test bl, 4
jne 0x10161ae5
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 0x10161b0e
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 0x10161b71
cmp ebp, 0x5f
je 0x10161b6a
shr eax, 7
movzx eax, byte [eax + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10161b47
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x10161b6a
cmp eax, 3
jne 0x10161b8b
mov ebp, 1
jmp 0x10161b8d
cmp edi, 0x100
jae 0x10161b8b
mov eax, dword [edx + 0x40]
test byte [ebx + eax], 0x10
je 0x10161b8b
mov ebp, 1
jmp 0x10161b8d
mov edx, eax
xor ebp, ebp
cmp esi, dword [edx + 0x78]
jb 0x10161bc1
mov eax, dword [edx + 0x88]
test eax, eax
je 0x10161bb4
cmp esi, dword [edx + 0x84]
jbe 0x10161bb4
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov ebx, dword [esp + 0x10]
xor ecx, ecx
xor edx, edx
jmp 0x10161dc3
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
cmp edx, 0xc0
jb 0x10161c78
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10161bef
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10161c70
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10161c02
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x10161c6a
and eax, 0x3f
test dl, 8
jne 0x10161c1d
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10161c6a
test dl, 4
jne 0x10161c41
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 0x10161c6a
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 0x10161ce3
cmp ebx, 0x5f
je 0x10161cd3
shr eax, 7
movzx eax, byte [eax + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10161ca3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x10161cd3
cmp eax, 3
je 0x10161cd3
mov ebx, dword [esp + 0x10]
xor edx, edx
xor ecx, ecx
jmp 0x10161dc3
mov ebx, dword [esp + 0x10]
mov edx, 1
mov ecx, edx
jmp 0x10161dc3
cmp edi, 0x100
jae 0x10161bb4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je 0x10161bb4
mov ebx, dword [esp + 0x10]
mov ecx, 1
mov edx, ecx
jmp 0x10161dc3
cmp esi, dword [ebx + 0x74]
je 0x10161d96
cmp esi, dword [ebx + 0x84]
ja 0x10161d2a
lea eax, [esi - 1]
mov dword [ebx + 0x84], eax
cmp dword [ebx + 0x54], 0
movzx ecx, byte [esi - 1]
je 0x10161d86
cmp ecx, 0x5f
je 0x10161d7f
mov eax, ecx
test eax, eax
jns 0x10161d42
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10161d5c
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x10161d7f
cmp eax, 3
jne 0x10161d96
mov ebp, 1
jmp 0x10161d98
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x10161d96
mov ebp, 1
jmp 0x10161d98
xor ebp, ebp
cmp esi, dword [ebx + 0x78]
jb 0x10161de2
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10161dbf
cmp esi, dword [ebx + 0x84]
jbe 0x10161dbf
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
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 0x10161e61
xor eax, eax
cmp ecx, ebp
sete al
jmp 0x10161e68
cmp dword [ebx + 0x54], 0
movzx ecx, byte [esi]
je 0x10161e48
cmp ecx, 0x5f
je 0x10161e3c
mov eax, ecx
test eax, eax
jns 0x10161df9
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10161e13
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x10161e3c
cmp eax, 3
je 0x10161e3c
xor edx, edx
xor ecx, ecx
jmp 0x10161dc3
mov edx, 1
mov ecx, edx
jmp 0x10161dc3
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je 0x10161dbf
mov ecx, 1
mov edx, ecx
jmp 0x10161dc3
xor eax, eax
cmp edx, ebp
setne al
test eax, eax
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10161eb2
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x10161ea6
push ebp
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016f5b0
add esp, 0x14
test eax, eax
je 0x10161ea6
mov eax, 1
jmp 0x10161ea8
xor eax, eax
test eax, eax
jne case.default.0x101627e5
jmp 0x10161eda
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x10161eda
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10161eda
cmp ecx, 1
je case.default.0x101627e5
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x101627e5
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je case.0x1016060c.13
mov eax, dword [ebx + 0x78]
dec eax
cmp esi, eax
jne case.0x1016060c.13
cmp dword [ebx + 0x18], 0
jne case.0x1016060c.13
cmp dword [ebx + 0x1c], 2
jne case.0x1016060c.13
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne case.0x1016060c.13
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d052
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a701
inc esi
mov dword [esp + 0x14], esi
test ebp, ebp
je case.0x101627e5.10
cmp esi, edx
jae case.0x101627e5.10
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne case.0x101627e5.10
lea esi, [ecx + 1]
mov dword [esp + 0x14], esi
mov ecx, esi
cmp esi, edx
jb 0x10161f31
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
mov edx, dword [esp + 0x18]
inc esi
inc edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x1016207a
cmp ecx, 0xc0
jb 0x1016207a
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10161fb8
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10162074
test cl, 0x10
jne 0x10161fd9
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 0x10162074
test cl, 8
jne 0x10162003
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 0x10162074
test cl, 4
jne 0x10162039
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 0x10162074
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.0x101627e5.10
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x101621ba
cmp edx, 0xc0
jb 0x101621ba
test dl, 0x20
jne 0x101620e6
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101621b4
test dl, 0x10
jne 0x1016210d
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 0x101621b4
test dl, 8
jne 0x1016213d
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 0x101621b4
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10162179
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 0x101621b4
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.0x101627e5
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 4
je case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x101622fa
cmp edx, 0xc0
jb 0x101622fa
test dl, 0x20
jne 0x10162226
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x101622f4
test dl, 0x10
jne 0x1016224d
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 0x101622f4
test dl, 8
jne 0x1016227d
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 0x101622f4
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101622b9
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 0x101622f4
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.0x101627e5.10
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
test ebp, ebp
je 0x1016243a
cmp edx, 0xc0
jb 0x1016243a
test dl, 0x20
jne 0x10162366
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10162434
test dl, 0x10
jne 0x1016238d
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 0x10162434
test dl, 8
jne 0x101623bd
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 0x10162434
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x101623f9
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 0x10162434
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.0x101627e5
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
je case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x10162566
cmp ecx, 0xc0
jb 0x10162566
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101624a4
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10162560
test cl, 0x10
jne 0x101624c5
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 0x10162560
test cl, 8
jne 0x101624ef
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 0x10162560
test cl, 4
jne 0x10162525
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 0x10162560
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.0x101627e5.10
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
test ebp, ebp
je 0x10162692
cmp ecx, 0xc0
jb 0x10162692
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101625d0
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016268c
test cl, 0x10
jne 0x101625f1
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 0x1016268c
test cl, 8
jne 0x1016261b
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 0x1016268c
test cl, 4
jne 0x10162651
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 0x1016268c
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.0x101627e5
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
test ebp, ebp
je 0x101627c2
cmp ecx, 0xc0
jb 0x101627c2
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101626fe
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101627ba
test cl, 0x10
jne 0x1016271f
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 0x101627ba
test cl, 8
jne 0x10162749
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 0x101627ba
test cl, 4
jne 0x1016277f
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 0x101627ba
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 0x1016284d
cmp edx, 0x85
je case.0x101627e5.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x101627e5
jmp dword [ecx*4 + 0x1016d66c]
cmp esi, dword [ebx + 0x78]
jb 0x1016282d
mov eax, dword [ebx + 0x88]
test eax, eax
je case.0x101627e5.10
cmp esi, dword [ebx + 0x84]
jbe case.0x101627e5.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp byte [esi], 0xa
jne case.0x101627e5.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 0x101605e0
sub ecx, 0x2028
je case.0x101627e5.11
sub ecx, 1
jne case.default.0x101627e5
cmp dword [ebx + 0x68], 0
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
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 0x101629a3
cmp edx, 0xc0
jb 0x101629a3
test dl, 0x20
jne 0x101628c7
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10162995
test dl, 0x10
jne 0x101628ee
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 0x10162995
test dl, 8
jne 0x1016291e
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 0x10162995
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016295a
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 0x10162995
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 0x10162a0a
cmp edi, 0x2000
je case.default.0x101627e5
cmp ebp, 0xa0
ja 0x101629f6
cmp edx, 0xa0
je case.default.0x101627e5
cmp edx, 9
je case.default.0x101627e5
cmp edx, 0x20
je case.default.0x101627e5
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 0x101605e0
cmp edx, 0x1680
je case.default.0x101627e5
cmp edx, 0x180e
jmp 0x101629d6
cmp ecx, 0x3000
ja case.0x10162a30.8203
cmp ebx, 0x3000
je case.default.0x101627e5
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10162a30.8203
movzx eax, byte [edx + 0x1016d684]
jmp dword [eax*4 + 0x1016d67c]
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
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 0x10162b4c
cmp ecx, 0xc0
jb 0x10162b4c
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10162a82
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10162b3e
test cl, 0x10
jne 0x10162aa3
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 0x10162b3e
test cl, 8
jne 0x10162acd
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 0x10162b3e
test cl, 4
jne 0x10162b03
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 0x10162b3e
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 0x10162ba7
cmp edi, 0x2000
je case.0x10162a30.8203
cmp ebp, 0xa0
ja 0x10162b8a
cmp ecx, 0xa0
je case.0x10162a30.8203
cmp ecx, 9
je case.0x10162a30.8203
cmp ecx, 0x20
jne case.default.0x101627e5
jmp case.0x10162a30.8203
cmp ecx, 0x1680
je case.0x10162a30.8203
cmp ecx, 0x180e
jne case.default.0x101627e5
jmp case.0x10162a30.8203
cmp edx, 0x3000
ja case.default.0x101627e5
cmp ebx, 0x3000
je case.0x10162a30.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x101627e5
movzx eax, byte [ecx + 0x1016d6ec]
jmp dword [eax*4 + 0x1016d6e4]
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, ecx
mov edx, ecx
test ebp, ebp
je 0x10162ce2
cmp ecx, 0xc0
jb 0x10162ce2
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10162c1e
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10162cda
test cl, 0x10
jne 0x10162c3f
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 0x10162cda
test cl, 8
jne 0x10162c69
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 0x10162cda
test cl, 4
jne 0x10162c9f
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 0x10162cda
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 0x10162d08
cmp edx, 0x85
je case.default.0x101627e5
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x101627e5.10
jmp dword [ecx*4 + 0x1016d74c]
sub ecx, 0x2028
je case.default.0x101627e5
sub ecx, 1
je case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov eax, edx
mov ecx, edx
test ebp, ebp
je 0x10162e49
cmp edx, 0xc0
jb 0x10162e49
test dl, 0x20
jne 0x10162d73
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10162e41
test dl, 0x10
jne 0x10162d9a
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 0x10162e41
test dl, 8
jne 0x10162dca
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 0x10162e41
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10162e06
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 0x10162e41
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 0x10162e6f
cmp ecx, 0x85
je case.0x101627e5.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x101627e5
jmp dword [edx*4 + 0x1016d75c]
sub edx, 0x2028
je case.0x101627e5.10
sub edx, 1
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
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 0x10162fef
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], edx
cmp edx, 0xc0
jb 0x10162fef
test dl, 0x20
jne 0x10162f03
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x10162fd1
test dl, 0x10
jne 0x10162f2a
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 0x10162fd1
test dl, 8
jne 0x10162f5a
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 0x10162fd1
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10162f96
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 0x10162fd1
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 + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10163009
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x101c12a8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
movzx eax, byte [eax + 1]
cmp eax, 0xa
ja case.default.0x10163034
mov dword [esp + 0x44], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x44], ebp
jmp dword [eax*4 + 0x1016d76c]
cmp dword [esp + 0x3c], 0xf
jmp 0x10163243
mov al, byte [ecx*8 + 0x101bda29]
cmp al, 9
je 0x10163232
cmp al, 5
je 0x10163232
cmp al, 8
je 0x10163232
xor ecx, ecx
jmp 0x10163237
mov eax, dword [esp + 0x18]
xor edx, edx
movzx ecx, byte [ecx*8 + 0x101bda29]
movzx eax, byte [eax + 2]
cmp eax, dword [ecx*4 + 0x101bd3c0]
setne dl
xor eax, eax
cmp dword [esp + 0x3c], 0x10
sete al
cmp edx, eax
jmp 0x10163243
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + 0x4c]
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x101bda29]
setne cl
xor eax, eax
cmp dword [esp + 0x3c], 0x10
jmp 0x1016323e
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + 0x4c]
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x101bda28]
setne cl
xor eax, eax
cmp dword [esp + 0x3c], 0x10
jmp 0x1016323e
movzx eax, byte [ecx*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x10163232
cmp eax, 3
je 0x10163232
xor ecx, ecx
jmp 0x10163237
cmp edx, 0x20
ja 0x10163120
je case.0x10163034.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x1016319b.8203
jmp dword [edx*4 + 0x1016d798]
cmp dword [esp + 0x24], 0x2000
ja 0x1016317b
cmp edx, 0x2000
je case.0x10163034.0
cmp edx, 0x1680
ja 0x10163173
je case.0x10163034.0
sub edx, 0x85
je case.0x10163034.0
sub edx, 0x1b
je case.0x10163034.0
movzx eax, byte [ecx*8 + 0x101bda29]
xor ecx, ecx
cmp dword [eax*4 + 0x101bd3c0], 6
sete cl
jmp 0x10163237
cmp edx, 0x180e
jmp 0x10163153
cmp edx, 0x3000
ja case.0x1016319b.8203
je case.0x10163034.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x1016319b.8203
movzx eax, byte [edx + 0x1016d7b4]
jmp dword [eax*4 + 0x1016d7ac]
movzx eax, byte [ecx*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x10163232
cmp eax, 3
je 0x10163232
cmp edx, 0x5f
je 0x10163232
xor ecx, ecx
jmp 0x10163237
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
movzx eax, byte [eax + 2]
cmp ecx, dword [eax*4 + 0x101bd8e8]
lea eax, [eax*4 + 0x101bd8e8]
jb 0x101631ef
mov ecx, dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x101631f6
mov ecx, dword [eax]
cmp edx, ecx
jae 0x101631e2
cmp dword [esp + 0x3c], 0x10
jmp 0x10163243
cmp dword [esp + 0x3c], 0x10
jne case.default.0x101627e5
jmp 0x10163249
cmp dword [esp + 0x28], 0x24
je 0x10163232
cmp dword [esp + 0x38], 0x40
je 0x10163232
cmp edx, 0x60
je 0x10163232
cmp edx, 0xa0
jb 0x10163226
cmp edx, 0xd7ff
jbe 0x10163232
cmp edx, 0xe000
jae 0x10163232
xor ecx, ecx
jmp 0x10163237
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x3c], 0xf
sete al
cmp ecx, eax
je case.default.0x101627e5
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 0x101605e0
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016a701
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 0x10163382
cmp eax, 0xc0
jb 0x10163382
test al, 0x20
jne 0x101632ac
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016337a
test al, 0x10
jne 0x101632d2
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 0x1016337a
test al, 8
jne 0x10163301
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 0x1016337a
test al, 4
movzx eax, byte [esi]
jne 0x1016333c
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 0x1016337a
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016339c
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx ebx, byte [eax*8 + 0x101bda2a]
cmp edi, ebp
jae 0x101634e5
nop word [eax + eax]
cmp dword [esp + 0x20], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x10163499
cmp edx, 0xc0
jb 0x10163499
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10163401
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10163495
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10163419
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016348f
and eax, 0x3f
test dl, 8
jne 0x10163439
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016348f
test dl, 4
jne 0x10163462
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 0x1016348f
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 + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x101634b3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx ecx, byte [eax*8 + 0x101bda2a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101bd438], eax
je 0x101634e1
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x101633c0
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101629e0
cmp esi, dword [ebx + 0x78]
jb 0x101629e0
cmp esi, dword [ebx + 0x84]
jbe 0x101629e0
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
inc edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x101605e0
mov edx, dword [esp + 0x18]
mov ebx, eax
mov ebp, dword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
jmp 0x101605e0
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 0x101635cc
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 0x101635bb
mov eax, dword [ecx + 0xc]
cmp dword [eax + edi*4], 0
jge 0x101635f4
mov eax, dword [ecx + 0x24]
add eax, ebx
test edx, edx
jg 0x10163594
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.0x101635ed
movzx eax, byte [ebx + 0x1016d81c]
jmp dword [eax*4 + 0x1016d814]
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
mov dword [esp + 0x24], ecx
jmp 0x101635c8
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 0x10163646
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edi*4]
test eax, eax
js 0x10163646
mov ecx, dword [ecx + edi*4 + 4]
sub ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x101635d0
mov ecx, dword [ebx + 0x50]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [esp + 0x24], ecx
jmp 0x101635d0
mov eax, ebx
inc ebp
and eax, 1
mov dword [esp + 0x18], ebp
movsx ebp, byte [ebx + 0x101bc900]
mov dword [esp + 0x44], eax
movsx eax, byte [ebx + 0x101bc90c]
mov ebx, bind
test eax, eax
cmove eax, ebx
mov dword [esp + 0x4c], eax
jmp 0x101636c6
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 0x101605cb
jns 0x101636da
test eax, eax
je 0x101605b9
cmp ebp, 1
jl 0x1016370f
mov ebx, 1
push edx
push dword [esp + 0x14]
push ecx
push esi
push edi
call fcn.1016e270
add esp, 0x14
test eax, eax
js 0x1016a72a
mov ecx, dword [esp + 0x24]
add esi, eax
mov edx, dword [esp + 0x40]
inc ebx
mov dword [esp + 0x14], esi
cmp ebx, ebp
jle 0x101636e4
mov ebx, dword [esp + 0x4c]
cmp ebp, ebx
je 0x101605cb
cmp dword [esp + 0x44], 0
je 0x1016a73f
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov ebx, dword [esp + 0x24]
mov ecx, ebp
nop word [eax + eax]
cmp ecx, dword [esp + 0x4c]
jge case.default.0x101627e5
push dword [esp + 0x40]
push dword [esp + 0x14]
push ebx
push esi
push edi
call fcn.1016e270
add esp, 0x14
test eax, eax
js 0x1016a72a
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.10160490
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x10163760
jmp 0x1016d427
mov ebx, dword [esp + 0x10]
push edx
push ebx
push ecx
push esi
push edi
call fcn.1016e270
add esp, 0x14
test eax, eax
js 0x1016a7f9
mov edx, dword [esp + 0x18]
add esi, eax
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x14], esi
jmp 0x101605d7
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.0x10163810
movzx eax, byte [ecx + 0x1016d82c]
jmp dword [eax*4 + 0x1016d824]
inc edi
mov dword [esp + 0x18], edi
cmp ecx, 8
jae 0x1016382c
mov eax, ecx
and eax, 1
mov dword [esp + 0x38], eax
jmp 0x10163834
mov dword [esp + 0x40], 1
movsx edx, byte [ecx + 0x101bc90c]
mov eax, bind
movsx ebp, byte [ecx + 0x101bc900]
test edx, edx
mov ecx, ebp
cmove edx, eax
mov eax, ebp
mov dword [esp + 0x24], edx
jmp 0x101638ae
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 0x101638aa
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 0x10163a04
cmp ecx, edi
jl 0x10163a49
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
nop
cmp esi, ebx
jae 0x1016a81d
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 0x101639d1
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016390d
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101639c9
test cl, 0x10
jne 0x1016392e
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 0x101639c9
test cl, 8
jne 0x10163958
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 0x101639c9
test cl, 4
jne 0x1016398e
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 0x101639c9
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 0x101639df
cmp dword [esp + 0x3c], 0x6e
jmp 0x101639f3
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.0x101627e5
inc edi
cmp edi, ebp
jle 0x101638d0
jmp 0x10163a41
cmp eax, 1
jl 0x10163a49
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
cmp esi, ebx
jae 0x1016a81d
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.0x101627e5
inc edi
cmp edi, ebp
jle 0x10163a10
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x101605ab
cmp dword [esp + 0x38], 0
jne 0x1016a8f6
mov edi, esi
mov dword [esp + 0x28], edi
test edx, edx
je 0x10163be2
cmp ebp, eax
jge 0x10163b9e
nop word [eax + eax]
mov ebx, dword [esp + 0x10]
cmp esi, dword [ebx + 0x78]
jae 0x10163bba
movzx edx, byte [esi]
mov ebx, 1
mov edi, edx
mov ecx, ebx
mov eax, edx
cmp edx, 0xc0
jb 0x10163b61
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10163ac5
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebx, 2
jmp 0x10163b59
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10163add
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x10163b53
and eax, 0x3f
test dl, 8
jne 0x10163afd
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10163b53
test dl, 4
jne 0x10163b26
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 0x10163b53
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 0x10163b6f
cmp dword [esp + 0x3c], 0x6e
jmp 0x10163b87
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 0x10163b9a
add esi, ebx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x24]
jl 0x10163a80
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016a847
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10163bdc
cmp esi, dword [ebx + 0x84]
jbe 0x10163bdc
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov edi, dword [esp + 0x28]
jmp 0x10163ba2
cmp ebp, eax
jge 0x10163c1b
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
nop dword [eax]
cmp esi, edi
jae 0x10163c37
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 0x10163c17
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x24]
jl 0x10163bf0
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016a8b9
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10163c5d
cmp esi, dword [ebx + 0x84]
jbe 0x10163c5d
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov edi, dword [esp + 0x28]
jmp 0x10163c1f
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.0x10163c99
movzx eax, byte [ecx + 0x1016d840]
jmp dword [eax*4 + 0x1016d838]
inc edi
mov dword [esp + 0x18], edi
cmp ecx, 8
jae 0x10163cb5
mov eax, ecx
and eax, 1
mov dword [esp + 0x38], eax
jmp 0x10163cbd
mov dword [esp + 0x40], 1
movsx eax, byte [ecx + 0x101bc90c]
movsx ebx, byte [ecx + 0x101bc900]
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [esp + 0x24], eax
jmp 0x10163d20
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 0x10163e7c
jmp 0x10163d40
mov ebx, 1
mov dword [esp + 0x24], 1
mov edi, ebx
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016a821
movzx edx, byte [esi]
inc esi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], esi
test ecx, ecx
je 0x10163e60
cmp edx, 0xc0
jb 0x10163e60
test dl, 0x20
jne 0x10163d86
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x10163e5c
test dl, 0x10
jne 0x10163db1
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 0x10163e5c
test dl, 8
jne 0x10163de5
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 0x10163e5c
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x10163e21
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 0x10163e5c
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.1016fc30
add esp, 0xc
test eax, eax
je case.default.0x101627e5
inc edi
cmp edi, ebx
jle 0x10163d40
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
cmp ebx, eax
je 0x101605ab
cmp dword [esp + 0x38], 0
jne 0x1016aba3
mov ebp, esi
cmp ebx, eax
jge 0x10163fcc
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x10163faa
mov ecx, dword [esp + 0x20]
mov edi, 1
movzx edx, byte [esi]
test ecx, ecx
je 0x10163f85
cmp edx, 0xc0
jb 0x10163f85
test dl, 0x20
jne 0x10163ee4
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x10163f7d
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x10163f03
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10163f79
and eax, 0x3f
test dl, 8
jne 0x10163f23
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10163f79
test dl, 4
jne 0x10163f4c
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 0x10163f79
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.1016fc30
add esp, 0xc
test eax, eax
je 0x10163fcc
add esi, edi
inc ebx
mov dword [esp + 0x14], esi
cmp ebx, dword [esp + 0x24]
jl 0x10163ea1
jmp 0x10163fcc
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x10163fcc
cmp esi, dword [ecx + 0x84]
jbe 0x10163fcc
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x1016d052
cmp dword [esp + 0x40], 0
mov ebx, dword [esp + 0x10]
je 0x1016ab2a
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
test ebp, ebp
je 0x1016406c
mov ebp, dword [esp + 0x18]
mov edx, 1
inc ebp
mov ecx, edx
movzx eax, byte [ebp]
cmp eax, 0xc0
jb 0x10164036
test al, 0x20
jne 0x10164010
lea edx, [ecx + 1]
jmp 0x10164034
test al, 0x10
jne 0x1016401b
mov edx, 3
jmp 0x10164034
test al, 8
jne 0x10164026
mov edx, 4
jmp 0x10164034
mov edx, 5
test al, 4
je 0x10164034
mov edx, 6
mov ecx, edx
mov edi, dword [ebx + 0x78]
mov eax, edi
sub eax, esi
cmp ecx, eax
jg 0x1016ad39
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.0x101627e5
test edx, edx
jg 0x10164045
mov edx, ebp
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov eax, dword [ebx + 0x78]
sub eax, esi
cmp eax, 1
jl 0x1016a701
mov edx, dword [esp + 0x18]
mov al, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp byte [edx + 1], al
jne case.default.0x101627e5
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x101605e0
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
test ebp, ebp
je 0x101642fd
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 0x10164181
movzx ecx, byte [ebp + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x101640e9
and eax, 0x1f
mov ebx, ecx
shl eax, 6
mov edi, 2
jmp 0x1016417d
movzx eax, byte [ebp + 2]
test bl, 0x10
jne 0x10164101
and ebx, 0xf
mov edi, 3
shl ebx, 6
or ebx, ecx
jmp 0x10164177
and eax, 0x3f
test bl, 8
jne 0x10164121
and ebx, 7
mov edi, 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [ebp + 3]
jmp 0x10164177
test bl, 4
jne 0x1016414a
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 0x10164177
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 0x101641b1
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
mov al, byte [ebx + edx]
cmp al, byte [ecx + edx]
jne case.default.0x101627e5
mov edx, dword [esp + 0x18]
inc edx
inc esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jmp 0x101605cf
inc esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x14], esi
mov edx, ecx
cmp ecx, 0xc0
jb 0x101642a3
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101641e1
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016429d
test cl, 0x10
jne 0x10164202
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 0x1016429d
test cl, 8
jne 0x1016422c
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 0x1016429d
test cl, 4
jne 0x10164262
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 0x1016429d
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 0x101605c1
mov eax, ebx
test eax, eax
jns 0x101642c2
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x101bf0a8]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x101642dd
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x101c12a8]
mov eax, dword [eax*8 + 0x101bda2c]
add eax, ebx
cmp edx, eax
jne case.default.0x101627e5
jmp 0x101605cb
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.0x101627e5
mov edx, dword [esp + 0x18]
inc esi
add edx, 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
jmp 0x101605e0
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 0x10164439
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 0x10164386
mov dword [esp + 0x38], ebp
cmp cl, 0x35
jne 0x1016438e
mov dword [esp + 0x38], 1
mov eax, dword [esp + 0x18]
add eax, 3
mov dword [esp + 0x18], eax
mov ecx, eax
jmp 0x1016443d
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 0x10164434
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 0x10164434
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 0x10164439
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 + 0x101bc90c]
movsx ebp, byte [eax + 0x101bc900]
mov eax, ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
test edi, edi
jne 0x1016443d
mov edi, bind
mov dword [esp + 0x28], edi
cmp dword [esp + 0x20], 0
movzx ebx, byte [eax]
je 0x101648ca
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 0x101648c7
movzx ecx, byte [eax + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x10164497
and ebx, 0x1f
mov dword [esp + 0x34], 2
shl ebx, 6
or ecx, ebx
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x1016455d
movzx eax, byte [eax + 2]
test bl, 0x10
jne 0x101644ba
and ebx, 0xf
mov dword [esp + 0x34], 3
shl ebx, 6
mov edi, 3
or ecx, ebx
jmp 0x10164551
and eax, 0x3f
test bl, 8
jne 0x101644e6
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 0x10164551
mov edx, dword [esp + 0x18]
test bl, 4
jne 0x1016451b
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 0x10164551
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 0x101645bb
mov eax, ecx
test eax, eax
jns 0x10164577
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10164591
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
mov eax, dword [eax*8 + 0x101bda2c]
add eax, edi
cmp eax, ebx
je 0x101645bb
lea ecx, [esp + 0x158]
push ecx
push eax
call fcn.1016f8e0
add esp, 8
jmp 0x101645bd
xor eax, eax
mov ebx, 1
mov dword [esp + 0x24], eax
cmp ebp, ebx
jl 0x101646e0
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 0x10164646
mov edx, dword [esp + 0x4c]
mov ecx, esi
sub edi, 4
jb 0x10164605
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016460a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x101645f4
cmp edi, 0xfffffffc
je 0x10164637
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10164642
cmp edi, 0xfffffffd
je 0x10164637
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10164642
cmp edi, 0xfffffffe
je 0x10164637
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10164642
cmp edi, 0xffffffff
je 0x10164637
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10164642
mov edi, dword [esp + 0x34]
add esi, edi
jmp 0x101646cb
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
test edi, edi
jle 0x1016ad54
mov eax, ecx
sub eax, edi
cmp esi, eax
ja 0x1016ad54
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x10164681
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10164686
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10164670
cmp edi, 0xfffffffc
je 0x101646c3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016ad54
cmp edi, 0xfffffffd
je 0x101646c3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016ad54
cmp edi, 0xfffffffe
je 0x101646c3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016ad54
cmp edi, 0xffffffff
je 0x101646c3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016ad54
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 0x101645e5
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x101605ab
cmp dword [esp + 0x38], 0
jne 0x1016ad74
mov ebx, esi
mov dword [esp + 0x38], ebx
cmp ebp, eax
jge 0x1016481b
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 0x1016477f
mov edx, dword [esp + 0x4c]
mov edi, ebx
mov ecx, esi
sub edi, 4
jb 0x10164742
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10164747
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10164731
cmp edi, 0xfffffffc
je 0x10164774
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016477b
cmp edi, 0xfffffffd
je 0x10164774
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016477b
cmp edi, 0xfffffffe
je 0x10164774
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016477b
cmp edi, 0xffffffff
je 0x10164774
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016477b
add esi, ebx
jmp 0x10164800
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x24]
test ebx, ebx
jle 0x10164893
mov eax, ecx
sub eax, ebx
cmp esi, eax
ja 0x10164893
mov edi, ebx
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x101647b8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x101647bd
add ecx, 4
add edx, 4
sub edi, 4
jae 0x101647a7
cmp edi, 0xfffffffc
je 0x101647fa
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10164893
cmp edi, 0xfffffffd
je 0x101647fa
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10164893
cmp edi, 0xfffffffe
je 0x101647fa
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10164893
cmp edi, 0xffffffff
je 0x101647fa
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10164893
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 0x10164720
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
jne 0x101605cb
cmp esi, ebx
jbe 0x10169e34
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x10164880
nop dword [eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x10164870
mov dword [esp + 0x14], esi
cmp ecx, ebx
mov ecx, dword [esp + 0x10]
ja 0x10164832
mov edx, dword [esp + 0x18]
mov edi, ecx
jmp 0x10169e3c
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x101648be
cmp esi, dword [ecx + 0x78]
jb 0x101648be
cmp esi, dword [ecx + 0x84]
jbe 0x101648be
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov ebx, dword [esp + 0x38]
jmp 0x1016481f
inc eax
jmp 0x101648cd
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
mov ecx, 1
cmp edx, 0x2e
jb 0x1016499f
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x3c]
movzx edi, byte [eax + ebx]
cmp ebp, 1
jl 0x1016491c
mov edx, dword [ecx + 0x78]
mov ecx, 1
cmp esi, edx
jae 0x1016a81d
movzx eax, byte [esi]
cmp ebx, eax
je 0x1016490e
cmp edi, eax
jne case.default.0x101627e5
inc esi
inc ecx
mov dword [esp + 0x14], esi
cmp ecx, ebp
jle 0x101648f7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
cmp ebp, eax
je 0x101605cb
cmp dword [esp + 0x38], 0
jne 0x1016aedf
mov edx, dword [esp + 0x24]
mov ebp, esi
cmp edx, eax
jge 0x1016495b
mov ecx, dword [ecx + 0x78]
cmp esi, ecx
jae 0x10164977
movzx eax, byte [esi]
cmp ebx, eax
je 0x1016494f
cmp edi, eax
jne 0x1016495b
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, dword [esp + 0x28]
jl 0x10164940
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x10169df4
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1016495f
cmp esi, dword [ebx + 0x84]
jbe 0x1016495f
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
jmp 0x1016495f
cmp ebp, 1
jl 0x101649cd
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x78]
nop dword [eax + eax]
cmp esi, edx
jae 0x1016a81d
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp ebx, eax
jne case.default.0x101627e5
inc ecx
cmp ecx, ebp
jle 0x101649b0
cmp ebp, edi
je 0x101605cb
cmp dword [esp + 0x38], 0
jne 0x1016af74
mov edx, dword [esp + 0x28]
mov edi, esi
cmp ebp, edx
jge 0x10164a06
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x10164a22
movzx eax, byte [esi]
cmp ebx, eax
jne 0x10164a06
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x101649f1
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x10169e6a
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10164a0a
cmp esi, dword [ebx + 0x84]
jbe 0x10164a0a
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
jmp 0x10164a0a
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
mov eax, dword [esp + 0x18]
test ebp, ebp
je 0x10164cc9
movzx ebx, byte [eax + 1]
lea ecx, [eax + 2]
mov dword [esp + 0x18], ecx
cmp ebx, 0xc0
jb 0x10164b4f
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 0x20
jne 0x10164a8f
and ebx, 0x1f
shl ebx, 6
or ebx, eax
inc ecx
jmp 0x10164b4b
test bl, 0x10
jne 0x10164ab0
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 0x10164b4b
test bl, 8
jne 0x10164ada
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 0x10164b4b
test bl, 4
jne 0x10164b10
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 0x10164b4b
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 0x10164c50
movzx eax, byte [esi]
and eax, 0x3f
test dl, 0x20
jne 0x10164b88
and edx, 0x1f
shl edx, 6
or edx, eax
inc esi
jmp 0x10164c44
test dl, 0x10
jne 0x10164ba9
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 0x10164c44
test dl, 8
jne 0x10164bd3
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 0x10164c44
test dl, 4
jne 0x10164c09
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 0x10164c44
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 0x10164c70
cmp ebx, eax
je case.default.0x101627e5
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
cmp ebx, 0x7f
jbe 0x10164cae
mov eax, ebx
test eax, eax
jns 0x10164c7e
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x101bf0a8]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x10164c99
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x101c12a8]
mov eax, dword [eax*8 + 0x101bda2c]
add eax, ebx
jmp 0x10164cbd
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.0x101627e5
cmp eax, edi
jmp 0x10164c59
movzx edx, byte [esi]
inc esi
movzx ecx, byte [eax + 1]
mov dword [esp + 0x14], esi
cmp ecx, edx
je case.default.0x101627e5
cmp dword [esp + 0x3c], 0x20
jne 0x10164cf3
mov eax, dword [ebx + 0x3c]
movzx eax, byte [eax + ecx]
cmp eax, edx
je case.default.0x101627e5
mov edx, dword [esp + 0x18]
add edx, 2
mov dword [esp + 0x18], edx
jmp 0x101605e0
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 0x10164e22
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 0x10164d51
mov dword [esp + 0x38], ebp
cmp cl, 0x4f
jne 0x10164d59
mov dword [esp + 0x38], 1
add ebx, 3
mov ecx, ebx
jmp 0x10164e22
mov ebx, dword [esp + 0x18]
xor ebp, ebp
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], ebp
mov ecx, ebx
jmp 0x10164e1a
mov ebx, dword [esp + 0x18]
mov ebp, 1
inc ebx
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], ebp
mov ecx, ebx
jmp 0x10164e1a
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 0x10164e22
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 0x10164e22
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 + 0x101bc900]
movsx eax, byte [eax + 0x101bc90c]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], eax
test eax, eax
jne 0x10164e22
mov dword [esp + 0x28], getsockname
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 0x10164f67
cmp ebx, 0xc0
jb 0x10164f67
test bl, 0x20
jne 0x10164e72
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 0x10164f5b
test bl, 0x10
jne 0x10164ea1
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 0x10164f5b
test bl, 8
jne 0x10164edc
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 0x10164f5b
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 4
jne 0x10164f1c
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 0x10164f57
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 0x10165306
cmp dword [esp + 0x20], 0
je 0x10164fb1
cmp edx, 0x7f
jbe 0x10164fb1
shr eax, 7
movzx eax, byte [eax + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10164f98
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx eax, word [eax*2 + 0x101c12a8]
mov edx, dword [eax*8 + 0x101bda2c]
add edx, edi
jmp 0x10164fbc
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 0x101650f2
cmp ebp, edi
jl 0x10165125
nop dword [eax + eax]
cmp esi, dword [ecx + 0x78]
jae 0x1016a821
movzx edx, byte [esi]
inc esi
mov dword [esp + 0x14], edx
mov eax, edx
mov dword [esp + 0x14], esi
cmp edx, 0xc0
jb 0x101650d3
test dl, 0x20
jne 0x1016501c
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x101650cd
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x10165043
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x101650c9
test dl, 8
jne 0x10165066
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 0x101650c9
test dl, 4
jne 0x10165095
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 0x101650c9
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.0x101627e5
mov edx, dword [esp + 0x3c]
cmp edx, eax
je case.default.0x101627e5
inc edi
cmp edi, ebp
jle 0x10164fe0
jmp 0x10165125
cmp ebp, 1
jl 0x10165125
mov ecx, dword [ecx + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x1016a81d
movzx eax, byte [esi]
cmp ebx, eax
je case.default.0x101627e5
cmp edx, eax
je case.default.0x101627e5
inc esi
inc edi
mov dword [esp + 0x14], esi
cmp edi, ebp
jle 0x10165100
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp ebp, eax
je 0x101605bd
cmp dword [esp + 0x38], 0
jne 0x1016aff4
cmp dword [esp + 0x20], 0
mov edi, esi
mov dword [esp + 0x24], edi
je 0x1016529c
cmp ebp, eax
jge 0x10165254
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
jae 0x10165270
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x10165235
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016519c
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x10165231
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101651b4
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016522b
and eax, 0x3f
test dl, 8
jne 0x101651d4
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016522b
test dl, 4
jne 0x101651fd
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 0x1016522b
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 0x10165250
cmp dword [esp + 0x3c], eax
je 0x10165250
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10165160
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x10169ea6
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10165296
cmp esi, dword [ebx + 0x84]
jbe 0x10165296
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov edi, dword [esp + 0x24]
jmp 0x10165258
cmp ebp, eax
jge 0x101652c2
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x101652de
movzx eax, byte [esi]
cmp ebx, eax
je 0x101652c2
cmp edx, eax
je 0x101652c2
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x101652a7
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x10169f09
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x101652c6
cmp esi, dword [ebx + 0x84]
jbe 0x101652c6
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
jmp 0x101652c6
mov edx, dword [esp + 0x20]
mov ecx, 1
mov dword [esp + 0x3c], ecx
test edx, edx
je 0x10165461
mov edi, dword [esp + 0x34]
cmp ebp, ecx
jl 0x10165496
mov edx, dword [esp + 0x10]
nop dword [eax + eax]
cmp esi, dword [edx + 0x78]
jae 0x1016b1dc
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 0x1016544a
mov al, byte [esi]
test bl, 0x20
jne 0x1016536b
and ebx, 0x1f
movzx eax, al
inc esi
shl ebx, 6
jmp 0x10165441
lea ecx, [esi + 1]
test bl, 0x10
jne 0x1016538f
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 0x10165439
lea edx, [esi + 2]
test bl, 8
jne 0x101653bb
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 0x10165435
movzx eax, al
lea edi, [esi + 3]
and eax, 0x3f
test bl, 4
jne 0x101653f2
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 0x10165435
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.0x101627e5
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, ebp
jle 0x10165330
jmp 0x10165492
cmp ebp, 1
jl 0x10165507
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x1016aa98
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp ebx, eax
je case.default.0x101627e5
inc ecx
cmp ecx, ebp
jle 0x10165471
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp ebp, eax
je 0x101605cb
cmp dword [esp + 0x38], 0
jne 0x1016b202
mov ebx, esi
mov dword [esp + 0x24], ebx
test edx, edx
je 0x1016566e
cmp ebp, eax
jge 0x101655c6
mov ebx, dword [esp + 0x34]
nop word [eax + eax]
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x10165643
movzx edx, byte [esi]
mov edi, 1
cmp edx, 0xc0
jb 0x101655af
test dl, 0x20
jne 0x1016550d
movzx eax, byte [esi + 1]
mov edi, 2
and edx, 0x1f
jmp 0x101655a3
mov edi, dword [esp + 0x34]
jmp 0x10165496
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x1016552c
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x101655a3
and eax, 0x3f
test dl, 8
jne 0x1016554c
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x101655a3
test dl, 4
jne 0x10165575
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 0x101655a3
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 0x101655c2
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, eax
jl 0x101654d0
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
jne 0x101605cb
cmp esi, ebx
jbe 0x10169e34
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x10165630
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x10165620
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x10]
cmp ecx, ebx
ja 0x101655e0
mov edi, edx
mov edx, dword [esp + 0x18]
jmp 0x10169e3c
mov eax, dword [edx + 0x88]
test eax, eax
je 0x10165665
cmp esi, dword [edx + 0x84]
jbe 0x10165665
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov ebx, dword [esp + 0x24]
jmp 0x101655ca
mov edx, dword [esp + 0x10]
cmp ebp, eax
jge 0x101656bb
mov ecx, dword [edx + 0x78]
nop dword [eax]
cmp esi, ecx
jae 0x10165699
movzx eax, byte [esi]
cmp edi, eax
je 0x101656bb
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x28]
jl 0x10165680
jmp 0x101656bb
mov eax, dword [edx + 0x88]
test eax, eax
je 0x101656bb
cmp esi, dword [edx + 0x84]
jbe 0x101656bb
mov dword [edx + 0x64], 1
cmp eax, 1
jg 0x1016d052
cmp dword [esp + 0x40], 0
jne 0x101605cb
cmp esi, ebx
je 0x10169e34
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edx, dword [esp + 0x10]
dec esi
mov dword [esp + 0x14], esi
cmp esi, ebx
jne 0x101656d0
mov edi, edx
mov edx, dword [esp + 0x18]
jmp 0x10169e3c
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 0x10165823
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 0x10165823
mov edi, dword [esp + 0x18]
xor ebp, ebp
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], ebp
mov ecx, edi
jmp 0x1016581b
mov edi, dword [esp + 0x18]
mov ebp, 1
inc edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], ebp
mov ecx, edi
jmp 0x1016581b
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 0x10165823
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 0x10165823
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 + 0x101bc900]
movsx eax, byte [eax + 0x101bc90c]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], eax
test eax, eax
jne 0x10165823
mov dword [esp + 0x34], getsockname
movzx edi, byte [edi]
lea eax, [ecx + 1]
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], eax
cmp edi, 0x10
je 0x10165844
cmp edi, 0xf
je 0x10165844
or edx, 0xffffffff
or eax, edx
or ecx, edx
jmp 0x10165866
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 0x10166437
test eax, eax
js 0x10166741
cmp ecx, 0xa
ja case.default.0x10163034
jmp dword [edx*4 + 0x1016d84c]
cmp dword [esp + 0x48], 0
jne case.default.0x101627e5
mov ecx, 1
cmp ebp, ecx
jl 0x10166437
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a701
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov dword [esp + 0x14], esi
je 0x101658ec
cmp eax, 0xc0
jb 0x101658ec
test al, 0x20
jne 0x101658ca
inc esi
jmp 0x101658e8
test al, 0x10
jne 0x101658d3
add esi, 2
jmp 0x101658e8
test al, 8
jne 0x101658dc
add esi, 3
jmp 0x101658e8
test al, 4
jne 0x101658e5
add esi, 4
jmp 0x101658e8
add esi, 5
mov dword [esp + 0x14], esi
inc ecx
cmp ecx, ebp
jle 0x101658a5
jmp 0x10166437
mov edi, 1
cmp ebp, edi
jl 0x10166433
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016a81d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10165a1c
cmp eax, 0xc0
jb 0x10165a1c
test al, 0x20
jne 0x10165948
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10165a16
test al, 0x10
jne 0x1016596e
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 0x10165a16
test al, 8
jne 0x1016599d
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 0x10165a16
test al, 4
movzx eax, byte [esi]
jne 0x101659d8
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 0x10165a16
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10165a36
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp eax, 9
je 0x10165a5b
cmp eax, 5
je 0x10165a5b
cmp eax, 8
je 0x10165a5b
xor eax, eax
jmp 0x10165a60
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x101627e5
inc edi
cmp edi, ebp
jle 0x10165906
jmp 0x10166433
mov edi, 1
cmp ebp, edi
jl 0x10166433
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016a81d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10165b9e
cmp eax, 0xc0
jb 0x10165b9e
test al, 0x20
jne 0x10165aca
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10165b98
test al, 0x10
jne 0x10165af0
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 0x10165b98
test al, 8
jne 0x10165b1f
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 0x10165b98
test al, 4
movzx eax, byte [esi]
jne 0x10165b5a
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 0x10165b98
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10165bb8
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x50]
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp dword [eax*4 + 0x101bd3c0], edx
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x101627e5
inc edi
cmp edi, ebp
jle 0x10165a88
jmp 0x10166433
mov edi, 1
cmp ebp, edi
jl 0x10166433
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016a81d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10165d1a
cmp eax, 0xc0
jb 0x10165d1a
test al, 0x20
jne 0x10165c44
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x10165d14
test al, 0x10
jne 0x10165c6a
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 0x10165d14
test al, 8
jne 0x10165c99
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 0x10165d14
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x10165cd6
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 0x10165d14
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10165d34
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x101627e5
inc edi
cmp edi, ebp
jle 0x10165c02
jmp 0x10166433
mov edi, 1
cmp ebp, edi
jl 0x10166433
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016a81d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10165e8f
cmp eax, 0xc0
jb 0x10165e8f
test al, 0x20
jne 0x10165db9
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x10165e89
test al, 0x10
jne 0x10165ddf
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 0x10165e89
test al, 8
jne 0x10165e0e
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 0x10165e89
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x10165e4b
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 0x10165e89
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10165ea9
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda28]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x101627e5
inc edi
cmp edi, ebp
jle 0x10165d77
jmp 0x10166433
mov edi, 1
cmp ebp, edi
jl 0x10166433
mov ebx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, ebx
jae 0x1016a81d
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov dword [esp + 0x14], esi
mov edx, eax
je 0x10166006
cmp eax, 0xc0
jb 0x10166006
test al, 0x20
jne 0x10165f32
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x10166000
test al, 0x10
jne 0x10165f58
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 0x10166000
test al, 8
jne 0x10165f87
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 0x10166000
test al, 4
movzx eax, byte [esi]
jne 0x10165fc2
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 0x10166000
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10166020
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x10166047
cmp eax, 3
je 0x10166047
xor eax, eax
jmp 0x1016604c
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x101627e5
inc edi
cmp edi, ebp
jle 0x10165ef0
jmp 0x10166433
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x10166437
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
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 0x10166196
mov dword [esp + 0x24], ecx
cmp ecx, 0xc0
jb 0x10166196
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101660c8
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166184
test cl, 0x10
jne 0x101660e9
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 0x10166184
test cl, 8
jne 0x10166113
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 0x10166184
test cl, 4
jne 0x10166149
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 0x10166184
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 0x101661b3
cmp edx, 0x20
je case.0x1016628d.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x1016628d.8203
jmp dword [eax*4 + 0x1016d878]
cmp edi, 0x2000
ja 0x10166265
cmp ebx, 0x2000
je case.0x1016628d.8193
cmp ecx, 0x1680
ja 0x1016625d
je case.0x1016628d.8193
mov eax, ecx
sub eax, 0x85
je case.0x1016628d.8193
sub eax, 0x1b
je case.0x1016628d.8193
mov eax, ecx
test eax, eax
jns 0x101661fc
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10166216
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp dword [eax*4 + 0x101bd3c0], 6
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x101627e5
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 0x10166075
jmp 0x10166433
cmp ecx, 0x180e
jmp 0x101661ed
cmp ebp, 0x3000
ja case.0x1016628d.8203
cmp dword [esp + 0x24], 0x3000
je case.0x1016628d.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x1016628d.8203
movzx eax, byte [eax + 0x1016d894]
jmp dword [eax*4 + 0x1016d88c]
cmp dword [esp + 0x48], 0
jne case.default.0x101627e5
jmp 0x1016623f
mov ebx, 1
cmp ebp, ebx
jl 0x10166437
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x1016a81d
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 0x101663cf
cmp eax, 0xc0
jb 0x101663cf
test al, 0x20
jne 0x101662f9
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x101663c7
test al, 0x10
jne 0x1016631f
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 0x101663c7
test al, 8
jne 0x1016634e
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 0x101663c7
test al, 4
movzx eax, byte [esi]
jne 0x10166389
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 0x101663c7
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x101663e9
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x10166415
cmp eax, 3
je 0x10166415
cmp edi, 0x5f
je 0x10166415
xor eax, eax
jmp 0x1016641a
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x101627e5
inc ebx
cmp ebx, dword [esp + 0x3c]
jle 0x101662b5
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
cmp ebp, edx
je 0x101605cb
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x4c]
jne 0x1016b424
mov edi, esi
mov dword [esp + 0x38], edi
test eax, eax
js 0x10168809
cmp eax, 0xa
ja case.default.0x10163034
jmp dword [eax*4 + 0x1016d8f4]
mov edi, 1
cmp ebp, edi
jl 0x10166433
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016a81d
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov edx, ecx
mov dword [esp + 0x14], esi
je 0x10166584
cmp ecx, 0xc0
jb 0x10166584
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x101664c2
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016657e
test cl, 0x10
jne 0x101664e3
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 0x1016657e
test cl, 8
jne 0x1016650d
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 0x1016657e
test cl, 4
jne 0x10166543
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 0x1016657e
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 + 0x101bd8e8]
lea eax, [eax*4 + 0x101bd8e8]
jb 0x101665ad
mov edx, dword [eax]
nop word [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x101665c6
mov edx, dword [eax]
cmp ecx, edx
jae 0x101665a0
cmp dword [esp + 0x48], 0
je case.default.0x101627e5
inc edi
cmp edi, ebp
jle 0x10166480
jmp 0x10166433
cmp dword [esp + 0x48], 0
jne case.default.0x101627e5
jmp 0x101665b8
mov ebp, 1
cmp dword [esp + 0x3c], ebp
jl 0x1016795f
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
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 0x101666f3
cmp ecx, 0xc0
jb 0x101666f3
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016662b
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101666e7
test cl, 0x10
jne 0x1016664c
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 0x101666e7
test cl, 8
jne 0x10166676
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 0x101666e7
test cl, 4
jne 0x101666ac
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 0x101666e7
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 0x1016671e
cmp edx, 0x40
je 0x1016671e
cmp edi, 0x60
je 0x1016671e
cmp ebx, 0xa0
jb 0x10166712
cmp ecx, 0xd7ff
jbe 0x1016671e
cmp ecx, 0xe000
jae 0x1016671e
xor eax, eax
jmp 0x10166723
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x101627e5
mov ebx, dword [esp + 0x10]
inc ebp
cmp ebp, dword [esp + 0x3c]
jle 0x101665e2
jmp 0x1016642f
cmp edi, 0x16
jne 0x10166a2a
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x10166437
nop dword [eax + eax]
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x1016a701
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 0x10166882
cmp eax, 0xc0
jb 0x10166882
test al, 0x20
jne 0x101667a7
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016687a
test al, 0x10
jne 0x101667cd
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 0x1016687a
test al, 8
jne 0x101667ff
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 0x1016687a
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016683c
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 0x1016687a
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016689c
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx ebx, byte [eax*8 + 0x101bda2a]
cmp edi, ebp
jae 0x101669e5
nop word [eax + eax]
cmp dword [esp + 0x20], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x10166999
cmp edx, 0xc0
jb 0x10166999
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10166901
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10166995
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10166919
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016698f
and eax, 0x3f
test dl, 8
jne 0x10166939
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016698f
test dl, 4
jne 0x10166962
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 0x1016698f
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 + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x101669b3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx ecx, byte [eax*8 + 0x101bda2a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101bd438], eax
je 0x101669e1
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x101668c0
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10166a10
cmp esi, dword [ebx + 0x78]
jb 0x10166a10
cmp esi, dword [ebx + 0x84]
jbe 0x10166a10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x44], eax
cmp eax, ebp
jle 0x10166760
jmp 0x10166433
mov ecx, dword [esp + 0x20]
lea eax, [edi - 6]
test ecx, ecx
je 0x101675c3
cmp eax, 0xf
ja case.default.0x10163034
jmp dword [eax*4 + 0x1016d920]
mov edi, 1
cmp ebp, edi
jl 0x10167968
nop word [eax + eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016a701
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10166a97
push dword [esp + 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016f5b0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x101627e5
jmp 0x10166abc
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x10166abc
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10166abc
cmp edx, 1
je case.default.0x101627e5
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x101627e5
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x10166af1
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x10166af1
cmp dword [ebx + 0x18], 0
jne 0x10166af1
cmp dword [ebx + 0x1c], 2
jne 0x10166af1
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10166af1
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d052
mov edx, dword [ebx + 0x78]
inc esi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x10166b15
mov ecx, esi
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10166b11
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10166b00
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x10166a60
jmp 0x10166433
mov edi, 1
cmp ebp, edi
jl 0x10167968
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016a81d
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x10166b65
mov ecx, esi
nop dword [eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10166b61
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10166b50
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x10166b33
jmp 0x10166433
mov eax, dword [ebx + 0x78]
sub eax, ebp
cmp esi, eax
ja case.default.0x101627e5
add esi, ebp
mov dword [esp + 0x14], esi
jmp 0x1016643b
mov ebx, 1
cmp ebp, ebx
jl 0x1016643b
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
nop dword [eax + eax]
cmp esi, ebp
jae 0x1016a821
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 0x10166ca5
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166bdf
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166c9b
test cl, 0x10
jne 0x10166c00
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 0x10166c9b
test cl, 8
jne 0x10166c2a
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 0x10166c9b
test cl, 4
jne 0x10166c60
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 0x10166c9b
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 0x10166cdb
cmp edx, 0x85
je case.0x10166cc0.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x101627e5
jmp dword [ecx*4 + 0x1016d960]
cmp edi, ebp
jae case.0x10166cc0.10
cmp byte [esi], 0xa
mov ecx, dword [esp + 0x10]
jne 0x10166d00
inc esi
mov dword [esp + 0x14], esi
jmp 0x10166d00
sub ecx, 0x2028
je case.0x10166cc0.11
sub ecx, 1
jne case.default.0x101627e5
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x68], 0
jne case.default.0x101627e5
jmp 0x10166d00
mov ecx, dword [esp + 0x10]
inc ebx
cmp ebx, dword [esp + 0x3c]
jle 0x10166ba0
jmp 0x1016642f
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016643b
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
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 0x10166e2f
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x10166d65
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x10166e21
test cl, 0x10
jne 0x10166d86
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 0x10166e21
test cl, 8
jne 0x10166db0
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 0x10166e21
test cl, 4
jne 0x10166de6
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 0x10166e21
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 0x10166ea0
cmp edi, 0x2000
je case.default.0x101627e5
cmp ebp, 0xa0
ja 0x10166e86
cmp ecx, 0xa0
je case.default.0x101627e5
cmp ecx, 9
je case.default.0x101627e5
cmp ecx, 0x20
je case.default.0x101627e5
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 0x10166d21
jmp 0x10166433
cmp ecx, 0x1680
je case.default.0x101627e5
cmp ecx, 0x180e
je case.default.0x101627e5
jmp case.0x10166ec6.8203
cmp edx, 0x3000
ja case.0x10166ec6.8203
cmp ebx, 0x3000
je case.default.0x101627e5
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x10166ec6.8203
movzx eax, byte [ecx + 0x1016d978]
jmp dword [eax*4 + 0x1016d970]
mov dword [esp + 0x44], 1
cmp ebp, 1
jl 0x1016643b
nop
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
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 0x10166fdb
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x10166f26
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x10166fcd
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x10166f47
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x10166fcd
test dl, 8
jne 0x10166f6a
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 0x10166fcd
test dl, 4
jne 0x10166f99
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 0x10166fcd
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 0x1016703c
cmp edi, 0x2000
je case.0x10167066.8193
cmp ebp, 0xa0
ja 0x10167026
cmp edx, 0xa0
je case.0x10167066.8193
cmp edx, 9
je case.0x10167066.8193
cmp edx, 0x20
jne case.default.0x101627e5
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 0x10166ee0
jmp 0x10166433
cmp edx, 0x1680
je case.0x10167066.8193
cmp edx, 0x180e
jne case.default.0x101627e5
jmp case.0x10167066.8193
cmp ecx, 0x3000
ja case.default.0x101627e5
cmp ebx, 0x3000
je case.0x10167066.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x101627e5
movzx eax, byte [edx + 0x1016d9e0]
jmp dword [eax*4 + 0x1016d9d8]
mov edi, 1
cmp ebp, edi
jl 0x10167968
mov ebx, dword [ebx + 0x78]
nop dword [eax]
cmp esi, ebx
jae 0x1016a81d
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 0x1016716e
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x101670bf
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x10167166
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x101670e0
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x10167166
test dl, 8
jne 0x10167103
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 0x10167166
test dl, 4
jne 0x10167132
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 0x10167166
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 0x10167190
cmp ecx, 0x85
je case.default.0x101627e5
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10167189
jmp dword [edx*4 + 0x1016da40]
sub edx, 0x2028
je case.default.0x101627e5
sub edx, 1
je case.default.0x101627e5
inc edi
cmp edi, ebp
jle 0x10167080
jmp 0x10166433
mov edi, 1
cmp ebp, edi
jl 0x10167968
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016a81d
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 0x101672b1
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x10167202
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x101672a9
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x10167223
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x101672a9
test dl, 8
jne 0x10167246
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 0x101672a9
test dl, 4
jne 0x10167275
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 0x101672a9
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 0x101672d3
cmp ecx, 0x85
je case.0x101672cc.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x101627e5
jmp dword [edx*4 + 0x1016da50]
sub edx, 0x2028
je case.0x101672cc.10
sub edx, 1
jne case.default.0x101627e5
inc edi
cmp edi, ebp
jle 0x101671c3
jmp 0x10166433
mov edx, 1
cmp ebp, edx
jl 0x1016643b
mov edi, dword [ebx + 0x78]
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x14], ecx
mov eax, ecx
mov dword [esp + 0x14], esi
cmp ecx, 0xc0
jb 0x101673ff
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016733d
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x101673f9
test cl, 0x10
jne 0x1016735e
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 0x101673f9
test cl, 8
jne 0x10167388
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 0x101673f9
test cl, 4
jne 0x101673be
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 0x101673f9
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 0x10167413
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x101627e5
inc edx
cmp edx, ebp
jle 0x10167302
jmp 0x10166433
cmp ebp, 1
jl 0x1016643b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x101627e5
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.default.0x101627e5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167432
jmp 0x10166433
mov edi, 1
cmp ebp, edi
jl 0x10167968
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016a81d
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x10167499
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.default.0x101627e5
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x101674c5
mov ecx, esi
nop dword [eax + eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x101674c1
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x101674b0
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x10167475
jmp 0x10166433
cmp ebp, 1
jl 0x1016643b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x101627e5
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.default.0x101627e5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x101674e0
jmp 0x10166433
mov edi, 1
cmp ebp, edi
jl 0x10167968
mov ebx, dword [ebx + 0x78]
cmp esi, ebx
jae 0x1016a81d
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x10167547
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x101627e5
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x14], esi
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x10167575
mov ecx, esi
nop dword [eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10167571
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10167560
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x10167523
jmp 0x10166433
cmp ebp, 1
jl 0x1016643b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.default.0x101627e5
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x101627e5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167590
jmp 0x10166433
cmp eax, 0xf
ja case.default.0x10163034
jmp dword [eax*4 + 0x1016da60]
mov edi, 1
cmp ebp, edi
jl 0x10167968
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016a701
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10167615
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016f5b0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x101627e5
jmp 0x1016763a
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016763a
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016763a
cmp edx, 1
je case.default.0x101627e5
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x101627e5
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016766f
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016766f
cmp dword [ebx + 0x18], 0
jne 0x1016766f
cmp dword [ebx + 0x1c], 2
jne 0x1016766f
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016766f
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d052
inc esi
inc edi
mov dword [esp + 0x14], esi
cmp edi, ebp
jle 0x101675e0
jmp 0x10166433
mov eax, dword [ebx + 0x78]
sub eax, ebp
cmp esi, eax
ja 0x1016a701
add esi, ebp
mov dword [esp + 0x14], esi
jmp 0x1016643b
mov ecx, 1
cmp ebp, ecx
jl 0x10166437
mov edx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edx
jae 0x1016a701
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.default.0x101627e5
movzx eax, byte [eax + 0x1016dab0]
jmp dword [eax*4 + 0x1016daa0]
cmp esi, edx
jae case.0x101676d5.10
cmp byte [esi], 0xa
jne case.0x101676d5.10
inc esi
mov dword [esp + 0x14], esi
jmp case.0x101676d5.10
cmp dword [ebx + 0x68], 0
jne case.default.0x101627e5
inc ecx
cmp ecx, ebp
jle 0x101676b0
jmp 0x10166437
mov ecx, 1
cmp ebp, ecx
jl 0x10166437
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a701
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp eax, 9
je case.default.0x101627e5
cmp eax, 0x20
je case.default.0x101627e5
cmp eax, 0xa0
je case.default.0x101627e5
inc ecx
cmp ecx, ebp
jle 0x10167710
jmp 0x10166437
mov ecx, 1
cmp ebp, ecx
jl 0x10166437
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a701
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp eax, 9
je 0x1016777c
cmp eax, 0x20
je 0x1016777c
cmp eax, 0xa0
jne case.default.0x101627e5
inc ecx
cmp ecx, ebp
jle 0x10167757
jmp 0x10166437
mov ecx, 1
cmp ebp, ecx
jl 0x10166437
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a701
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.0x101677b7.14
movzx eax, byte [eax + 0x1016db34]
jmp dword [eax*4 + 0x1016db2c]
inc ecx
cmp ecx, ebp
jle 0x10167796
jmp 0x10166437
mov ecx, 1
cmp ebp, ecx
jl 0x10166437
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x1016a701
mov al, byte [esi]
inc esi
movzx eax, al
add eax, 0xfffffff6
mov dword [esp + 0x14], esi
cmp eax, 0x7b
ja case.default.0x101627e5
movzx eax, byte [eax + 0x1016dbb8]
jmp dword [eax*4 + 0x1016dbb0]
inc ecx
cmp ecx, ebp
jle 0x101677d8
jmp 0x10166437
cmp ebp, 1
jl 0x1016643b
mov edi, dword [ebx + 0x78]
mov edx, 1
nop
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x101627e5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167820
jmp 0x10166433
cmp ebp, 1
jl 0x1016643b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.default.0x101627e5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167858
jmp 0x10166433
cmp ebp, 1
jl 0x1016643b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.default.0x101627e5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167890
jmp 0x10166433
cmp ebp, 1
jl 0x1016643b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.default.0x101627e5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x101678c8
jmp 0x10166433
cmp ebp, 1
jl 0x1016643b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x101627e5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167900
jmp 0x10166433
cmp ebp, 1
jl 0x1016643b
mov edi, dword [ebx + 0x78]
mov edx, 1
cmp esi, edi
jae 0x1016a701
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x101627e5
inc esi
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x10167938
jmp 0x10166433
mov ebp, dword [esp + 0x3c]
jmp 0x10166437
mov edi, dword [esp + 0x28]
jmp 0x1016643b
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x10167b83
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x101679ea
cmp dword [esp + 0x20], 0
mov eax, 1
movzx ecx, byte [esi]
je 0x101679cd
cmp ecx, 0xc0
jb 0x101679cd
test cl, 0x20
jne 0x101679a7
mov eax, 2
jmp 0x101679cd
test cl, 0x10
jne 0x101679b3
mov eax, 3
jmp 0x101679cd
test cl, 8
jne 0x101679bf
mov eax, 4
jmp 0x101679cd
test cl, 4
mov eax, 0
setne al
add eax, 5
cmp dword [esp + 0x48], 0
jne 0x10167b83
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10167980
jmp 0x10167b83
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10167b83
cmp esi, dword [ebx + 0x84]
jbe 0x10167b83
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
jmp 0x10167b83
cmp ebp, edx
jge 0x10168800
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x10167b9b
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x10167b20
cmp eax, 0xc0
jb 0x10167b20
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10167a75
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x10167b1c
test al, 0x10
jne 0x10167a8f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x10167b16
test al, 8
jne 0x10167ab2
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 0x10167b16
test al, 4
jne 0x10167ae1
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 0x10167b16
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10167b3a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp eax, 9
je 0x10167b5f
cmp eax, 5
je 0x10167b5f
cmp eax, 8
je 0x10167b5f
xor eax, eax
jmp 0x10167b64
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x10167b7b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10167a30
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x40], 0
je 0x10169f4a
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10167b7f
cmp esi, dword [ebx + 0x84]
jbe 0x10167b7f
mov dword [ebx + 0x64], edi
cmp eax, 1
jg 0x1016d052
jmp 0x10167b7f
cmp ebp, edx
jge 0x10168800
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x10167d1c
cmp dword [esp + 0x20], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x10167cc0
cmp eax, 0xc0
jb 0x10167cc0
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10167c15
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x10167cbc
test al, 0x10
jne 0x10167c2f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x10167cb6
test al, 8
jne 0x10167c52
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 0x10167cb6
test al, 4
jne 0x10167c81
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 0x10167cb6
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10167cda
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x50]
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp dword [eax*4 + 0x101bd3c0], edx
sete cl
cmp ecx, dword [esp + 0x48]
je 0x10167b7b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10167bd0
jmp 0x10167b7b
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10167b7f
cmp esi, dword [ebx + 0x84]
jbe 0x10167b7f
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
jmp 0x10167b7f
cmp ebp, edx
jge 0x10168800
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x10167d1c
cmp dword [esp + 0x20], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x10167e4c
cmp eax, 0xc0
jb 0x10167e4c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10167da1
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x10167e48
test al, 0x10
jne 0x10167dbb
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x10167e42
test al, 8
jne 0x10167dde
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 0x10167e42
test al, 4
jne 0x10167e0d
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 0x10167e42
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10167e66
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je 0x10167b7b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10167d60
jmp 0x10167b7b
cmp ebp, edx
jge 0x10168800
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x10167d1c
cmp dword [esp + 0x20], 0
mov edi, 1
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x10167fa0
cmp eax, 0xc0
jb 0x10167fa0
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10167ef5
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x10167f9c
test al, 0x10
jne 0x10167f0f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x10167f96
test al, 8
jne 0x10167f32
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 0x10167f96
test al, 4
jne 0x10167f61
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 0x10167f96
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10167fba
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda28]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je 0x10167b7b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10167eb0
jmp 0x10167b7b
cmp ebp, edx
jge 0x10168800
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x10167b9b
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
je 0x10168100
cmp eax, 0xc0
jb 0x10168100
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x10168055
and eax, 0x1f
mov edi, 2
shl eax, 6
jmp 0x101680fc
test al, 0x10
jne 0x1016806f
and eax, 0xf
mov edi, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x101680f6
test al, 8
jne 0x10168092
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 0x101680f6
test al, 4
jne 0x101680c1
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 0x101680f6
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016811a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x10168141
cmp eax, 3
je 0x10168141
xor eax, eax
jmp 0x10168146
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x10167b7b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10168010
jmp 0x10167b7b
cmp ebp, edx
jge 0x10168800
nop
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x28], 1
cmp esi, dword [ebx + 0x78]
jae 0x10167d20
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 0x10168286
mov dword [esp + 0x24], edx
cmp edx, 0xc0
jb 0x10168286
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101681d2
and eax, 0x1f
mov dword [esp + 0x28], 2
shl eax, 6
mov edx, ecx
jmp 0x10168276
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101681f0
and edx, 0xf
mov dword [esp + 0x28], 3
shl edx, 6
or edx, ecx
jmp 0x10168270
and eax, 0x3f
test dl, 8
jne 0x10168213
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 0x10168270
test dl, 4
jne 0x1016823f
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 0x10168270
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 0x101682a3
cmp ecx, 0x20
je case.0x1016837f.8193
lea eax, [edx - 9]
cmp eax, 4
ja case.0x1016837f.8203
jmp dword [eax*4 + 0x1016dc34]
cmp edi, 0x2000
ja 0x10168357
cmp ebx, 0x2000
je case.0x1016837f.8193
cmp edx, 0x1680
ja 0x1016834f
je case.0x1016837f.8193
mov eax, edx
sub eax, 0x85
je case.0x1016837f.8193
sub eax, 0x1b
je case.0x1016837f.8193
mov eax, edx
test eax, eax
jns 0x101682ec
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x10168306
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp dword [eax*4 + 0x101bd3c0], 6
sete cl
cmp ecx, dword [esp + 0x48]
je 0x10167b7b
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 0x10168170
jmp 0x10167b7b
cmp edx, 0x180e
jmp 0x101682dd
cmp ebp, 0x3000
ja case.0x1016837f.8203
cmp dword [esp + 0x24], 0x3000
je case.0x1016837f.8193
lea eax, [edx - 0x2001]
cmp eax, 0x5e
ja case.0x1016837f.8203
movzx eax, byte [eax + 0x1016dc50]
jmp dword [eax*4 + 0x1016dc48]
cmp dword [esp + 0x48], 0
jne 0x10167b7b
jmp 0x1016832f
cmp ebp, edx
jge 0x10168800
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, 1
cmp esi, ebp
jae 0x10167d1c
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
mov ecx, eax
mov edx, eax
mov edi, eax
je 0x10168496
cmp eax, 0xc0
jb 0x10168496
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x101683e9
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x10168490
test al, 0x10
jne 0x10168403
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
jmp 0x1016848a
test al, 8
jne 0x10168426
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 0x1016848a
test al, 4
jne 0x10168455
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 0x1016848a
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x101684b0
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x101684dc
cmp eax, 3
je 0x101684dc
cmp edi, 0x5f
je 0x101684dc
xor eax, eax
jmp 0x101684e1
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x10167b7b
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 0x101683a2
jmp 0x10167b7b
cmp ebp, edx
jge 0x10168800
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x10167b9b
cmp dword [esp + 0x20], 0
movzx edx, byte [esi]
mov ecx, edx
je 0x10168604
cmp edx, 0xc0
jb 0x10168604
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10168569
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10168600
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10168584
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x101685fa
and eax, 0x3f
test dl, 8
jne 0x101685a4
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x101685fa
test dl, 4
jne 0x101685cd
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 0x101685fa
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 + 0x101bd8e8]
lea eax, [eax*4 + 0x101bd8e8]
jb 0x1016862d
mov ecx, dword [eax]
nop word [eax + eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x1016864e
mov ecx, dword [eax]
cmp edx, ecx
jae 0x10168620
cmp dword [esp + 0x48], 0
je 0x10167b7b
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10168520
jmp 0x10167b7b
cmp dword [esp + 0x48], 0
jne 0x10167b7b
jmp 0x10168638
cmp ebp, edx
jge 0x10168800
mov ebx, dword [esp + 0x10]
mov ebp, 1
cmp esi, dword [ebx + 0x78]
jae 0x101687d5
cmp dword [esp + 0x20], 0
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
je 0x1016877d
cmp edx, 0xc0
jb 0x1016877d
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101686bf
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 0x1016877d
movzx eax, byte [esi + 2]
and eax, 0x3f
test dl, 0x10
jne 0x101686ea
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 0x1016877d
test dl, 8
jne 0x10168717
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 0x1016877d
test dl, 4
jne 0x10168740
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 0x1016876d
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 0x101687a8
cmp ecx, 0x40
je 0x101687a8
cmp edi, 0x60
je 0x101687a8
cmp ebx, 0xa0
jb 0x1016879c
cmp edx, 0xd7ff
jbe 0x101687a8
cmp edx, 0xe000
jae 0x101687a8
xor eax, eax
jmp 0x101687ad
mov eax, 1
cmp eax, dword [esp + 0x48]
je 0x10167b7b
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 0x10168663
jmp 0x10167b7b
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10167b7f
cmp esi, dword [ebx + 0x84]
jbe 0x10167b7f
mov dword [ebx + 0x64], ebp
cmp eax, 1
jg 0x1016d052
jmp 0x10167b7f
mov ebx, dword [esp + 0x10]
jmp 0x10167b83
mov eax, dword [esp + 0x28]
cmp eax, 0x16
jne 0x10168b26
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x10168b0e
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x10168ae8
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 0x10168944
cmp eax, 0xc0
jb 0x10168944
test al, 0x20
jne 0x10168869
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016893c
test al, 0x10
jne 0x1016888f
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 0x1016893c
test al, 8
jne 0x101688c1
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 0x1016893c
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x101688fe
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 0x1016893c
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016895e
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx ebx, byte [eax*8 + 0x101bda2a]
cmp edi, ebp
jae 0x10168aa8
nop dword [eax + eax]
cmp dword [esp + 0x20], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x10168a5c
cmp edx, 0xc0
jb 0x10168a5c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101689c1
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10168a58
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101689dc
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10168a52
and eax, 0x3f
test dl, 8
jne 0x101689fc
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10168a52
test dl, 4
jne 0x10168a25
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 0x10168a52
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 + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x10168a76
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx ecx, byte [eax*8 + 0x101bda2a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101bd438], eax
je 0x10168aa4
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x10168980
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168ad3
cmp esi, dword [ebx + 0x78]
jb 0x10168ad3
cmp esi, dword [ebx + 0x84]
jbe 0x10168ad3
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x34]
jl 0x10168822
jmp 0x10168b0a
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168b0a
cmp esi, dword [ebx + 0x84]
jbe 0x10168b0a
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x40], 0
je 0x10169fab
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
add eax, 0xfffffffa
test ecx, ecx
je 0x101698dd
cmp eax, 0xf
ja case.default.0x10163034
jmp dword [eax*4 + 0x1016dcb0]
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x10168e47
nop dword [eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x10168c6b
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10168b83
push dword [esp + 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016f5b0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne 0x10168e47
jmp 0x10168ba8
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x10168ba8
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10168ba8
cmp edx, 1
je 0x10168e47
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je 0x10168e47
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x10168bdd
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x10168bdd
cmp dword [ebx + 0x18], 0
jne 0x10168bdd
cmp dword [ebx + 0x1c], 2
jne 0x10168bdd
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10168bdd
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d052
mov edx, dword [ebx + 0x78]
inc esi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x10168c05
mov ecx, esi
nop dword [eax + eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10168c01
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10168bf0
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, dword [esp + 0x34]
jl 0x10168b50
jmp 0x10168e47
mov ebx, dword [esp + 0x10]
cmp edx, 0x7fffffff
jge 0x10168c64
cmp ebp, edx
jge 0x10168e47
mov edi, dword [ebx + 0x78]
mov eax, dword [esp + 0x34]
cmp esi, edi
jae 0x10168c6b
inc esi
mov edx, edi
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x10168c5a
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10168c52
lea esi, [ecx + 1]
mov ecx, esi
cmp esi, edx
jb 0x10168c41
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, eax
jl 0x10168c30
jmp 0x10168e47
mov esi, dword [ebx + 0x78]
mov dword [esp + 0x14], esi
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168e47
cmp esi, dword [ebx + 0x84]
jbe 0x10168e47
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
jmp 0x10168e47
mov ebx, dword [esp + 0x10]
sub edx, ebp
mov ecx, dword [ebx + 0x78]
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x10168cc7
mov eax, dword [ebx + 0x88]
mov esi, ecx
mov dword [esp + 0x14], esi
test eax, eax
je 0x10168e47
cmp ecx, dword [ebx + 0x84]
jmp 0x10168c7f
add esi, edx
mov dword [esp + 0x14], esi
jmp 0x10168e47
cmp ebp, edx
jge 0x10168e43
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 0x10168e5f
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x10168dd3
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10168d32
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebp, 2
jmp 0x10168dc9
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10168d4d
and edx, 0xf
mov ebp, 3
shl edx, 6
or edx, ecx
jmp 0x10168dc3
and eax, 0x3f
test dl, 8
jne 0x10168d6d
and edx, 7
mov ebp, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10168dc3
test dl, 4
jne 0x10168d96
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 0x10168dc3
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 0x10168ded
mov eax, dword [esp + 0x44]
inc esi
mov dword [esp + 0x14], esi
cmp esi, eax
jae 0x10168e43
cmp byte [esi], 0xa
jne 0x10168e30
inc esi
jmp 0x10168e2c
cmp ecx, 0xa
je 0x10168e26
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x68], 0
jne 0x101698d6
cmp edi, 0xb
je 0x10168e26
cmp ebx, 0xc
je 0x10168e26
cmp edx, 0x85
je 0x10168e26
cmp edx, 0x2028
je 0x10168e26
cmp edx, 0x2029
jne 0x101698d6
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 0x10168cf0
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
je 0x1016a22d
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168e47
cmp esi, dword [ebx + 0x84]
jbe 0x10168e47
mov dword [ebx + 0x64], ebp
cmp eax, 1
jg 0x1016d052
jmp 0x10168e47
cmp ebp, edx
jge 0x10168e43
nop word [eax + eax]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x24], 1
cmp esi, dword [ebx + 0x78]
jae 0x10168c6b
movzx edx, byte [esi]
mov eax, edx
mov edi, edx
mov ebp, edx
mov ecx, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x10168f92
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10168edf
and eax, 0x1f
mov dword [esp + 0x24], 2
shl eax, 6
mov edx, ecx
jmp 0x10168f86
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10168efd
and edx, 0xf
mov dword [esp + 0x24], 3
shl edx, 6
or edx, ecx
jmp 0x10168f80
and eax, 0x3f
test dl, 8
jne 0x10168f23
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 0x10168f80
test dl, 4
jne 0x10168f4f
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 0x10168f80
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 0x10169013
cmp edi, 0x2000
je case.0x10169035.8193
cmp ebp, 0xa0
ja 0x10169003
cmp edx, 0xa0
je case.0x10169035.8193
cmp edx, 9
je case.0x10169035.8193
cmp edx, 0x20
je case.0x10169035.8193
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x28], 0x12
sete al
cmp ecx, eax
je 0x10168e43
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 0x10168e90
jmp 0x10168e43
cmp edx, 0x1680
je case.0x10169035.8193
cmp edx, 0x180e
jmp 0x10168fc9
cmp ecx, 0x3000
ja case.0x10169035.8203
cmp ebx, 0x3000
je case.0x10169035.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x10169035.8203
movzx eax, byte [edx + 0x1016dcf8]
jmp dword [eax*4 + 0x1016dcf0]
mov ecx, 1
jmp 0x10168fd1
cmp ebp, edx
jge 0x10168e43
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
mov edi, 1
cmp esi, ebx
jae 0x10169189
movzx edx, byte [esi]
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x1016912d
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169090
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov edi, 2
jmp 0x10169127
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101690ab
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x10169121
and eax, 0x3f
test dl, 8
jne 0x101690cb
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169121
test dl, 4
jne 0x101690f4
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 0x10169121
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 0x1016914b
cmp ecx, 0x85
je case.0x10169144.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x10169144
jmp dword [edx*4 + 0x1016dd58]
sub edx, 0x2028
je case.0x10169144.10
sub edx, 1
je case.0x10169144.10
xor ecx, ecx
jmp 0x10169161
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x28], 0x14
sete al
cmp ecx, eax
je 0x10168e43
add esi, edi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169052
jmp 0x10168e43
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168e47
cmp esi, dword [ebx + 0x84]
jbe 0x10168e47
mov dword [ebx + 0x64], edi
cmp eax, 1
jg 0x1016d052
jmp 0x10168e47
cmp ebp, edx
jge 0x10168e43
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x101692ea
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x101692b9
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169207
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x101692b3
test dl, 0x10
jne 0x10169222
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x101692ad
test dl, 8
jne 0x10169249
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 0x101692ad
test dl, 4
jne 0x10169279
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 0x101692ad
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 0x101692d4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne 0x10168e43
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x101691c7
jmp 0x10168e43
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10168e47
cmp esi, dword [ebx + 0x84]
jbe 0x10168e47
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
jmp 0x10168e47
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x10168e47
mov edi, dword [ebx + 0x78]
nop dword [eax]
cmp esi, edi
jae 0x10168c6b
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x1016940b
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016936c
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x10169407
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10169387
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x10169401
and eax, 0x3f
test dl, 8
jne 0x101693aa
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169401
test dl, 4
jne 0x101693d3
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 0x10169401
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 0x10168e47
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 4
je 0x10168e47
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169330
jmp 0x10168e47
cmp ebp, edx
jge 0x10168e43
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x101692ea
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016953a
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x10169488
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10169534
test dl, 0x10
jne 0x101694a3
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x1016952e
test dl, 8
jne 0x101694ca
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 0x1016952e
test dl, 4
jne 0x101694fa
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 0x1016952e
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 0x10169555
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne 0x10168e43
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169448
jmp 0x10168e43
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge 0x10168e47
mov edi, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edi
jae 0x10168c6b
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x1016965b
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101695bc
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x10169657
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x101695d7
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x10169651
and eax, 0x3f
test dl, 8
jne 0x101695fa
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x10169651
test dl, 4
jne 0x10169623
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 0x10169651
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 0x10168e47
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 1
je 0x10168e47
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169580
jmp 0x10168e47
cmp ebp, edx
jge 0x10168e43
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x101692ea
movzx edx, byte [esi]
mov edi, 1
mov eax, edi
mov ecx, edx
cmp edx, 0xc0
jb 0x1016978a
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x101696d8
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x10169784
test dl, 0x10
jne 0x101696f3
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
mov edi, 3
or edx, ecx
jmp 0x1016977e
test dl, 8
jne 0x1016971a
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 0x1016977e
test dl, 4
jne 0x1016974a
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 0x1016977e
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 0x101697a5
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne 0x10168e43
mov eax, edi
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169698
jmp 0x10168e43
cmp ebp, edx
jge 0x10168e43
mov ebx, dword [esp + 0x10]
mov edi, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edi
jae 0x10168c6b
movzx edx, byte [esi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x101698a8
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016980c
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x101698a4
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x10169827
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x1016989e
and eax, 0x3f
test dl, 8
jne 0x10169847
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016989e
test dl, 4
jne 0x10169870
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 0x1016989e
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 0x10168e47
mov eax, dword [ebx + 0x40]
test byte [edx + eax], 0x10
je 0x10168e47
add esi, ecx
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x101697d0
jmp 0x10168e47
mov ebx, eax
jmp 0x10168e47
cmp eax, 0xf
ja case.default.0x10163034
jmp dword [eax*4 + 0x1016dd68]
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
nop dword [eax]
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x10169c7e
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x10169931
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016f5b0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne case.0x10169ae2.10
jmp 0x10169956
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x10169956
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x10169956
cmp edx, 1
je case.0x10169ae2.10
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x10169ae2.10
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x1016998b
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb 0x1016998b
cmp dword [ebx + 0x18], 0
jne 0x1016998b
cmp dword [ebx + 0x1c], 2
jne 0x1016998b
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016998b
mov dword [ebx + 0x64], 1
cmp ecx, 1
jg 0x1016d052
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169900
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
sub edx, ebp
mov ecx, dword [ebx + 0x78]
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x101699d0
mov eax, dword [ebx + 0x88]
mov esi, ecx
mov dword [esp + 0x14], esi
test eax, eax
je case.0x10169ae2.10
cmp ecx, dword [ebx + 0x84]
jmp 0x10169c8e
add esi, edx
mov dword [esp + 0x14], esi
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov ecx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, ecx
jae 0x10169c7e
mov al, byte [esi]
cmp al, 0xd
jne 0x10169a12
inc esi
mov dword [esp + 0x14], esi
cmp esi, ecx
jae case.0x10169ae2.10
cmp byte [esi], 0xa
jne 0x10169a35
jmp 0x10169a30
cmp al, 0xa
je 0x10169a30
cmp dword [ebx + 0x68], 0
jne case.0x10169ae2.10
cmp al, 0xb
je 0x10169a30
cmp al, 0xc
je 0x10169a30
cmp al, 0x85
jne case.0x10169ae2.10
inc esi
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, edx
jl 0x101699f0
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov ecx, dword [ebx + 0x78]
nop
cmp esi, ecx
jae 0x10169c7e
mov al, byte [esi]
cmp al, 9
je case.0x10169ae2.10
cmp al, 0x20
je case.0x10169ae2.10
cmp al, 0xa0
je case.0x10169ae2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x10169a50
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x10169c7e
mov al, byte [esi]
cmp al, 9
je 0x10169aaa
cmp al, 0x20
je 0x10169aaa
cmp al, 0xa0
jne case.0x10169ae2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x10169a90
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x10169c7e
movzx eax, byte [esi]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x10169ae2.14
movzx eax, byte [eax + 0x1016ddb0]
jmp dword [eax*4 + 0x1016dda8]
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x10169ac8
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x10169c7e
movzx eax, byte [esi]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x10169ae2.10
movzx eax, byte [eax + 0x1016de34]
jmp dword [eax*4 + 0x1016de2c]
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x10169b07
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov edx, dword [ebx + 0x78]
nop word [eax + eax]
cmp esi, edx
jae 0x10169c7e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.0x10169ae2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169b50
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x10169c7e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
je case.0x10169ae2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169b88
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x10169c7e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.0x10169ae2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169bc0
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x10169c7e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
je case.0x10169ae2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169bf8
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x10169c7e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.0x10169ae2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169c30
jmp case.0x10169ae2.10
mov ebx, dword [esp + 0x10]
cmp ebp, edx
jge case.0x10169ae2.10
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x10169c7e
movzx ecx, byte [esi]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.0x10169ae2.10
inc esi
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x34]
jl 0x10169c60
jmp case.0x10169ae2.10
mov eax, dword [ebx + 0x88]
test eax, eax
je case.0x10169ae2.10
cmp esi, dword [ebx + 0x84]
jbe case.0x10169ae2.10
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
cmp dword [esp + 0x40], 0
je 0x1016a2b9
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
jmp 0x101605d7
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
cmp cl, 0x7a
jne 0x10169cf4
push dword [esp + 0x18]
mov ebp, dword [esp + 0x38]
lea eax, [edx + 3]
push edi
push ebp
push eax
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edx, ebx
mov dword [esp + 0x18], edx
jmp 0x10169e38
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push ebx
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x10169e3c
cmp dword [esp + 0x3c], 0x8c
jne 0x10169e38
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.10160490
add esp, 0x1c
jmp 0x1016d427
mov ebp, dword [esp + 0x2c]
cmp al, 0x7a
mov eax, dword [esp + 0x180]
jne 0x10169dae
inc eax
push eax
push dword [esp + 0x34]
lea eax, [edx + 3]
push ecx
push edi
push ebp
push eax
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov al, byte [ebx]
cmp al, 0x81
je 0x1016a60a
cmp al, 0x88
jae 0x1016a5e8
mov edx, ebx
mov dword [esp + 0x18], edx
jmp 0x10169e38
inc eax
push eax
push dword [esp + 0x34]
push ecx
push edi
push ebp
push ebx
push esi
call fcn.10160490
mov edx, dword [esp + 0x2c]
add esp, 0x1c
mov ecx, eax
cmp eax, 0xfffffc1b
jne 0x10169dd6
cmp dword [edx + 0xb4], ebx
je 0x10169dde
test ecx, ecx
jne 0x1016d427
cmp byte [ebx], 0x81
je 0x1016a620
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x18], edx
jmp 0x10169e38
cmp esi, ebp
je 0x10169e34
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.10160490
dec esi
add esp, 0x1c
mov dword [esp + 0x14], esi
test eax, eax
jne 0x1016d427
cmp esi, ebp
jne 0x10169e00
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 0x1016d41f
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x180]
cmp eax, dword [edi + 8]
jae 0x1016d418
mov ecx, dword [esp + 0x30]
jmp 0x10160580
cmp esi, edi
je 0x10169e34
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.10160490
dec esi
add esp, 0x1c
mov dword [esp + 0x14], esi
test eax, eax
jne 0x1016d427
cmp esi, edi
jne 0x10169e70
jmp 0x10169e34
cmp esi, edi
jbe 0x10169e34
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov dword [esp + 0x14], esi
mov ecx, esi
cmp al, 0x80
jne 0x10169f00
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x10169ef0
mov dword [esp + 0x14], esi
cmp ecx, edi
ja 0x10169eb0
jmp 0x10169e34
cmp esi, edi
je 0x10169e34
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
dec esi
mov dword [esp + 0x14], esi
cmp esi, edi
jne 0x10169f11
jmp 0x10169e34
cmp esi, edi
jbe 0x10169e34
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
dec esi
mov ecx, esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0x20], eax
je 0x10169fa2
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10169fa2
mov al, byte [esi - 1]
dec esi
and al, 0xc0
mov ecx, esi
cmp al, 0x80
je 0x10169f92
mov dword [esp + 0x14], esi
cmp ecx, edi
ja 0x10169f52
jmp 0x10169e34
cmp esi, edi
jbe 0x10169e34
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
dec esi
mov dword [esp + 0x14], esi
test ebp, ebp
jne 0x10169ff3
movzx edx, byte [esi]
jmp 0x1016a0c2
mov cl, byte [esi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x1016a010
nop dword [eax]
mov al, byte [esi - 1]
dec esi
mov cl, al
and al, 0xc0
cmp al, 0x80
je 0x1016a000
mov dword [esp + 0x14], esi
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x1016a0c4
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016a03c
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x1016a0c0
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016a052
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1016a0ba
and eax, 0x3f
test dl, 8
jne 0x1016a06d
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016a0ba
test dl, 4
jne 0x1016a091
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 0x1016a0ba
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 + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016a0de
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx ebx, byte [eax*8 + 0x101bda2a]
cmp esi, edi
jbe 0x10169e34
lea edi, [esi - 1]
test ebp, ebp
jne 0x1016a107
movzx edx, byte [edi]
jmp 0x1016a1cf
mov cl, byte [edi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x1016a11d
mov al, byte [edi - 1]
dec edi
mov cl, al
and al, 0xc0
cmp al, 0x80
je 0x1016a111
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x1016a1d1
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016a149
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x1016a1cd
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x1016a15f
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1016a1c7
and eax, 0x3f
test dl, 8
jne 0x1016a17a
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x1016a1c7
test dl, 4
jne 0x1016a19e
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 0x1016a1c7
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 + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016a1eb
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x101c12a8]
movzx edx, byte [eax*8 + 0x101bda2a]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x101bd438], eax
je 0x1016a220
mov esi, edi
mov ebx, edx
mov edi, dword [esp + 0x38]
mov dword [esp + 0x14], esi
jmp 0x1016a0f0
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
jmp 0x10169fb7
mov edi, dword [esp + 0x38]
cmp esi, edi
jbe 0x10169e34
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
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 0x1016a292
nop dword [eax]
mov cl, byte [esi - 1]
dec esi
mov al, cl
mov edx, esi
and al, 0xc0
cmp al, 0x80
je 0x1016a280
mov dword [esp + 0x14], esi
cmp dword [esp + 0x28], 0x11
jne 0x1016a2b0
cmp edx, edi
jbe 0x1016a2b0
cmp cl, 0xa
jne 0x1016a2b0
cmp byte [esi - 1], 0xd
lea eax, [esi - 1]
cmove esi, eax
mov dword [esp + 0x14], esi
cmp esi, edi
ja 0x1016a240
jmp 0x10169e34
cmp esi, edi
je 0x10169e34
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
dec esi
cmp dword [esp + 0x28], 0x11
mov dword [esp + 0x14], esi
mov eax, esi
jne 0x1016a314
cmp esi, edi
jbe 0x1016a314
cmp byte [esi], 0xa
jne 0x1016a314
cmp byte [esi - 1], 0xd
lea ecx, [esi - 1]
jne 0x1016a314
mov esi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
cmp eax, edi
jne 0x1016a2c1
jmp 0x10169e34
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 0x1016a423
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 0x1016a394
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 + 0x101bd2a8]
push dword [esp + 0x3c]
add eax, ecx
push eax
push esi
call fcn.10160490
mov edi, eax
add esp, 0x1c
cmp edi, 0xfffffc1b
je 0x1016d09d
mov ecx, edi
cmp edi, 0xfffffc20
jne 0x1016d05c
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 0x1016d05c
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x1016a418
cmp byte [edx], 0x77
mov eax, ecx
jne 0x1016d05c
xor edi, edi
jmp 0x1016d064
mov edi, dword [esp + 0x10]
cmp edx, 0x88
jae 0x1016a465
cmp edx, 0x81
je 0x1016a465
cmp dword [edi + 0x6c], 0
mov edx, dword [esp + 0x18]
jne 0x1016a473
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + edx], 0x77
je 0x1016a473
movzx eax, byte [edx]
movzx eax, byte [eax + 0x101bd2a8]
add edx, eax
mov dword [esp + 0x18], edx
jmp 0x10169e3c
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 + 0x101bd2a8]
push dword [esp + 0x3c]
add eax, edx
push eax
push esi
call fcn.10160490
mov edx, eax
add esp, 0x1c
mov ecx, edx
cmp edx, 0xfffffc20
jne 0x1016a4fb
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 0x1016a4f7
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x77
je 0x1016a4e9
cmp byte [edi], 0x77
mov eax, ecx
jne 0x1016a4f7
mov edi, dword [esp + 0x10]
mov dword [esp + 0x44], 0
jmp 0x1016a503
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x1016d0d3
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.0x101627e5
mov edx, dword [esp + 0x3c]
mov dword [edi + 0x90], ebp
jmp 0x1016a423
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 + 0x101bd2a8]
add eax, edi
add ecx, eax
push ecx
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
lea eax, [edi + 2]
mov dword [ebx + 0x7c], eax
mov eax, 0xfffffc1f
jmp 0x1016d427
mov eax, ecx
sub eax, 1
jmp 0x1016a590
cmp ecx, 0xfffffc19
je case.default.0x101627e5
mov eax, ecx
jmp 0x1016d427
mov eax, 0xffffffe6
jmp 0x1016d427
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xe0]
cmp eax, ecx
je 0x1016a5c0
push eax
call dword [0x101f84cc]
add esp, 4
mov eax, edi
jmp 0x1016d427
mov eax, 0xfffffffa
jmp 0x1016d427
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x7c], eax
mov eax, 1
jmp 0x1016d427
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.10160490
add esp, 0x1c
jmp 0x1016d427
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
push edi
push ebp
push ebx
jmp 0x1016a638
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016a672
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov eax, dword [esp + 0x10]
mov dword [eax + 0xb4], ebx
mov eax, 0xfffffc1b
jmp 0x1016d427
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x7c], eax
mov eax, 0xfffffc1a
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x8c], edi
jmp 0x1016d427
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 0x1016d427
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x88]
test ecx, ecx
je case.default.0x101627e5
mov edx, dword [esp + 0x10]
lea eax, [esi + 1]
cmp eax, dword [edx + 0x78]
jb case.default.0x101627e5
cmp dword [edx + 0x18], 0
jne case.default.0x101627e5
cmp dword [edx + 0x1c], 2
jne case.default.0x101627e5
mov al, byte [esi]
cmp al, byte [edx + 0x34]
jne case.default.0x101627e5
mov dword [edx + 0x64], 1
cmp ecx, 1
jmp 0x1016a71d
mov eax, ecx
jmp 0x1016a6c8
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, dword [ebx + 0x84]
jbe case.default.0x101627e5
mov dword [ebx + 0x64], 1
cmp eax, 1
jg 0x1016d052
xor eax, eax
jmp 0x1016d427
mov ecx, dword [esp + 0x10]
cmp eax, 0xfffffffe
jne 0x1016ad58
mov esi, dword [ecx + 0x78]
jmp 0x1016ad58
mov dword [esp + 0x44], esi
cmp ebp, ebx
jge 0x1016a7b0
nop dword [eax + eax]
push dword [esp + 0x40]
push dword [esp + 0x14]
push ecx
push esi
push edi
call fcn.1016e270
add esp, 0x14
test eax, eax
js 0x1016a774
mov ecx, dword [esp + 0x24]
inc ebp
add esi, eax
cmp ebp, ebx
jl 0x1016a750
jmp 0x1016a7a2
cmp eax, 0xfffffffe
jne 0x1016a7a2
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x88]
test ecx, ecx
je 0x1016a7a2
mov eax, dword [edx + 0x78]
cmp eax, dword [edx + 0x84]
jbe 0x1016a7a2
mov dword [edx + 0x64], 1
cmp ecx, 1
jg 0x1016d052
mov ebp, dword [esp + 0x44]
cmp esi, ebp
jb case.default.0x101627e5
jmp 0x1016a7b4
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
sub esi, ebx
cmp esi, ebp
jae 0x1016a7c0
jmp 0x1016d427
cmp eax, 0xfffffffe
jne 0x1016a801
mov esi, dword [ebx + 0x78]
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jb case.default.0x101627e5
jmp 0x1016a70b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, dword [ecx + 0x84]
jbe case.default.0x101627e5
mov dword [ecx + 0x64], 1
jmp 0x1016a71a
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov eax, esi
dec esi
cmp eax, edi
jbe case.default.0x101627e5
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016a890
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x1016a886
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016a873
jmp 0x1016d427
cmp esi, edi
jb case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
dec esi
cmp esi, edi
jae 0x1016a8c1
jmp 0x1016d427
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 0x1016aabe
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x24]
jge case.default.0x101627e5
cmp esi, dword [edi + 0x78]
jae 0x1016aa98
movzx edx, byte [esi]
inc esi
mov edi, edx
mov eax, edx
cmp edx, 0xc0
jb 0x1016aa33
test dl, 0x20
jne 0x1016a971
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 0x1016aa33
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x1016a99c
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 0x1016aa33
test dl, 8
jne 0x1016a9c6
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 0x1016aa33
test dl, 4
jne 0x1016a9f9
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 0x1016aa33
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 0x1016aa41
cmp dword [esp + 0x3c], 0x6e
jmp 0x1016aa53
and edx, 7
shr edi, 3
mov eax, 1
mov ecx, edx
shl eax, cl
test byte [edi + ebx], al
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x24]
jl 0x1016a937
jmp 0x1016d427
mov eax, dword [edi + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, dword [edi + 0x84]
jbe case.default.0x101627e5
mov dword [edi + 0x64], 1
jmp 0x1016a71a
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov ecx, ebp
cmp ecx, dword [esp + 0x24]
jge case.default.0x101627e5
cmp esi, dword [edi + 0x78]
jae 0x1016aa98
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.0x101627e5
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.10160490
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016aad0
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov eax, esi
dec esi
cmp eax, ebp
jbe case.default.0x101627e5
cmp dword [esp + 0x20], 0
je 0x1016ab7a
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1016ab7a
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x1016ab70
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016ab56
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebx
cmp edi, dword [esp + 0x24]
jge case.default.0x101627e5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016a821
movzx edx, byte [esi]
inc esi
mov edi, dword [esp + 0x20]
test edi, edi
je 0x1016acf0
cmp edx, 0xc0
jb 0x1016acf0
test dl, 0x20
jne 0x1016ac1f
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016acf0
test dl, 0x10
jne 0x1016ac46
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 0x1016acf0
test dl, 8
jne 0x1016ac79
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 0x1016acf0
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016acb5
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 0x1016acf0
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.1016fc30
add esp, 0xc
test eax, eax
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016abd3
jmp 0x1016d427
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, edi
jb case.default.0x101627e5
jmp 0x1016a70b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, dword [ecx + 0x78]
jb case.default.0x101627e5
jmp 0x1016a82f
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebp
cmp edi, dword [esp + 0x28]
jge case.default.0x101627e5
mov ebx, dword [ebx + 0x78]
mov eax, ebx
mov edi, dword [esp + 0x34]
sub eax, edi
cmp esi, eax
ja 0x1016ae1c
mov edx, dword [esp + 0x4c]
mov ecx, esi
sub edi, 4
jb 0x1016ade1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016ade6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1016add0
cmp edi, 0xfffffffc
je 0x1016ae13
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016ae1c
cmp edi, 0xfffffffd
je 0x1016ae13
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016ae1c
cmp edi, 0xfffffffe
je 0x1016ae13
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016ae1c
cmp edi, 0xffffffff
je 0x1016ae13
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016ae1c
add esi, dword [esp + 0x34]
jmp 0x1016ae89
mov edi, dword [esp + 0x24]
test edi, edi
jle 0x1016aec0
mov eax, ebx
sub eax, edi
cmp esi, eax
ja 0x1016aec0
lea edx, [esp + 0x158]
mov ecx, esi
sub edi, 4
jb 0x1016ae53
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016ae58
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1016ae42
cmp edi, 0xfffffffc
je 0x1016ae85
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1016aec0
cmp edi, 0xfffffffd
je 0x1016ae85
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1016aec0
cmp edi, 0xfffffffe
je 0x1016ae85
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1016aec0
cmp edi, 0xffffffff
je 0x1016ae85
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1016aec0
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016ada5
jmp 0x1016d427
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, ebx
jb case.default.0x101627e5
jmp 0x1016a82f
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x28]
jge case.default.0x101627e5
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016a821
movzx eax, byte [esi]
cmp ebx, eax
je 0x1016af3c
cmp edi, eax
jne case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x28]
jl 0x1016af20
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov ecx, ebp
cmp ecx, edi
jge case.default.0x101627e5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016a821
movzx eax, byte [esi]
inc esi
cmp ebx, eax
jne case.default.0x101627e5
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.10160490
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016afa4
jmp 0x1016d427
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.10160490
add esp, 0x1c
cmp dword [esp + 0x20], 0
je 0x1016b16d
test eax, eax
jne 0x1016d427
mov edi, ebp
nop
cmp edi, dword [esp + 0x28]
jge case.default.0x101627e5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016a821
movzx edx, byte [esi]
inc esi
mov eax, edx
cmp edx, 0xc0
jb 0x1016b128
test dl, 0x20
jne 0x1016b072
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1016b126
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x1016b099
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016b122
test dl, 8
jne 0x1016b0bf
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 0x1016b122
test dl, 4
jne 0x1016b0ee
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 0x1016b122
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.0x101627e5
cmp dword [esp + 0x3c], eax
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016b030
jmp 0x1016d427
test eax, eax
jne 0x1016d427
mov edi, ebp
nop word [eax + eax]
cmp edi, dword [esp + 0x28]
jge case.default.0x101627e5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016a821
movzx eax, byte [esi]
cmp ebx, eax
je case.default.0x101627e5
cmp dword [esp + 0x3c], eax
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016b180
jmp 0x1016d427
mov eax, dword [edx + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, dword [edx + 0x84]
jbe case.default.0x101627e5
mov dword [edx + 0x64], 1
jmp 0x1016a71a
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
test edx, edx
je 0x1016b3b2
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov ebx, ebp
nop word [eax + eax]
cmp ebx, dword [esp + 0x28]
jge case.default.0x101627e5
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x1016a821
movzx ebx, byte [esi]
inc esi
mov dword [esp + 0x44], ebx
cmp ebx, 0xc0
jb 0x1016b373
mov al, byte [esi]
test bl, 0x20
jne 0x1016b286
and ebx, 0x1f
movzx eax, al
shl ebx, 6
and eax, 0x3f
inc esi
or ebx, eax
jmp 0x1016b373
lea ecx, [esi + 1]
test bl, 0x10
jne 0x1016b2af
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 0x1016b36f
lea edx, [esi + 2]
test bl, 8
jne 0x1016b2e3
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 0x1016b36b
lea edi, [esi + 3]
test bl, 4
jne 0x1016b323
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 0x1016b36b
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.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016b240
jmp 0x1016d427
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov ecx, ebp
cmp ecx, dword [esp + 0x28]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx eax, byte [esi]
inc esi
cmp edi, eax
je case.default.0x101627e5
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.10160490
add esp, 0x1c
mov ecx, ebp
test eax, eax
je 0x1016b3d6
jmp 0x1016d427
test eax, eax
js 0x1016c5eb
cmp eax, 0xa
ja case.default.0x10163034
jmp dword [eax*4 + 0x1016deb0]
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x34]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
je 0x1016b4ba
cmp eax, 0xc0
jb 0x1016b4ba
test al, 0x20
jne 0x1016b49c
inc esi
jmp 0x1016b4ba
test al, 0x10
jne 0x1016b4a5
add esi, 2
jmp 0x1016b4ba
test al, 8
jne 0x1016b4ae
add esi, 3
jmp 0x1016b4ba
test al, 4
jne 0x1016b4b7
add esi, 4
jmp 0x1016b4ba
add esi, 5
cmp dword [esp + 0x48], 0
jne case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016b470
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebp
cmp edi, dword [esp + 0x34]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016b641
cmp eax, 0xc0
jb 0x1016b641
test al, 0x20
jne 0x1016b56e
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016b63f
test al, 0x10
jne 0x1016b594
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 0x1016b63f
test al, 8
jne 0x1016b5c6
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 0x1016b63f
test al, 4
movzx eax, byte [esi]
jne 0x1016b601
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 0x1016b63f
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016b65b
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp eax, 9
je 0x1016b680
cmp eax, 5
je 0x1016b680
cmp eax, 8
je 0x1016b680
xor eax, eax
jmp 0x1016b685
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016b525
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebp
cmp edi, dword [esp + 0x34]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016b80f
cmp eax, 0xc0
jb 0x1016b80f
test al, 0x20
jne 0x1016b73c
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016b80d
test al, 0x10
jne 0x1016b762
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 0x1016b80d
test al, 8
jne 0x1016b794
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 0x1016b80d
test al, 4
movzx eax, byte [esi]
jne 0x1016b7cf
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 0x1016b80d
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016b829
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x50]
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp dword [eax*4 + 0x101bd3c0], edx
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016b6f3
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebp
nop dword [eax]
cmp edi, dword [esp + 0x34]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016b9dc
cmp eax, 0xc0
jb 0x1016b9dc
test al, 0x20
jne 0x1016b909
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016b9da
test al, 0x10
jne 0x1016b92f
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 0x1016b9da
test al, 8
jne 0x1016b961
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 0x1016b9da
test al, 4
movzx eax, byte [esi]
jne 0x1016b99c
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 0x1016b9da
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016b9f6
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016b8c0
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebp
nop
cmp edi, dword [esp + 0x34]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016bb9c
cmp eax, 0xc0
jb 0x1016bb9c
test al, 0x20
jne 0x1016bac9
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016bb9a
test al, 0x10
jne 0x1016baef
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 0x1016bb9a
test al, 8
jne 0x1016bb21
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 0x1016bb9a
test al, 4
movzx eax, byte [esi]
jne 0x1016bb5c
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 0x1016bb9a
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016bbb6
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda28]
cmp eax, dword [esp + 0x50]
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016ba80
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebp
nop
cmp edi, dword [esp + 0x34]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
je 0x1016bd5c
cmp eax, 0xc0
jb 0x1016bd5c
test al, 0x20
jne 0x1016bc89
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016bd5a
test al, 0x10
jne 0x1016bcaf
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 0x1016bd5a
test al, 8
jne 0x1016bce1
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 0x1016bd5a
test al, 4
movzx eax, byte [esi]
jne 0x1016bd1c
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 0x1016bd5a
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016bd76
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x1016bd9d
cmp eax, 3
je 0x1016bd9d
xor eax, eax
jmp 0x1016bda2
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016bc40
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x34]
jge case.default.0x101627e5
nop dword [eax + eax]
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
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 0x1016bf3c
mov dword [esp + 0x24], ecx
cmp ecx, 0xc0
jb 0x1016bf3c
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x1016be6f
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc esi
jmp 0x1016bf2e
test cl, 0x10
jne 0x1016be90
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 0x1016bf2e
test cl, 8
jne 0x1016bebd
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 0x1016bf2e
test cl, 4
jne 0x1016bef3
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 0x1016bf2e
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 0x1016bf5b
cmp eax, 0x20
je case.0x1016c069.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x1016c069.8203
jmp dword [eax*4 + 0x1016dedc]
cmp ecx, 0x2000
ja 0x1016c03f
cmp edx, 0x2000
je case.0x1016c069.8193
cmp ebx, 0x1680
ja 0x1016c034
cmp ecx, 0x1680
je case.0x1016c069.8193
mov eax, ecx
sub eax, 0x85
je case.0x1016c069.8193
sub eax, 0x1b
je case.0x1016c069.8193
mov eax, ecx
test eax, eax
jns 0x1016bfaa
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016bfc4
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
cmp dword [eax*4 + 0x101bd3c0], 6
sete cl
cmp ecx, dword [esp + 0x48]
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x34]
jl 0x1016be20
jmp 0x1016d427
cmp ecx, 0x180e
jmp 0x1016bf9b
cmp edi, 0x3000
ja case.0x1016c069.8203
cmp ebp, 0x3000
je case.0x1016c069.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x1016c069.8203
movzx eax, byte [eax + 0x1016def8]
jmp dword [eax*4 + 0x1016def0]
cmp dword [esp + 0x48], 0
jne case.default.0x101627e5
jmp 0x1016bfed
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebp
cmp edi, dword [esp + 0x34]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
mov edi, eax
je 0x1016c1d1
cmp eax, 0xc0
jb 0x1016c1d1
test al, 0x20
jne 0x1016c0fc
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
inc esi
jmp 0x1016c1cd
test al, 0x10
jne 0x1016c122
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 0x1016c1cd
test al, 8
jne 0x1016c154
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 0x1016c1cd
test al, 4
movzx eax, byte [esi]
jne 0x1016c18f
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 0x1016c1cd
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c1eb
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx eax, byte [eax*8 + 0x101bda29]
mov eax, dword [eax*4 + 0x101bd3c0]
cmp eax, 1
je 0x1016c217
cmp eax, 3
je 0x1016c217
cmp edi, 0x5f
je 0x1016c217
xor eax, eax
jmp 0x1016c21c
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016c0b1
jmp 0x1016d427
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x34]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, edx
je 0x1016c3a9
cmp edx, 0xc0
jb 0x1016c3a9
test dl, 0x20
jne 0x1016c2d6
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 0x1016c3a7
test dl, 0x10
jne 0x1016c2fd
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 0x1016c3a7
test dl, 8
jne 0x1016c330
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 0x1016c3a7
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016c36c
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 0x1016c3a7
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 + 0x101bd8e8]
lea eax, [eax*4 + 0x101bd8e8]
jb 0x1016c3cd
mov ecx, dword [eax]
nop
lea eax, [eax + 4]
cmp edx, ecx
je 0x1016c410
mov ecx, dword [eax]
cmp edx, ecx
jae 0x1016c3c0
cmp dword [esp + 0x48], 0
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x34]
jl 0x1016c293
jmp 0x1016d427
cmp dword [esp + 0x48], 0
jne case.default.0x101627e5
jmp 0x1016c3d8
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov edi, ebp
nop
cmp edi, dword [esp + 0x34]
jge case.default.0x101627e5
cmp esi, dword [ebx + 0x78]
jae 0x1016a701
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov eax, edx
mov ecx, edx
mov edi, edx
mov ebx, edx
je 0x1016c57a
cmp edx, 0xc0
jb 0x1016c57a
test dl, 0x20
jne 0x1016c4a1
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
inc esi
jmp 0x1016c572
test dl, 0x10
jne 0x1016c4c8
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 0x1016c572
test dl, 8
jne 0x1016c4fb
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 0x1016c572
movzx eax, byte [esi]
and eax, 0x3f
test dl, 4
jne 0x1016c537
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 0x1016c572
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 0x1016c5a5
cmp ecx, 0x40
je 0x1016c5a5
cmp edi, 0x60
je 0x1016c5a5
cmp ebx, 0xa0
jb 0x1016c599
cmp edx, 0xd7ff
jbe 0x1016c5a5
cmp edx, 0xe000
jae 0x1016c5a5
xor eax, eax
jmp 0x1016c5aa
mov eax, 1
cmp eax, dword [esp + 0x48]
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
je 0x1016c450
jmp 0x1016d427
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
cmp edi, 0x16
jne 0x1016c912
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x34]
jge case.default.0x101627e5
nop dword [eax]
mov ebp, dword [edi + 0x78]
cmp esi, ebp
jae 0x1016aa98
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x20], 0
mov ecx, eax
mov edx, eax
mov edi, esi
je 0x1016c74a
cmp eax, 0xc0
jb 0x1016c74a
test al, 0x20
jne 0x1016c673
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
inc esi
jmp 0x1016c746
test al, 0x10
jne 0x1016c699
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 0x1016c746
test al, 8
jne 0x1016c6cb
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 0x1016c746
mov ecx, eax
test al, 4
movzx eax, byte [esi]
jne 0x1016c708
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 0x1016c746
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 + 0x101bf0a8]
shl eax, 7
and edx, 0x8000007f
jns 0x1016c764
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x101c12a8]
movzx ebx, byte [eax*8 + 0x101bda2a]
cmp edi, ebp
jae 0x1016c8a4
nop
cmp dword [esp + 0x20], 0
mov edi, 1
movzx edx, byte [esi]
mov ecx, edx
je 0x1016c85c
cmp edx, 0xc0
jb 0x1016c85c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x1016c7c1
mov eax, edx
mov edi, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x1016c858
movzx eax, byte [esi + 2]
test dl, 0x10
jne 0x1016c7dc
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x1016c852
and eax, 0x3f
test dl, 8
jne 0x1016c7fc
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x1016c852
test dl, 4
jne 0x1016c825
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 0x1016c852
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 + 0x101bf0a8]
shl eax, 7
and ecx, 0x8000007f
jns 0x1016c876
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x101c12a8]
movzx ecx, byte [eax*8 + 0x101bda2a]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x101bd438], eax
je 0x1016c8a4
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x1016c780
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x88]
test eax, eax
je 0x1016c8cf
cmp esi, dword [edi + 0x78]
jb 0x1016c8cf
cmp esi, dword [edi + 0x84]
jbe 0x1016c8cf
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x1016d052
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebx, dword [esp + 0x34]
jl 0x1016c630
jmp 0x1016d427
test ecx, ecx
je 0x1016cdf4
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x34]
jge case.default.0x101627e5
mov ebp, dword [esp + 0x10]
mov ecx, dword [ebp + 0x78]
cmp esi, ecx
jae 0x1016cdce
cmp edi, 0xc
jne 0x1016c9aa
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x1016c985
push dword [esp + 0x20]
lea eax, [ebp + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016f5b0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x101627e5
jmp 0x1016c9aa
mov edx, dword [ebp + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016c9aa
mov al, byte [esi]
cmp al, byte [ebp + 0x34]
jne 0x1016c9aa
cmp edx, 1
je case.default.0x101627e5
mov al, byte [esi + 1]
cmp al, byte [ebp + 0x35]
je case.default.0x101627e5
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 0x1016caab
movzx ecx, byte [esi]
and ecx, 0x3f
test dl, 0x20
jne 0x1016c9eb
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
inc esi
jmp 0x1016ca95
movzx eax, byte [esi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x1016ca0c
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1016ca95
test dl, 8
jne 0x1016ca32
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 0x1016ca95
test dl, 4
jne 0x1016ca61
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 0x1016ca95
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.0x10163034
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x1016df58]
mov ebp, dword [esp + 0x10]
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x1016cac2.13
cmp esi, dword [ebp + 0x78]
jb case.0x1016cac2.13
cmp dword [ebp + 0x18], 0
jne case.0x1016cac2.13
cmp dword [ebp + 0x1c], 2
jne case.0x1016cac2.13
movzx eax, byte [ebp + 0x34]
cmp edx, eax
jne case.0x1016cac2.13
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x1016d052
jmp case.0x1016cac2.13
cmp edx, 0x85
ja 0x1016cb52
je case.0x1016cb2f.11
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x101627e5
jmp dword [edx*4 + 0x1016df98]
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae case.0x1016cac2.13
cmp byte [esi], 0xa
jne case.0x1016cac2.13
inc esi
jmp case.0x1016cac2.13
sub edx, 0x2028
je case.0x1016cb2f.11
sub edx, 1
jne case.default.0x101627e5
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x68], 0
jne case.default.0x101627e5
jmp case.0x1016cac2.13
cmp edx, 0x2000
ja 0x1016cbba
je case.default.0x101627e5
cmp edx, 0xa0
ja 0x1016cba3
je case.default.0x101627e5
cmp edx, 9
je case.default.0x101627e5
cmp edx, 0x20
jmp 0x1016cd7e
cmp edx, 0x1680
je case.default.0x101627e5
cmp edx, 0x180e
jmp 0x1016cd7e
cmp edx, 0x3000
ja case.0x1016cac2.13
je case.default.0x101627e5
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x1016cac2.13
movzx eax, byte [edx + 0x1016dfb0]
jmp dword [eax*4 + 0x1016dfa8]
cmp edx, 0x2000
ja 0x1016cc39
je case.0x1016cac2.13
cmp edx, 0xa0
ja 0x1016cc1c
je case.0x1016cac2.13
cmp edx, 9
je case.0x1016cac2.13
cmp edx, 0x20
jne case.default.0x101627e5
jmp case.0x1016cac2.13
cmp edx, 0x1680
je case.0x1016cac2.13
cmp edx, 0x180e
jne case.default.0x101627e5
jmp case.0x1016cac2.13
cmp edx, 0x3000
ja case.default.0x101627e5
je case.0x1016cac2.13
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x101627e5
movzx eax, byte [edx + 0x1016e018]
jmp dword [eax*4 + 0x1016e010]
cmp edx, 0x85
ja 0x1016cc89
je case.default.0x101627e5
add edx, 0xfffffff6
cmp edx, 3
ja case.0x1016cac2.13
jmp dword [edx*4 + 0x1016e078]
sub edx, 0x2028
je case.default.0x101627e5
sub edx, 1
jmp 0x1016cd7e
cmp edx, 0x85
ja 0x1016ccbe
je case.0x1016cac2.13
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x101627e5
jmp dword [edx*4 + 0x1016e088]
sub edx, 0x2028
je case.0x1016cac2.13
sub edx, 1
jne case.default.0x101627e5
jmp case.0x1016cac2.13
cmp eax, 0x100
jae case.0x1016cac2.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne case.default.0x101627e5
jmp case.0x1016cac2.13
cmp dword [esp + 0x24], 0x100
jae case.default.0x101627e5
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jmp 0x1016cd7e
cmp dword [esp + 0x50], 0x100
jae case.0x1016cac2.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne case.default.0x101627e5
jmp case.0x1016cac2.13
cmp ebx, 0x100
jae case.default.0x101627e5
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jmp 0x1016cd7e
cmp ebp, 0x100
jae case.0x1016cac2.13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne case.default.0x101627e5
jmp case.0x1016cac2.13
cmp dword [esp + 0x40], 0x100
jae case.default.0x101627e5
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x34]
jge case.default.0x101627e5
mov edi, dword [esp + 0x28]
jmp 0x1016c945
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, dword [ebp + 0x84]
jbe case.default.0x101627e5
mov dword [ebp + 0x64], 1
jmp 0x1016a71a
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x34]
jge case.default.0x101627e5
mov ecx, dword [ebx + 0x78]
cmp esi, ecx
jae 0x1016d028
cmp edi, 0xc
jne 0x1016ce7f
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1016ce5a
push 0
lea eax, [ebx + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.1016f5b0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x44], eax
jne case.default.0x101627e5
jmp 0x1016ce7f
mov edx, dword [ebx + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x1016ce7f
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x1016ce7f
cmp edx, 1
je case.default.0x101627e5
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.default.0x101627e5
movzx ecx, byte [esi]
lea eax, [edi - 6]
inc esi
cmp eax, 0xf
ja case.default.0x10163034
jmp dword [eax*4 + 0x1016e098]
mov edx, dword [ebx + 0x88]
test edx, edx
je case.0x1016ce8f.13
cmp esi, dword [ebx + 0x78]
jb case.0x1016ce8f.13
cmp dword [ebx + 0x18], 0
jne case.0x1016ce8f.13
cmp dword [ebx + 0x1c], 2
jne case.0x1016ce8f.13
movzx eax, byte [ebx + 0x34]
cmp ecx, eax
jne case.0x1016ce8f.13
mov dword [ebx + 0x64], 1
cmp edx, 1
jg 0x1016d052
jmp case.0x1016ce8f.13
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.default.0x101627e5
movzx eax, byte [ecx + 0x1016e0e8]
jmp dword [eax*4 + 0x1016e0d8]
cmp esi, dword [ebx + 0x78]
jae case.0x1016ce8f.13
cmp byte [esi], 0xa
jne case.0x1016ce8f.13
inc esi
jmp case.0x1016ce8f.13
cmp dword [ebx + 0x68], 0
jne case.default.0x101627e5
jmp case.0x1016ce8f.13
cmp ecx, 9
je case.default.0x101627e5
cmp ecx, 0x20
je case.default.0x101627e5
cmp ecx, 0xa0
jmp 0x1016cfdd
cmp ecx, 9
je case.0x1016ce8f.13
cmp ecx, 0x20
je case.0x1016ce8f.13
cmp ecx, 0xa0
jne case.default.0x101627e5
jmp case.0x1016ce8f.13
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x1016ce8f.13
movzx eax, byte [ecx + 0x1016e16c]
jmp dword [eax*4 + 0x1016e164]
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.default.0x101627e5
movzx eax, byte [ecx + 0x1016e1f0]
jmp dword [eax*4 + 0x1016e1e8]
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jne case.default.0x101627e5
jmp case.0x1016ce8f.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 4
jmp 0x1016cfdd
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.default.0x101627e5
jmp case.0x1016ce8f.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jmp 0x1016cfdd
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.default.0x101627e5
jmp case.0x1016ce8f.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x101627e5
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.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
cmp ebp, dword [esp + 0x34]
jl 0x1016ce20
jmp 0x1016d427
mov eax, 0xfffffff2
jmp 0x1016d427
mov eax, dword [ebx + 0x88]
test eax, eax
je case.default.0x101627e5
cmp esi, dword [ebx + 0x84]
jbe case.default.0x101627e5
mov dword [ebx + 0x64], 1
cmp eax, 1
jle case.default.0x101627e5
mov eax, 0xfffffff4
jmp 0x1016d427
test eax, eax
jne case.default.0x10160d81
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 0x1016d0a1
mov edi, edx
jmp 0x1016a380
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 0x1016d427
cmp ecx, 0xfffffc1b
jne 0x1016d128
mov ebx, dword [esp + 0x18]
cmp byte [ebx], 0x81
je 0x1016d119
cmp byte [ebx], 0x77
mov edi, ebx
jne 0x1016d108
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 0x1016d0f0
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 0x1016d427
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 + 0x101bd2a8]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10160490
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x1016d18f
cmp edx, 0xfffffc19
je 0x1016d18f
cmp edx, 0xfffffc1a
jne 0x1016d1a5
cmp dword [ebx + 0xac], 0
jne 0x1016d1a5
mov dword [ebx + 0xac], edi
mov eax, edx
jmp 0x1016d427
cmp edx, 0xfffffc1f
jne 0x1016d1dd
mov eax, dword [ebx + 0x7c]
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x1016d1d0
test cl, cl
je 0x1016d1cc
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x1016d1d0
add edi, 2
add eax, 2
test cl, cl
jne 0x1016d1b0
xor eax, eax
jmp 0x1016d1d5
sbb eax, eax
or eax, 1
test eax, eax
je 0x1016d2f8
mov eax, edx
jmp 0x1016d427
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [edx + 0x101bd2a8]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160490
add esp, 0x1c
mov ecx, 0xfffffc1c
test eax, eax
cmovne ecx, eax
mov eax, ecx
jmp 0x1016d427
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [edx + 0x101bd2a8]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
je 0x1016d2be
jmp 0x1016d427
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 + 0x101bd2a8]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10160490
add esp, 0x1c
cmp eax, 1
je 0x1016d2a7
cmp eax, 0xfffffc19
jne 0x1016d2b6
cmp dword [ebx + 0xac], 0
jne 0x1016d2b6
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x1016d427
mov eax, 0xfffffc1d
jmp 0x1016d427
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [edx + 0x101bd2a8]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
jne 0x1016d427
mov dword [ebx + 0x7c], esi
mov eax, 0xfffffc1e
jmp 0x1016d427
mov eax, dword [esp + 0x180]
inc eax
push eax
push dword [esp + 0x34]
movzx eax, byte [edx + 0x101bd2a8]
add eax, dword [esp + 0x20]
push ebx
push edi
push dword [esp + 0x3c]
push eax
push esi
call fcn.10160490
add esp, 0x1c
test eax, eax
je 0x1016d3a6
jmp 0x1016d427
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 + 0x101bd2a8]
push dword [esp + 0x3c]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.10160490
add esp, 0x1c
cmp eax, 1
je 0x1016d38f
cmp eax, 0xfffffc19
jne 0x1016d39e
cmp dword [ebx + 0xac], 0
jne 0x1016d39e
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x1016d427
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x7c], eax
mov eax, 0xfffffc20
jmp 0x1016d427
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jne 0x1016d3f1
cmp edx, 0x9f
je 0x1016d3f1
cmp dword [ebx + 0xa4], 0
jne 0x1016d3f1
cmp dword [ebx + 0x5c], 0
jne case.default.0x101627e5
cmp dword [ebx + 0x60], 0
je 0x1016d3f1
mov eax, dword [ebx + 0x94]
add eax, dword [ebx + 0x74]
cmp ecx, eax
je case.default.0x101627e5
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 0x1016d427
mov eax, 0xfffffffb
jmp 0x1016d427
mov eax, 0xffffffeb
jmp 0x1016d427
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.10172863
add esp, 0x154
ret