Function at 0x14001e000
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x278
movdqa xmmword [rsp + 0x260], xmm15
movdqa xmmword [rsp + 0x250], xmm14
movdqa xmmword [rsp + 0x240], xmm13
movdqa xmmword [rsp + 0x230], xmm12
movdqa xmmword [rsp + 0x220], xmm11
movdqa xmmword [rsp + 0x210], xmm10
movdqa xmmword [rsp + 0x200], xmm9
movaps xmmword [rsp + 0x1f0], xmm8
movdqa xmmword [rsp + 0x1e0], xmm7
movdqa xmmword [rsp + 0x1d0], xmm6
mov qword [rsp + 0x190], rcx
mov rax, qword [rsp + 0x2e8]
mov rcx, qword [rsp + 0x2e0]
mov qword [rsp + 0x1a0], r9
mov qword [rcx + 0x10], 0
mov dword [rsp + 0xe8], 0
mov qword [rsp + 0xe0], 0
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x198], rax
add r8, rdx
pxor xmm6, xmm6
movdqu xmmword [rsp + 0x1ad], xmm6
mov byte [rsp + 0x1bd], 0
movdqu xmmword [rsp + 0x1c0], xmm6
mov qword [rsp + 0x38], 0
lea r12, [rsp + 0x48]
mov dword [rsp + 0x48], 0
mov word [rsp + 0x4c], 0
mov byte [rsp + 0x50], 0
mov dword [rsp + 0x54], 0
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x5c], 0
mov byte [rsp + 0x60], 0
mov dword [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], r8
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 0
mov rax, r9
shr rax, 0x20
mov byte [rsp + 0x9c], al
mov qword [rsp + 0x188], r9
mov dword [rsp + 0x98], r9d
movups xmm0, xmmword [rsp + 0x1aa]
movups xmmword [rsp + 0x9d], xmm0
mov eax, dword [rsp + 0x1ba]
mov dword [rsp + 0xad], eax
mov dword [rsp + 0xb8], 0
mov word [rsp + 0xbc], 0
movzx eax, word [rsp + 0x1ce]
mov word [rsp + 0xce], ax
movdqu xmm0, xmmword [rsp + 0x1be]
movdqu xmmword [rsp + 0xbe], xmm0
mov dword [rsp + 0xd8], 0x110000
mov byte [rsp + 0xdc], 0
lea r15, [0x140133cd4]
lea rbx, [0x1401377a4]
xor eax, eax
jmp 0x14001e204
mov rax, qword [rsi + 8]
mov byte [rax + r14], dil
inc r14
mov qword [rsi + 0x10], r14
mov rax, qword [rsp + 0x38]
cmp rax, 2
je 0x14001e240
cmp rax, 1
jne 0x14001e39a
mov rax, qword [rsp + 0x40]
cmp dword [rsp + 0xb8], 0
je 0x14001e268
cmp rax, qword [rsp + 0xd0]
jae 0x14001e2f9
mov rdx, qword [rsp + 0xc8]
jmp 0x14001e28b
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xb8]
test eax, eax
je 0x14001e2b0
cmp rcx, qword [rsp + 0xd0]
jae 0x14001e307
mov r8, qword [rsp + 0xc8]
jmp 0x14001e2d3
movzx ecx, word [rsp + 0xbc]
cmp rcx, 4
ja case.0x14001e5a0.1
lea rdx, [rsp + 0xc0]
cmp rax, rcx
jae 0x14001e318
mov edi, dword [rdx + rax*4]
inc rax
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rax
cmp edi, 0x80
jb 0x14001f70c
jmp 0x14001f57e
movzx edx, word [rsp + 0xbc]
cmp rdx, 5
jae case.0x14001e5a0.1
lea r8, [rsp + 0xc0]
cmp rcx, rdx
jae 0x14001f6d4
mov edi, dword [r8 + rcx*4]
inc rcx
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x40], rcx
cmp edi, 0x80
jb 0x14001f70c
jmp 0x14001f57e
mov qword [rsp + 0xd0], 0
jmp 0x14001e327
mov qword [rsp + 0xd0], 0
jmp 0x14001f6e3
test rcx, rcx
je 0x14001e327
mov word [rsp + 0xbc], 0
mov qword [rsp + 0x38], 0
jmp 0x14001e39a
movzx edi, bp
imul esi, edi, 0x6f75
shr esi, 0x18
lea edx, [rsi + 0x1100]
mov rcx, r12
call fcn.140025670
imul eax, esi, 0x24c
sub ebp, eax
movzx eax, bp
imul edx, eax, 0x925
shr edx, 0x10
add edx, 0x1161
mov rcx, r12
call fcn.140025670
mov eax, edi
shr eax, 2
imul eax, eax, 0x4925
shr eax, 0x11
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
sub di, cx
je 0x14001e39a
add edi, 0x11a7
movzx edx, di
mov rcx, r12
call fcn.140025670
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
jne 0x14001e640
movzx ecx, byte [rsp + 0x98]
cmp cl, 2
je 0x14001e752
mov rdi, qword [rsp + 0x88]
mov r10, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
movzx r9d, byte [rsp + 0x99]
mov r11, qword [rsp + 0x90]
nop word [rax + rax]
test rdi, rdi
je 0x14001e40a
cmp rdi, r11
jne 0x14001ea0e
mov qword [rsp + 0x88], 0
cmp r10, r8
je 0x14001e74a
lea rdx, [r10 + 1]
mov qword [rsp + 0x70], rdx
movzx edi, byte [r10]
test dil, dil
js 0x14001e440
mov r10, rdx
mov edx, edi
lea edi, [rdx - 0x2d]
cmp edi, 2
jae 0x14001e4e0
jmp case.0x14001e5a0.0
mov edx, edi
and edx, 0x1f
lea r13, [r10 + 2]
mov qword [rsp + 0x70], r13
movzx r14d, byte [r10 + 1]
and r14d, 0x3f
cmp dil, 0xdf
jbe 0x14001e4af
lea r13, [r10 + 3]
mov qword [rsp + 0x70], r13
movzx ebp, byte [r10 + 2]
shl r14d, 6
and ebp, 0x3f
or ebp, r14d
cmp dil, 0xf0
jb 0x14001e4c5
lea rdi, [r10 + 4]
mov qword [rsp + 0x70], rdi
movzx r14d, byte [r10 + 3]
and edx, 7
shl edx, 0x12
shl ebp, 6
and r14d, 0x3f
or r14d, ebp
or r14d, edx
mov r10, rdi
mov edx, r14d
lea edi, [rdx - 0x2d]
cmp edi, 2
jae 0x14001e4e0
jmp case.0x14001e5a0.0
shl edx, 6
or edx, r14d
mov r10, r13
lea edi, [rdx - 0x2d]
cmp edi, 2
jae 0x14001e4e0
jmp case.0x14001e5a0.0
shl edx, 0xc
or ebp, edx
mov r10, r13
mov edx, ebp
lea edi, [rdx - 0x2d]
cmp edi, 2
jb case.0x14001e5a0.0
nop dword [rax + rax]
lea edi, [rdx - 0x61]
cmp edi, 0x1a
jb case.0x14001e5a0.0
lea edi, [rdx - 0x30]
cmp edi, 0xa
jb case.0x14001e5a0.0
mov edi, 0x75a
xor r14d, r14d
mov r13d, 0x75a
nop word cs:[rax + rax]
shr rdi, 1
add rdi, r14
mov ebp, dword [r15 + rdi*8]
cmp ebp, edx
je 0x14001e547
lea rsi, [rdi + 1]
cmp ebp, edx
cmova r13, rdi
cmovb r14, rsi
mov rdi, r13
sub rdi, r14
ja 0x14001e510
dec r14
mov rdi, r14
cmp r14, 0x759
ja case.0x14001e5a0.1
movzx esi, word [r15 + rdi*8 + 4]
mov ebp, esi
and ebp, 0x7fff
test si, si
js 0x14001e569
movzx esi, word [r15 + rdi*8]
mov edi, edx
sub di, si
movzx ebp, bp
add ebp, edi
movzx esi, bp
cmp esi, 0x1f73
jae case.0x14001e5a0.1
movzx r14d, bp
movzx ebp, byte [rbx + r14*4]
mov edi, 0
cmp ebp, 1
je case.default.0x14001e5a0
mov r11d, ebp
lea rsi, [0x140124c90]
movsxd r11, dword [rsi + r11*4]
add r11, rsi
jmp r11
mov ecx, dword [rsp + 0x48]
mov rax, qword [rsp + 0xa0]
test ecx, ecx
je 0x14001e65c
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x60]
jmp 0x14001e671
movzx r9d, word [rsp + 0x4c]
lea r8, [rsp + 0x50]
cmp r9, 4
ja case.0x14001e5a0.1
cmp rax, r9
jae case.0x14001e5a0.1
mov ebp, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x14001e740
test ecx, ecx
je 0x14001e792
mov rax, qword [rsp + 0x60]
sub rax, rdx
je 0x14001e7a0
xor ecx, ecx
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0xa8]
add rdx, rcx
cmp dword [rsp + 0x48], 0
je 0x14001e6e0
mov r8, qword [rsp + 0x60]
cmp rdx, r8
jae case.0x14001e5a0.1
mov r9, qword [rsp + 0x58]
jmp 0x14001e6fe
movzx r8d, word [rsp + 0x4c]
cmp r8, 5
jae case.0x14001e5a0.1
lea r9, [rsp + 0x50]
cmp rdx, r8
jae case.0x14001e5a0.1
cmp rcx, r8
jae case.0x14001e5a0.1
movzx r8d, byte [r9 + rdx*8]
mov edx, dword [r9 + rdx*8 + 4]
mov byte [r9 + rcx*8], r8b
mov dword [r9 + rcx*8 + 4], edx
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rax, rdx
jne 0x14001e6b0
mov ecx, dword [rsp + 0x48]
test ecx, ecx
jne 0x14001e7a4
movzx ecx, word [rsp + 0x4c]
cmp rax, rcx
jae 0x14001e7b0
mov word [rsp + 0x4c], ax
jmp 0x14001e7b0
mov qword [rsp + 0xa0], rax
jmp 0x14001e7b7
mov byte [rsp + 0x98], 2
mov r8d, dword [rsp + 0x48]
test r8d, r8d
mov rdx, qword [rsp + 0x60]
movzx eax, word [rsp + 0x4c]
mov rcx, rdx
cmove rcx, rax
test rcx, rcx
je 0x14001f5e0
mov rcx, qword [rsp + 0xa8]
test r8d, r8d
je 0x14001eaef
mov r8, qword [rsp + 0x58]
mov rax, rdx
jmp 0x14001eafe
movzx eax, word [rsp + 0x4c]
sub rax, rdx
jne 0x14001e6a1
test ecx, ecx
je 0x14001e72e
cmp qword [rsp + 0x60], rax
jb 0x14001e7b0
mov qword [rsp + 0x60], rax
movdqu xmmword [r12 + 0x58], xmm6
imul eax, ebp, 0x9e3779b9
imul ecx, ebp, 0x31415926
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x20
lea rdx, [0x14014bb98]
movzx eax, word [rdx + rax*2]
add eax, ebp
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x20
lea rcx, [0x14014c2cc]
mov r14d, dword [rcx + rax*4]
mov eax, r14d
shr eax, 8
cmp eax, ebp
mov eax, 0
cmovne r14d, eax
mov edi, dword [rsp + 0xd8]
cmp edi, 0x110000
jne 0x14001e830
test r14b, r14b
jne 0x14001f570
mov dword [rsp + 0xd8], ebp
jmp 0x14001e39a
cmp byte [rsp + 0xdc], 0
je 0x14001e9ce
cmp byte [rsp + 0xdd], r14b
jae 0x14001ea3a
lea eax, [rdi - 0x1100]
cmp eax, 0x13
jae 0x14001ec73
lea eax, [rbp - 0x1161]
cmp eax, 0x15
jae 0x14001ecbd
imul eax, edi, 0x24c
lea ecx, [rbp + rbp*8]
lea ecx, [rcx + rcx*2]
add ecx, ebp
add eax, ecx
add eax, 0xffd7b964
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
cmp edx, 0x80
jb 0x14001e392
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x14001e332
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x14014f574]
movzx eax, word [r8 + rax*2]
add eax, edx
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea rcx, [0x140150590]
mov rax, qword [rcx + rax*8]
cmp edx, eax
jne 0x14001e392
mov rcx, rax
movabs rdx, 0xffffffffffff
and rcx, rdx
movabs rdx, 0xd4effffffff
cmp rcx, rdx
ja case.0x14001e5a0.1
mov rdi, rax
shr rdi, 0x30
shr rax, 0x20
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, rdi
jb case.0x14001e5a0.1
test rdi, rdi
je 0x14001e39a
lea rcx, [0x1401545f8]
lea r14, [rcx + rax*4]
shl edi, 2
xor r13d, r13d
nop word [rax + rax]
mov edx, dword [r14 + r13]
mov rcx, r12
call fcn.140025670
add r13, 4
cmp rdi, r13
jne 0x14001e970
jmp 0x14001e39a
lea eax, [rdi - 0x1100]
cmp eax, 0x13
jae 0x14001eb81
lea eax, [rbp - 0x1161]
cmp eax, 0x15
jae 0x14001ebcb
imul eax, edi, 0x24c
lea ecx, [rbp + rbp*8]
lea ecx, [rcx + rcx*2]
add ecx, ebp
add eax, ecx
add eax, 0xffd7b964
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
lea rax, [rdi + 1]
mov qword [rsp + 0x88], rax
movzx eax, byte [rdi]
test al, al
js 0x14001ed31
mov edx, eax
cmp byte [rsp + 0xb0], 0
jne 0x14001ee6e
jmp 0x14001e8a0
test r14b, r14b
je 0x14001f6a6
cmp dword [rsp + 0xb8], 0
jne 0x14001f362
movzx edi, word [rsp + 0xbc]
cmp rdi, 3
jbe 0x14001f3aa
lea edx, [rdi*8]
movzx eax, byte [0x1401bb111]
xor ecx, ecx
call fcn.140089d40
test rax, rax
je case.0x14001e5a0.1
lea ecx, [rdi + rdi]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], 0
cmp edi, 4
jne case.0x14001e5a0.1
xor r13d, r13d
nop dword [rax]
mov ecx, dword [rsp + r13*4 + 0xc0]
mov dword [rsp + r13*4 + 0xc0], 0
mov dword [rax + r13*4], ecx
mov ecx, dword [rsp + r13*4 + 0xc4]
mov dword [rsp + r13*4 + 0xc4], 0
mov dword [rax + r13*4 + 4], ecx
add r13, 2
cmp rdi, r13
jne 0x14001eab0
jmp 0x14001f44a
lea r8, [rsp + 0x50]
cmp ax, 4
ja case.0x14001e5a0.1
mov rdx, rax
sub rdx, rcx
jb case.0x14001e5a0.1
cmp rdx, 2
jb 0x14001ec47
lea rcx, [r8 + rcx*8]
cmp rdx, 0x15
jae 0x14001ec42
lea rax, [r8 + rax*8]
lea rdx, [rcx + 8]
xor r8d, r8d
jmp 0x14001eb4e
mov r11, rcx
shl r10, 0x20
or r10, r9
mov qword [r11], r10
add rdx, 8
add r8, 0xfffffffffffffff8
cmp rdx, rax
je 0x14001ec47
movzx r9d, byte [rdx]
cmp r9b, byte [rdx - 8]
jae 0x14001eb3d
mov r10d, dword [rdx + 4]
xor edi, edi
nop
mov r11, qword [rdx + rdi - 8]
mov qword [rdx + rdi], r11
cmp r8, rdi
je 0x14001eb30
lea r11, [rdi - 8]
cmp r9b, byte [rdx + rdi - 0x10]
mov rdi, r11
jb 0x14001eb60
add r11, rdx
jmp 0x14001eb33
lea eax, [rdi - 0xac00]
cmp eax, 0x2ba3
ja 0x14001ebcb
lea ecx, [rbp - 0x11a8]
cmp ecx, 0x1a
ja 0x14001ebcb
movzx ecx, ax
shr ecx, 2
imul ecx, ecx, 0x4925
shr ecx, 0x11
lea edx, [rcx + rcx*8]
lea edx, [rdx + rdx*2]
add edx, ecx
sub eax, edx
test ax, ax
jne 0x14001ebcb
lea eax, [rdi + rbp]
add eax, 0xffffee59
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
mov eax, ebp
or eax, edi
cmp eax, 0x10000
jae 0x14001edaa
mov ecx, edi
shl ecx, 0x10
or ecx, ebp
imul eax, ecx, 0x9e3779b9
imul edx, ecx, 0x31415926
xor eax, edx
imul rax, rax, 0x3a0
shr rax, 0x20
lea r8, [0x14014d134]
movzx eax, word [r8 + rax*2]
add eax, ecx
imul eax, eax, 0x9e3779b9
xor eax, edx
imul rax, rax, 0x3a0
shr rax, 0x20
lea rdx, [0x14014d874]
cmp dword [rdx + rax*8], ecx
jne 0x14001f20f
lea rcx, [0x14014d874]
mov eax, dword [rcx + rax*8 + 4]
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
call fcn.1400250d0
mov ecx, dword [rsp + 0x48]
test ecx, ecx
je 0x14001ec61
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rdx
jmp 0x14001e644
movzx edx, word [rsp + 0x4c]
mov qword [rsp + 0xa8], rdx
jmp 0x14001e644
lea eax, [rdi - 0xac00]
cmp eax, 0x2ba3
ja 0x14001ecbd
lea ecx, [rbp - 0x11a8]
cmp ecx, 0x1a
ja 0x14001ecbd
movzx ecx, ax
shr ecx, 2
imul ecx, ecx, 0x4925
shr ecx, 0x11
lea edx, [rcx + rcx*8]
lea edx, [rdx + rdx*2]
add edx, ecx
sub eax, edx
test ax, ax
jne 0x14001ecbd
lea eax, [rdi + rbp]
add eax, 0xffffee59
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
mov eax, ebp
or eax, edi
cmp eax, 0x10000
jae 0x14001edfc
shl edi, 0x10
or edi, ebp
imul eax, edi, 0x9e3779b9
imul ecx, edi, 0x31415926
xor eax, ecx
imul rax, rax, 0x3a0
shr rax, 0x20
lea rdx, [0x14014d134]
movzx eax, word [rdx + rax*2]
add eax, edi
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x3a0
shr rax, 0x20
lea rcx, [0x14014d874]
cmp dword [rcx + rax*8], edi
jne 0x14001f358
lea rcx, [0x14014d874]
mov eax, dword [rcx + rax*8 + 4]
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
mov edx, eax
and edx, 0x1f
lea rcx, [rdi + 2]
mov qword [rsp + 0x88], rcx
movzx r8d, byte [rdi + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x14001ee4e
lea rcx, [rdi + 3]
mov qword [rsp + 0x88], rcx
movzx ecx, byte [rdi + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp al, 0xf0
jb 0x14001f076
lea rax, [rdi + 4]
mov qword [rsp + 0x88], rax
movzx eax, byte [rdi + 3]
and edx, 7
shl edx, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or eax, edx
mov edx, eax
cmp byte [rsp + 0xb0], 0
jne 0x14001ee6e
jmp 0x14001e8a0
cmp edi, 0x11346
jg 0x14001efea
cmp edi, 0x110a4
jle 0x14001f090
cmp edi, 0x110a5
je 0x14001f1c5
cmp edi, 0x11131
je 0x14001f1eb
cmp edi, 0x11132
jne 0x14001f20f
mov eax, 0x1112f
cmp ebp, 0x11127
je 0x14001ea02
jmp 0x14001f20f
cmp edi, 0x11346
jg 0x14001f030
cmp edi, 0x110a4
jle 0x14001f10b
cmp edi, 0x110a5
je 0x14001f30e
cmp edi, 0x11131
je 0x14001f334
cmp edi, 0x11132
jne 0x14001f358
mov eax, 0x1112f
cmp ebp, 0x11127
je 0x14001e880
jmp 0x14001f358
shl edx, 6
or edx, r8d
nop word cs:[rax + rax]
cmp byte [rsp + 0xb0], 0
je 0x14001e8a0
cmp edx, 0x80
jb 0x14001e392
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x14001e332
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x20
lea r9, [0x140157b30]
movzx r8d, word [r9 + r8*2]
add r8d, edx
imul r8d, r8d, 0x9e3779b9
xor r8d, eax
imul r8, r8, 0xee4
shr r8, 0x20
lea r9, [0x1401598f8]
mov r8, qword [r9 + r8*8]
cmp edx, r8d
jne 0x14001ef2b
mov rax, r8
shr rax, 0x23
and eax, 0x1fff
cmp eax, 0x2cc
ja case.0x14001e5a0.1
mov rdi, r8
shr rdi, 0x30
shr r8, 0x20
movzx eax, r8w
mov ecx, 0x1667
sub rcx, rax
cmp rcx, rdi
jb case.0x14001e5a0.1
mov eax, eax
lea rcx, [0x140161018]
lea r14, [rcx + rax*4]
test rdi, rdi
jne 0x14001efc2
jmp 0x14001e39a
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x14014f574]
movzx ecx, word [r8 + rcx*2]
add ecx, edx
imul ecx, ecx, 0x9e3779b9
xor ecx, eax
imul rax, rcx, 0x80d
shr rax, 0x20
lea rcx, [0x140150590]
mov rax, qword [rcx + rax*8]
cmp edx, eax
jne 0x14001e392
mov rcx, rax
movabs rdx, 0xffffffffffff
and rcx, rdx
movabs rdx, 0xd4effffffff
cmp rcx, rdx
ja case.0x14001e5a0.1
mov rdi, rax
shr rdi, 0x30
shr rax, 0x20
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, rdi
jb case.0x14001e5a0.1
mov eax, eax
lea rcx, [0x1401545f8]
lea r14, [rcx + rax*4]
test rdi, rdi
je 0x14001e39a
shl edi, 2
xor r13d, r13d
nop dword [rax + rax]
mov edx, dword [r14 + r13]
mov rcx, r12
call fcn.140025670
add r13, 4
cmp rdi, r13
jne 0x14001efd0
jmp 0x14001e39a
cmp edi, 0x115b7
jle 0x14001f0be
cmp edi, 0x115b8
je 0x14001f1d8
cmp edi, 0x115b9
je 0x14001f1fe
cmp edi, 0x11935
jne 0x14001f20f
mov eax, 0x11938
cmp ebp, 0x11930
je 0x14001ea02
jmp 0x14001f20f
cmp edi, 0x115b7
jle 0x14001f139
cmp edi, 0x115b8
je 0x14001f321
cmp edi, 0x115b9
je 0x14001f347
cmp edi, 0x11935
jne 0x14001f358
mov eax, 0x11938
cmp ebp, 0x11930
je 0x14001e880
jmp 0x14001f358
shl edx, 0xc
or ecx, edx
mov edx, ecx
cmp byte [rsp + 0xb0], 0
jne 0x14001ee6e
jmp 0x14001e8a0
cmp edi, 0x11099
je 0x14001f186
cmp edi, 0x1109b
jne 0x14001f20f
mov eax, 0x1109c
cmp ebp, 0x110ba
je 0x14001ea02
jmp 0x14001f20f
cmp edi, 0x11347
je 0x14001f199
cmp edi, 0x114b9
jne 0x14001f20f
cmp ebp, 0x114b0
je 0x14001f530
cmp ebp, 0x114ba
je 0x14001f51f
cmp ebp, 0x114bd
jne 0x14001f20f
mov eax, 0x114be
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
cmp edi, 0x11099
je 0x14001f2cf
cmp edi, 0x1109b
jne 0x14001f358
mov eax, 0x1109c
cmp ebp, 0x110ba
je 0x14001e880
jmp 0x14001f358
cmp edi, 0x11347
je 0x14001f2e2
cmp edi, 0x114b9
jne 0x14001f358
cmp ebp, 0x114b0
je 0x14001f552
cmp ebp, 0x114ba
je 0x14001f541
cmp ebp, 0x114bd
jne 0x14001f358
mov eax, 0x114be
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
mov eax, 0x1109a
cmp ebp, 0x110ba
je 0x14001ea02
jmp 0x14001f20f
mov eax, 0x1134b
cmp ebp, 0x1133e
je 0x14001ea02
mov eax, 0x110000
cmp ebp, 0x11357
mov ecx, 0x1134c
cmove eax, ecx
je 0x14001ea02
jmp 0x14001f20f
mov eax, 0x110ab
cmp ebp, 0x110ba
je 0x14001ea02
jmp 0x14001f20f
mov eax, 0x115ba
cmp ebp, 0x115af
je 0x14001ea02
jmp 0x14001f20f
mov eax, 0x1112e
cmp ebp, 0x11127
je 0x14001ea02
jmp 0x14001f20f
mov eax, 0x115bb
cmp ebp, 0x115af
je 0x14001ea02
test r14b, r14b
je 0x14001f745
cmp dword [rsp + 0xb8], 0
jne 0x14001f362
movzx edi, word [rsp + 0xbc]
cmp rdi, 3
jbe 0x14001f3aa
lea edx, [rdi*8]
movzx eax, byte [0x1401bb111]
xor ecx, ecx
call fcn.140089d40
test rax, rax
je case.0x14001e5a0.1
lea ecx, [rdi + rdi]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], 0
cmp edi, 4
jne case.0x14001e5a0.1
xor r13d, r13d
nop word cs:[rax + rax]
mov ecx, dword [rsp + r13*4 + 0xc0]
mov dword [rsp + r13*4 + 0xc0], 0
mov dword [rax + r13*4], ecx
mov ecx, dword [rsp + r13*4 + 0xc4]
mov dword [rsp + r13*4 + 0xc4], 0
mov dword [rax + r13*4 + 4], ecx
add r13, 2
cmp rdi, r13
jne 0x14001f290
jmp 0x14001f44a
mov eax, 0x1109a
cmp ebp, 0x110ba
je 0x14001e880
jmp 0x14001f358
mov eax, 0x1134b
cmp ebp, 0x1133e
je 0x14001e880
mov eax, 0x110000
cmp ebp, 0x11357
mov ecx, 0x1134c
cmove eax, ecx
je 0x14001e880
jmp 0x14001f358
mov eax, 0x110ab
cmp ebp, 0x110ba
je 0x14001e880
jmp 0x14001f358
mov eax, 0x115ba
cmp ebp, 0x115af
je 0x14001e880
jmp 0x14001f358
mov eax, 0x1112e
cmp ebp, 0x11127
je 0x14001e880
jmp 0x14001f358
mov eax, 0x115bb
cmp ebp, 0x115af
je 0x14001e880
cmp dword [rsp + 0xb8], 0
je 0x14001f39c
mov rdi, qword [rsp + 0xd0]
cmp rdi, qword [rsp + 0xc0]
jne 0x14001f381
lea rcx, [rsp + 0xc0]
call fcn.140026610
mov rax, qword [rsp + 0xc8]
mov dword [rax + rdi*4], ebp
inc rdi
mov qword [rsp + 0xd0], rdi
jmp 0x14001f50a
movzx edi, word [rsp + 0xbc]
cmp rdi, 3
ja 0x14001f3c0
mov dword [rsp + rdi*4 + 0xc0], ebp
inc edi
mov word [rsp + 0xbc], di
jmp 0x14001f50a
lea edx, [rdi*8]
movzx eax, byte [0x1401bb111]
xor ecx, ecx
call fcn.140089d40
test rax, rax
je case.0x14001e5a0.1
lea ecx, [rdi + rdi]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], 0
cmp edi, 4
jne case.0x14001e5a0.1
xor r13d, r13d
nop dword [rax]
mov ecx, dword [rsp + r13*4 + 0xc0]
mov dword [rsp + r13*4 + 0xc0], 0
mov dword [rax + r13*4], ecx
mov ecx, dword [rsp + r13*4 + 0xc4]
mov dword [rsp + r13*4 + 0xc4], 0
mov dword [rax + r13*4 + 4], ecx
add r13, 2
cmp rdi, r13
jne 0x14001f410
mov word [rsp + 0xbc], 0
movups xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0xf0], xmm0
mov qword [rsp + 0x100], r13
cmp r13, qword [rsp + 0xf0]
jne 0x14001f483
lea rcx, [rsp + 0xf0]
call fcn.140026610
mov rax, qword [rsp + 0xf8]
mov dword [rax + r13*4], ebp
inc r13
mov qword [rsp + 0x100], r13
lea rax, [rsp + 0x144]
mov qword [rax + 0x10], r13
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rax], xmm0
cmp dword [rsp + 0xb8], 0
je 0x14001f4dc
cmp qword [rsp + 0xc0], 0
je 0x14001f4dc
mov r8, qword [rsp + 0xc8]
mov rcx, qword [0x1401bb0c8]
xor edx, edx
call fcn.1400fda74
mov dword [rsp + 0xb8], 1
movdqu xmm0, xmmword [rsp + 0x140]
movdqu xmm1, xmmword [rsp + 0x14c]
movdqu xmmword [r12 + 0x80], xmm1
movdqu xmmword [r12 + 0x74], xmm0
mov byte [rsp + 0xdc], 1
mov byte [rsp + 0xdd], r14b
jmp 0x14001e39a
mov eax, 0x114bb
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
mov eax, 0x114bc
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
mov eax, 0x114bb
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
mov eax, 0x114bc
mov dword [rsp + 0xd8], eax
jmp 0x14001e39a
mov edi, ebp
cmp edi, 0x80
jb 0x14001f70c
mov dword [rsp + 0x140], 0
mov eax, edi
cmp edi, 0x800
jae 0x14001f5b0
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x140], al
mov ebp, 2
mov eax, 1
jmp 0x14001f65c
cmp edi, 0x10000
jae 0x14001f626
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x140], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x141], al
mov ebp, 3
mov eax, 2
jmp 0x14001f65c
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x40], 0
mov edi, dword [rsp + 0xd8]
mov eax, 2
cmp edi, 0x110000
je 0x14001e204
mov dword [rsp + 0xd8], 0x110000
cmp edi, 0x80
jb 0x14001f70c
jmp 0x14001f57e
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x140], al
mov eax, edi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x141], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x142], al
mov ebp, 4
mov eax, 3
and dil, 0x3f
or dil, 0x80
mov byte [rsp + rax + 0x140], dil
mov rsi, qword [rsp + 0x2e0]
mov rax, qword [rsi]
mov r14, qword [rsi + 0x10]
sub rax, r14
cmp rax, rbp
jb 0x14001f72e
mov rcx, qword [rsi + 8]
add rcx, r14
lea rdx, [rsp + 0x140]
mov r8, rbp
call sub.msvcrt.dll_memcpy
add r14, rbp
jmp 0x14001e1fb
mov dword [rsp + 0xd8], ebp
mov byte [rsp + 0xdc], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
cmp edi, 0x80
jb 0x14001f70c
jmp 0x14001f57e
test rdx, rdx
je 0x14001f6e3
mov word [rsp + 0xbc], 0
mov edi, dword [rsp + 0xd8]
mov dword [rsp + 0xd8], 0x110000
cmp edi, 0x110000
je 0x14001f759
nop dword [rax]
cmp edi, 0x80
jae 0x14001f57e
mov rsi, qword [rsp + 0x2e0]
mov r14, qword [rsi + 0x10]
cmp r14, qword [rsi]
jne 0x14001e1f0
mov rcx, rsi
call fcn.1400ce080
jmp 0x14001e1f0
mov rcx, rsi
mov rdx, r14
mov r8, rbp
call fcn.140026460
mov r14, qword [rsi + 0x10]
jmp 0x14001f687
mov dword [rsp + 0xd8], ebp
cmp edi, 0x80
jb 0x14001f70c
jmp 0x14001f57e
cmp dword [rsp + 0x48], 0
je 0x14001f798
cmp qword [rsp + 0x50], 0
mov r15, qword [rsp + 0x2e8]
mov rsi, qword [rsp + 0x2e0]
je 0x14001f792
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x1401bb0c8]
xor edx, edx
call fcn.1400fda74
mov eax, dword [rsp + 0xb8]
test eax, eax
jne 0x14001f7ac
jmp 0x14001f7cd
mov r15, qword [rsp + 0x2e8]
mov rsi, qword [rsp + 0x2e0]
test eax, eax
je 0x14001f7cd
cmp qword [rsp + 0xc0], 0
je 0x14001f7cd
mov r8, qword [rsp + 0xc8]
mov rcx, qword [0x1401bb0c8]
xor edx, edx
call fcn.1400fda74
movabs rbx, 0x8080808080808080
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x118], 8
mov qword [rsp + 0x120], 0
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x140], 0
mov qword [rsp + 0x148], rcx
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x160], 0
mov qword [rsp + 0x168], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x170], rax
mov byte [rsp + 0x178], 1
mov word [rsp + 0x180], 1
and qword [rsp + 0x188], 0xffffffffffff00ff
mov dil, 1
lea r14, [rsp + 0x140]
lea r12, [0x1401477d0]
movdqa xmm6, xmmword [0x140124790]
movdqa xmm7, xmmword [0x1401247a0]
xorps xmm8, xmm8
movdqa xmm14, xmmword [0x140124800]
movdqa xmm15, xmmword [0x140124810]
movdqa xmm10, xmmword [0x140124830]
movdqa xmm11, xmmword [0x140124840]
movdqa xmm12, xmmword [0x140124850]
movdqa xmm13, xmmword [0x140124860]
movdqa xmm9, xmmword [0x140124870]
mov dword [rsp + 0x24], 0
jmp 0x14001f920
movabs rax, 0x8080808080808080
test qword [r11], rax
je 0x140020d6a
mov byte [rsp + 0xe0], 1
mov al, 1
mov dword [rsp + 0x24], eax
xor edi, edi
mov r15, qword [rsp + 0x2e8]
movabs rbx, 0x8080808080808080
lea r14, [rsp + 0x140]
nop word [rax + rax]
mov rcx, r14
call fcn.14009b810
test rax, rax
je 0x140020e92
mov rbp, rax
mov r13, rdx
test dil, 1
jne 0x14001f95d
mov rsi, qword [r15 + 0x10]
cmp rsi, qword [r15]
jne 0x14001f94e
mov rcx, r15
call fcn.1400ce080
mov rax, qword [r15 + 8]
mov byte [rax + rsi], 0x2e
inc rsi
mov qword [r15 + 0x10], rsi
cmp r13, 4
jb 0x14001f970
cmp dword [rbp], 0x2d2d6e78
je 0x14001fb36
test byte [rsp + 0x24], 1
jne 0x14001fae8
test r13, r13
je 0x14001fae0
mov rax, rbp
add rax, r13
mov rcx, rbp
jmp 0x14001f999
cmp rcx, rax
je 0x14001fae0
movzx edx, byte [rcx]
test dl, dl
js 0x14001f9c0
inc rcx
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001f990
jmp 0x14001fa50
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001fa17
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001fa34
movzx edx, byte [rcx + 3]
add rcx, 4
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001f990
jmp 0x14001fa50
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jae 0x14001fa50
jmp 0x14001f990
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001f990
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001fa83
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001f990
shr r8, 1
add r8, r10
lea rsi, [r8 + r8*2]
mov r11d, dword [r12 + rsi*4]
mov edi, dword [r12 + rsi*4 + 4]
cmp edi, edx
jb 0x14001fa9f
cmp r11d, edx
jbe 0x14001fab0
cmp edi, edx
jae 0x14001fa70
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001fa70
movzx edx, byte [r12 + rsi*4 + 8]
cmp edx, 0x11
ja 0x14001f990
mov r8d, 0x20003
bt r8d, edx
jae 0x14001f990
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x14001fae8
mov dword [rsp + 0x24], 0
mov rcx, rbp
mov rdx, r13
mov r8, qword [rsp + 0x1a0]
lea r9, [rsp + 0xe0]
call fcn.140021780
mov rax, qword [r15]
mov rdi, qword [r15 + 0x10]
sub rax, rdi
cmp rax, r13
jb 0x14001ffa4
mov rcx, qword [r15 + 8]
add rcx, rdi
mov rdx, rbp
mov r8, r13
call sub.msvcrt.dll_memcpy
add r13, rdi
mov qword [r15 + 0x10], r13
xor edi, edi
jmp 0x14001f920
add r13, 0xfffffffffffffffc
lea r11, [rbp + 4]
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], r13
mov byte [rsp + 0x60], 1
movabs rax, 0x2d0000002d
mov qword [rsp + 0x58], rax
lea rax, [rbp + 0xb]
and rax, 0xfffffffffffffff8
sub rax, r11
mov rcx, rbp
add rcx, 3
mov rsi, r13
jmp 0x14001fb9e
mov qword [rsp + 0x50], rsi
cmp rsi, r13
ja 0x14001fcb0
mov r8, rsi
sub r8, rax
and r8d, 0xf
cmp rsi, rax
mov r9d, 0
mov rdx, rsi
cmova rdx, rax
cmovae r9, r8
mov r8, rsi
sub r8, r9
jb case.0x14001e5a0.1
lea r9, [r11 + rsi]
sub r9, r11
sub r9, r8
lea r10, [rcx + rsi]
nop word cs:[rax + rax]
test r9, r9
je 0x14001fc00
dec r9
cmp byte [r10], 0x2d
lea r10, [r10 - 1]
jne 0x14001fbe0
add r9, r8
mov rsi, r9
jmp 0x14001fc60
mov r9, r8
cmp r8, rdx
jbe 0x14001fc36
lea r8, [r9 - 0x10]
movdqu xmm0, xmmword [rbp + r9 - 0xc]
movdqa xmm1, xmm0
pxor xmm1, xmm6
paddq xmm1, xmm7
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
test r10, rbx
je 0x14001fc00
cmp r9, rsi
ja case.0x14001e5a0.1
mov rsi, r9
nop word cs:[rax + rax]
sub rsi, 1
jb 0x14001fcb0
cmp byte [rcx + r9], 0x2d
mov r9, rsi
jne 0x14001fc50
cmp rsi, r13
jae 0x14001fb90
mov dl, 0x2d
cmp byte [r11 + rsi], dl
jne 0x14001fb90
test rsi, rsi
mov qword [rsp + 0x28], r11
je 0x140020017
cmp rsi, r13
jae 0x14001fc93
cmp byte [r11 + rsi], 0xbf
jle case.0x14001e5a0.1
lea rbx, [rsi + 1]
cmp rbx, r13
jae 0x140020021
cmp byte [r11 + rbx], 0xbf
jg 0x14002002a
jmp case.0x14001e5a0.1
mov rbx, r11
xor esi, esi
mov eax, 1
mov qword [rsp + 0x28], rax
add r13, rbx
mov dword [rsp + 0x128], pe_nt_image_headers64
mov edi, 0x48
xor ebp, ebp
xor r8d, r8d
xor r14d, r14d
mov eax, esi
cmp rbx, r13
mov qword [rsp + 0x30], r8
je 0x14001ff59
mov dword [rsp + 0x130], eax
lea r9d, [rdi + 0x1a]
inc rbx
mov r10d, edi
neg r10d
mov r11d, 1
mov r15d, 0x24
mov ecx, r14d
movzx eax, byte [rbx - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jb 0x14001fd40
nop dword [rax]
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x14001fd44
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x14001fd44
jmp 0x14001f8ed
add al, 0xea
mov edx, eax
test r11d, r11d
je case.0x14001e5a0.1
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x14001f8ed
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + r15]
cmp r15d, r9d
mov edx, 0x1a
cmovae eax, edx
cmp r15d, edi
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x14001fdd0
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x14001f8ed
cmp rbx, r13
je 0x14001f8ed
add r15d, 0x24
imul r11d, r8d
inc rbx
movzx eax, byte [rbx - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x14001fd20
jmp 0x14001fd40
mov r10d, dword [rsp + 0x130]
inc r10d
je case.0x14001e5a0.1
mov eax, ecx
sub eax, r14d
test r14d, r14d
mov r8d, 2
mov edx, 0x2bc
cmove r8d, edx
xor edi, edi
xor edx, edx
div r8d
mov r8d, eax
xor edx, edx
div r10d
add eax, r8d
cmp eax, 0x1c8
mov r9d, 0xd41d41d5
jb 0x14001fe49
xor edi, edi
nop dword [rax]
mov edx, eax
imul rdx, r9
shr rdx, 0x20
mov r8d, eax
sub r8d, edx
shr r8d, 1
add r8d, edx
shr r8d, 5
add edi, 0x24
cmp eax, 0x3e57
mov eax, r8d
ja 0x14001fe20
jmp 0x14001fe4c
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov r9d, eax
mov eax, ecx
xor edx, edx
mov dword [rsp + 0x130], r10d
div r10d
add dword [rsp + 0x128], eax
jb 0x14001f8ed
mov eax, dword [rsp + 0x128]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x14001f8ed
mov r14d, edx
mov rax, qword [rsp + 0x118]
mov r15d, edx
mov r8, qword [rsp + 0x30]
test r8, r8
je 0x14001fee0
xor ecx, ecx
jmp 0x14001fec9
add rcx, 0x10
cmp rbp, rcx
je 0x14001fee0
mov rdx, qword [rax + rcx]
cmp rdx, r15
jb 0x14001fec0
inc rdx
mov qword [rax + rcx], rdx
jmp 0x14001fec0
cmp r8, qword [rsp + 0x110]
jne 0x14001ff16
lea rcx, [rsp + 0x110]
mov word [rsp + 0x138], r9w
call fcn.1400266b0
movzx r9d, word [rsp + 0x138]
mov r8, qword [rsp + 0x30]
mov rax, qword [rsp + 0x118]
movzx ecx, r9w
add edi, ecx
mov rcx, r8
shl rcx, 4
mov qword [rax + rcx], r15
mov edx, dword [rsp + 0x128]
mov dword [rax + rcx + 8], edx
inc r8
mov qword [rsp + 0x120], r8
inc r14d
add rbp, 0x10
mov eax, dword [rsp + 0x130]
cmp rbx, r13
mov qword [rsp + 0x30], r8
jne 0x14001fcea
mov r13, qword [rsp + 0x118]
cmp r8, 2
mov r15, qword [rsp + 0x2e8]
lea r14, [rsp + 0x140]
mov rbx, qword [rsp + 0x28]
jb 0x140020112
mov rdx, qword [rsp + 0x30]
cmp rdx, 0x15
jae 0x140020105
mov rax, rdx
shl rax, 4
add rax, r13
lea rcx, [r13 + 0x10]
mov edx, 0x10
jmp 0x14001ffe0
mov rcx, r15
mov rdx, rdi
mov r8, r13
call fcn.140026460
mov rdi, qword [r15 + 0x10]
jmp 0x14001fb16
mov r10, r13
mov qword [r10], r8
mov dword [r10 + 8], r9d
mov rbx, qword [rsp + 0x28]
add rcx, 0x10
add rdx, 0x10
cmp rcx, rax
je 0x140020112
mov r8, qword [rcx]
cmp r8, qword [rcx - 0x10]
jae 0x14001ffcf
mov r9d, dword [rcx + 8]
mov r11, rdx
movdqu xmm0, xmmword [r13 + r11 - 0x10]
movdqu xmmword [r13 + r11], xmm0
cmp r11, 0x10
je 0x14001ffc0
lea r10, [r11 - 0x10]
cmp r8, qword [r13 + r11 - 0x20]
mov r11, r10
jb 0x14001fff0
add r10, r13
jmp 0x14001ffc3
mov rbx, r11
xor esi, esi
jmp 0x14001fcbf
mov rbx, r13
jne case.0x14001e5a0.1
sub r13, rbx
add rbx, r11
cmp rsi, 8
jae 0x14001f8da
cmp byte [r11 + rsi - 1], 0
js 0x14001f8ed
mov rax, rsi
dec rax
je 0x14001fcbf
mov rax, qword [rsp + 0x28]
cmp byte [rax + rsi - 2], 0
js 0x14001f8ed
mov rax, rsi
add rax, 0xfffffffffffffffe
je 0x14001fcbf
mov rax, qword [rsp + 0x28]
cmp byte [rax + rsi - 3], 0
js 0x14001f8ed
mov rax, rsi
add rax, 0xfffffffffffffffd
je 0x14001fcbf
mov rax, qword [rsp + 0x28]
cmp byte [rax + rsi - 4], 0
js 0x14001f8ed
mov rax, rsi
add rax, 0xfffffffffffffffc
je 0x14001fcbf
mov rax, qword [rsp + 0x28]
cmp byte [rax + rsi - 5], 0
js 0x14001f8ed
mov rax, rsi
add rax, 0xfffffffffffffffb
je 0x14001fcbf
mov rax, qword [rsp + 0x28]
cmp byte [rax + rsi - 6], 0
js 0x14001f8ed
mov rax, rsi
add rax, 0xfffffffffffffffa
je 0x14001fcbf
mov rax, qword [rsp + 0x28]
cmp byte [rax + rsi - 7], 0
js 0x14001f8ed
mov rax, rsi
add rax, 0xfffffffffffffff9
je 0x14001fcbf
jmp 0x14001f8ed
mov rcx, r13
call fcn.140025270
mov rbx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
lea r8, [rax + rsi]
mov rax, qword [r15]
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x138], rcx
sub rax, rcx
cmp r8, rax
ja 0x140020dc7
add rsi, rbx
xor r10d, r10d
xor ebp, ebp
mov r8, qword [rsp + 0x30]
mov qword [rsp + 0x128], r13
cmp r10, r8
jb 0x140020160
cmp rbx, rsi
jne 0x1400201c9
jmp 0x1400203ad
mov rax, r10
shl rax, 4
cmp rbp, qword [r13 + rax]
jne 0x1400201c0
add rax, r13
inc r10
mov r14d, dword [rax + 8]
cmp r14d, 0x80
jb 0x1400201df
mov dword [rsp + 0x38], 0
cmp r14d, 0x800
mov qword [rsp + 0x130], r10
mov eax, r14d
jae 0x1400202a0
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x38], al
mov edi, 2
mov eax, 1
jmp 0x14002031f
cmp rbx, rsi
je 0x140020e90
movzx eax, byte [rbx]
test al, al
js 0x140020240
inc rbx
mov r14d, eax
cmp r14d, 0x80
jae 0x140020181
mov rdi, qword [r15 + 0x10]
cmp rdi, qword [r15]
jne 0x14002020f
mov rcx, r15
mov r13, r15
mov r15, rbp
mov rbp, r10
call fcn.1400ce080
mov r8, qword [rsp + 0x30]
mov r10, rbp
mov rbp, r15
mov r15, r13
mov r13, qword [rsp + 0x128]
mov rax, qword [r15 + 8]
mov byte [rax + rdi], r14b
inc rdi
mov qword [r15 + 0x10], rdi
inc rbp
lea r14, [rsp + 0x140]
cmp r10, r8
jb 0x140020160
jmp 0x140020150
mov r14d, eax
and r14d, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp al, 0xdf
jbe 0x1400202d0
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp al, 0xf0
jb 0x14002037c
movzx eax, byte [rbx + 3]
add rbx, 4
and r14d, 7
shl r14d, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or r14d, eax
cmp r14d, 0x80
jb 0x1400201df
jmp 0x140020181
cmp r14d, 0x10000
jae 0x1400202f0
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x38], al
mov eax, r14d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x39], al
mov edi, 3
mov eax, 2
jmp 0x14002031f
add rbx, 2
shl r14d, 6
or r14d, edx
cmp r14d, 0x80
jae 0x140020181
jmp 0x1400201df
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x38], al
mov eax, r14d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x39], al
mov eax, r14d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x3a], al
mov edi, 4
mov eax, 3
and r14b, 0x3f
or r14b, 0x80
mov byte [rsp + rax + 0x38], r14b
mov rax, qword [r15]
mov r14, qword [r15 + 0x10]
sub rax, r14
cmp rax, rdi
jb 0x140020399
mov rcx, qword [r15 + 8]
add rcx, r14
lea rdx, [rsp + 0x38]
mov r8, rdi
call sub.msvcrt.dll_memcpy
add r14, rdi
mov qword [r15 + 0x10], r14
inc rbp
lea r14, [rsp + 0x140]
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x130]
cmp r10, r8
jae 0x140020150
jmp 0x140020160
add rbx, 3
shl r14d, 0xc
or r14d, ecx
cmp r14d, 0x80
jb 0x1400201df
jmp 0x140020181
mov rcx, r15
mov rdx, r14
mov r8, rdi
call fcn.140026460
mov r14, qword [r15 + 0x10]
jmp 0x14002033b
mov rsi, qword [r15 + 8]
mov rbp, qword [r15 + 0x10]
mov r13, qword [rsp + 0x138]
test r13, r13
movabs rbx, 0x8080808080808080
je 0x1400203e3
cmp rbp, r13
jbe 0x1400203dd
cmp byte [rsi + r13], 0xbf
jg 0x1400203e3
jmp case.0x14001e5a0.1
jne case.0x14001e5a0.1
lea rax, [rsi + r13]
mov qword [rsp + 0x30], rax
test byte [rsp + 0x24], 1
jne 0x140020567
cmp rbp, r13
jne 0x140020409
mov dword [rsp + 0x24], 0
jmp 0x140020567
lea rax, [rsi + rbp]
mov rcx, qword [rsp + 0x30]
jmp 0x140020425
cmp rcx, rax
je 0x1400203fc
movzx edx, byte [rcx]
test dl, dl
js 0x140020440
inc rcx
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x140020420
jmp 0x1400204d0
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x140020493
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x1400204b0
movzx edx, byte [rcx + 3]
add rcx, 4
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x140020420
jmp 0x1400204d0
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jae 0x1400204d0
jmp 0x140020420
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x140020420
nop dword [rax]
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14002050d
movabs rbx, 0x8080808080808080
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x140020420
shr r8, 1
add r8, r10
lea rdi, [r8 + r8*2]
mov r11d, dword [r12 + rdi*4]
mov ebx, dword [r12 + rdi*4 + 4]
cmp ebx, edx
jb 0x140020529
cmp r11d, edx
jbe 0x140020538
cmp ebx, edx
jae 0x1400204f0
mov r10, r8
inc r10
mov r8, r9
jmp 0x1400204f0
movzx edx, byte [r12 + rdi*4 + 8]
cmp edx, 0x11
movabs rbx, 0x8080808080808080
ja 0x140020420
mov r8d, 0x20003
bt r8d, edx
jae 0x140020420
mov al, 1
mov dword [rsp + 0x24], eax
movq xmm0, qword [rsp + 0xe0]
movzx eax, byte [rsp + 0xe9]
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd ecx, xmm1
or cl, byte [rsp + 0xe8]
or al, byte [rsp + 0xea]
or al, cl
xor edi, edi
or al, byte [rsp + 0xeb]
jne 0x14001f920
cmp rbp, r13
je 0x140020e58
add rsi, rbp
xor edx, edx
xor ecx, ecx
mov rax, qword [rsp + 0x30]
movzx r8d, byte [rax]
test r8b, r8b
js 0x1400205e4
inc rax
jmp 0x140020680
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xe0
jb 0x14002063e
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14002064e
movzx r8d, byte [rax + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or r8d, r9d
cmp r8d, 0x110000
je 0x140020bfe
add rax, 4
jmp 0x14002065c
add rax, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14002065c
add rax, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
cmp r8d, 0x7f
jbe 0x140020680
jmp 0x14002070f
inc rax
cmp r8d, 0x80
jae 0x14002070d
cmp rax, rsi
je 0x140020bfe
movzx r8d, byte [rax]
test r8b, r8b
jns 0x140020670
mov edx, r8d
and edx, 0x1f
movzx r10d, byte [rax + 1]
and r10d, 0x3f
cmp r8b, 0xdf
jbe 0x1400206e9
movzx r9d, byte [rax + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp r8b, 0xf0
jb 0x1400206fb
movzx r8d, byte [rax + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
or r8d, edx
cmp r8d, 0x110000
je 0x140020bfe
add rax, 4
jmp 0x140020673
add rax, 2
shl edx, 6
or edx, r10d
mov r8d, edx
jmp 0x140020673
add rax, 3
shl edx, 0xc
or r9d, edx
mov r8d, r9d
jmp 0x140020673
xor edx, edx
mov r9d, edx
imul edx, r8d, 0x9e3779b9
imul r10d, r8d, 0x31415926
xor edx, r10d
imul rdx, rdx, 0x39a
shr rdx, 0x20
lea r11, [0x14014bb98]
movzx edx, word [r11 + rdx*2]
add edx, r8d
imul edx, edx, 0x9e3779b9
xor edx, r10d
imul rdx, rdx, 0x39a
shr rdx, 0x20
lea r10, [0x14014c2cc]
mov edx, dword [r10 + rdx*4]
mov r10d, edx
shr r10d, 8
cmp r10d, r8d
mov r10d, 0
cmovne edx, r10d
cmp r9b, dl
jbe 0x14002077d
test dl, dl
jne case.0x140020943.3907
lea r9d, [r8 - 0x340]
cmp r9d, 4
ja 0x140020794
cmp r9d, 2
jne case.0x140020943.3907
mov r9b, 2
cmp r8d, 0xd56
jg 0x140020801
cmp r8d, 0x9de
jg 0x140020847
cmp r8d, 0x93b
jg 0x140020972
lea r10d, [r8 - 0x30f]
cmp r10d, 0x36
ja 0x1400207db
movabs r11, 0x48020000001005
bt r11, r10
jb 0x140020bf0
lea r10d, [r8 - 0x374]
cmp r10d, 0x13
ja case.0x140020943.3908
mov r11d, 0x80401
bt r11d, r10d
jb case.0x140020943.3907
jmp case.0x140020943.3908
cmp r8d, 0x11126
jg 0x1400208b1
cmp r8d, 0x102d
jle 0x1400208fa
cmp r8d, 0x1f70
jg 0x1400209ca
cmp r8d, 0x102e
je 0x140020bf0
cmp r8d, 0x1b35
je 0x140020bf0
jmp case.0x140020943.3908
cmp r8d, 0xbd6
jg 0x140020946
cmp r8d, 0xbbd
jg 0x140020a6d
lea r10d, [r8 - 0xb3e]
cmp r10d, 0x19
ja 0x14002087e
mov r11d, 0x3000001
bt r11d, r10d
jb 0x140020bf0
lea r10d, [r8 - 0xa33]
cmp r10d, 0x2b
ja 0x14002089f
movabs r11, 0x80000000009
bt r11, r10
jb case.0x140020943.3907
cmp r8d, 0x9df
jne case.0x140020943.3908
jmp case.0x140020943.3907
cmp r8d, 0x114af
jle 0x14002099e
lea r10d, [r8 - 0x114b0]
cmp r10d, 0xd
ja 0x1400208db
mov r11d, 0x2401
bt r11d, r10d
jb 0x140020bf0
cmp r8d, 0x115af
je 0x140020bf0
cmp r8d, 0x11930
je 0x140020bf0
jmp case.0x140020943.3908
lea r10d, [r8 - 0xdca]
cmp r10d, 0x15
ja 0x140020917
mov r11d, 0x200021
bt r11d, r10d
jb 0x140020bf0
cmp r8d, 0xd57
je 0x140020bf0
lea r10d, [r8 - 0xf43]
cmp r10d, 0x76
ja case.0x140020943.3908
lea r11, [0x140124880]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xcc1
jg 0x140020a27
cmp r8d, 0xbd7
je 0x140020bf0
cmp r8d, 0xc56
je 0x140020bf0
jmp case.0x140020943.3908
cmp r8d, 0x93c
je 0x140020bf0
cmp r8d, 0x9be
je 0x140020bf0
cmp r8d, 0x9d7
je 0x140020bf0
jmp case.0x140020943.3908
cmp r8d, 0x11127
je 0x140020bf0
cmp r8d, 0x1133e
je 0x140020bf0
cmp r8d, 0x11357
je 0x140020bf0
jmp case.0x140020943.3908
cmp r8d, 0xfa0f
jle 0x140020a43
cmp r8d, 0x110ba
je 0x140020bf0
lea r10d, [r8 - 0xfa10]
cmp r10d, 0x12
ja 0x1400209fd
mov r11d, 0x50005
bt r11d, r10d
jb case.0x140020943.3907
lea r10d, [r8 - 0xfb1d]
cmp r10d, 0x21
ja case.0x140020943.3908
movabs r11, 0x200000005
bt r11, r10
jb case.0x140020943.3907
jmp case.0x140020943.3908
cmp r8d, 0xcc2
je 0x140020bf0
cmp r8d, 0xd3e
je 0x140020bf0
jmp case.0x140020943.3908
cmp r8d, 0x2125
jg 0x140020a7c
lea r10d, [r8 - 0x1f71]
cmp r10d, 0x8c
ja case.0x140020943.3908
lea r11, [0x140124a5c]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xbbe
je 0x140020bf0
jmp case.0x140020943.3908
lea r10d, [r8 - 0x2329]
cmp r10d, 2
jb case.0x140020943.3907
cmp r8d, 0x2126
je case.0x140020943.3907
cmp r8d, 0x2adc
je case.0x140020943.3907
movd xmm1, r8d
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x1401247c0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401247d0]
pxor xmm3, xmm14
pcmpgtd xmm3, xmmword [0x140124820]
pxor xmm2, xmm14
pcmpgtd xmm2, xmm10
packssdw xmm2, xmm3
packsswb xmm2, xmm2
pmovmskb r10d, xmm2
xor r10b, 0xff
jne case.0x140020943.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x1401247b0]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x1401247e0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401247f0]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r10d, xmm4
test r10b, r10b
jne case.0x140020943.3907
lea r10d, [r8 - 0x1d1bb]
cmp r10d, 6
jb case.0x140020943.3907
lea r10d, [r8 - 0x2f800]
cmp r10d, 0x21e
jb case.0x140020943.3907
movd r10d, xmm1
cmp r10d, 0x2000
je case.0x140020943.3907
cmp r10d, 0x212a
je case.0x140020943.3907
cmp r10d, 0xfb40
je case.0x140020943.3907
movdqa xmm1, xmm0
paddd xmm1, xmm11
paddd xmm0, xmm12
pxor xmm0, xmm14
pcmpgtd xmm0, xmm13
pxor xmm1, xmm14
pcmpgtd xmm1, xmm9
packssdw xmm0, xmm1
packsswb xmm0, xmm0
pmovmskb r11d, xmm0
xor r11b, 0xff
jne 0x140020bf0
lea r11d, [r8 - 0x11a8]
cmp r11d, 0x1b
jb 0x140020bf0
cmp r10d, 0x330
je 0x140020bf0
add r8d, 0xffffcf67
cmp r8d, 2
movzx r9d, cl
mov ecx, 2
cmovb r9d, ecx
mov ecx, r9d
cmp rax, rsi
jne 0x1400205d3
jmp 0x140020c01
mov r9d, ecx
test r9b, r9b
je 0x140020e58
movzx eax, r9b
cmp eax, 1
je case.0x140020943.3907
lea rcx, [rsp + 0x80]
movups xmmword [rcx], xmm8
mov byte [rcx + 0x10], 0
lea rax, [rsp + 0xf2]
movups xmmword [rax], xmm8
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x48], 0
mov word [rsp + 0x4c], 0
mov byte [rsp + 0x50], 0
mov dword [rsp + 0x54], 0
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x5c], 0
mov byte [rsp + 0x60], 0
mov dword [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], rsi
mov dword [rsp + 0x98], 0
mov word [rsp + 0x9c], 0
movzx eax, word [rsp + 0x100]
mov word [rcx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0xf0]
movdqu xmmword [rcx + 0x1e], xmm0
mov dword [rsp + 0xb8], 0x110000
mov byte [rsp + 0xbc], 0
cmp rdi, rsi
je 0x140020de1
movzx ebx, byte [rdi]
test bl, bl
js 0x140020ce5
inc rdi
jmp 0x140020d45
mov eax, ebx
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp bl, 0xdf
jbe 0x140020d2d
movzx ecx, byte [rdi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x140020d3a
movzx ebx, byte [rdi + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
or ebx, eax
cmp ebx, 0x110000
je 0x140020de1
add rdi, 4
jmp 0x140020d45
add rdi, 2
shl eax, 6
or eax, edx
mov ebx, eax
jmp 0x140020d45
add rdi, 3
shl eax, 0xc
or ecx, eax
mov ebx, ecx
lea rcx, [rsp + 0x38]
call fcn.1400258f0
xor r14d, r14d
cmp eax, 0x110000
je 0x140020df4
cmp eax, ebx
je 0x140020cd0
jmp 0x140020df4
mov r8, qword [rsp + 0x28]
lea rax, [r8 + 7]
and rax, 0xfffffffffffffff8
sub rax, r8
mov ecx, 8
cmove rax, rcx
lea rcx, [rsi - 8]
cmp rax, rcx
jae 0x140020dae
movabs rdx, 0x8080808080808080
test qword [r8 + rax], rdx
jne 0x14001f8ed
add rax, 8
cmp rax, rcx
mov r8, qword [rsp + 0x28]
jb 0x140020d8c
movabs rax, 0x8080808080808080
test qword [r8 + rcx], rax
jne 0x14001f8ed
jmp 0x14001fcbf
mov rcx, r15
mov rdx, qword [rsp + 0x138]
call fcn.140026460
mov rbx, qword [rsp + 0x28]
jmp 0x140020136
lea rcx, [rsp + 0x38]
call fcn.1400258f0
cmp eax, 0x110000
sete r14b
cmp dword [rsp + 0x48], 0
je 0x140020e16
cmp qword [rsp + 0x50], 0
je 0x140020e16
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x1401bb0c8]
xor edx, edx
call fcn.1400fda74
cmp dword [rsp + 0x98], 0
movabs rbx, 0x8080808080808080
je 0x140020e4b
cmp qword [rsp + 0xa0], 0
je 0x140020e4b
mov r8, qword [rsp + 0xa8]
mov rcx, qword [0x1401bb0c8]
xor edx, edx
call fcn.1400fda74
test r14b, r14b
lea r14, [rsp + 0x140]
je case.0x140020943.3907
sub rbp, r13
mov rcx, qword [rsp + 0x30]
mov rdx, rbp
mov r8, qword [rsp + 0x188]
lea r9, [rsp + 0xe0]
call fcn.140021780
xor edi, edi
jmp 0x14001f920
mov byte [rsp + 0xe5], 1
xor edi, edi
jmp 0x14001f920
jmp 0x140020e90
mov rcx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
mov rdx, qword [rsp + 0x198]
test rdx, rdx
je 0x140020eb6
cmp rax, rdx
jbe 0x140020eb4
cmp byte [rcx + rdx], 0xbf
jg 0x140020eb6
ud2
jne case.0x14001e5a0.1
sub rax, rdx
add rcx, rdx
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rax
movabs rax, 0x2e0000002e
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x70], 1
mov word [rsp + 0x78], 1
test byte [rsp + 0x24], 1
jne 0x140020f22
lea rsi, [rsp + 0x38]
nop dword [rax]
mov rcx, rsi
call fcn.14009b810
test rax, rax
jne 0x140020f10
jmp 0x1400216cf
lea rsi, [rsp + 0x38]
mov ebp, 0x62f8
mov rcx, rsi
call fcn.14009b810
test rax, rax
je 0x1400216cf
test rdx, rdx
je 0x140020f2c
movzx ecx, byte [rax]
test cl, cl
js 0x140020f50
lea r9, [rax + 1]
jmp 0x140020fc0
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x140020f99
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x140020fa9
lea r9, [rax + 4]
movzx ecx, byte [rax + 3]
and r8d, 7
shl r8d, 0x12
shl r10d, 6
and ecx, 0x3f
or ecx, r10d
or ecx, r8d
jmp 0x140020fc0
lea r9, [rax + 2]
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x140020fc0
lea r9, [rax + 3]
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
nop word [rax + rax]
add rdx, rax
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x140020fef
cmp r14d, ecx
cmova r10, r8
mov r8, r10
sub r8, r11
jbe 0x140021040
shr r8, 1
add r8, r11
lea r15, [r8 + r8*2]
mov r14d, dword [r12 + r15*4]
mov edi, dword [r12 + r15*4 + 4]
cmp edi, ecx
jb 0x14002100b
cmp r14d, ecx
jbe 0x140021020
cmp edi, ecx
jae 0x140020fe0
mov r11, r8
inc r11
mov r8, r10
jmp 0x140020fe0
movzx ecx, byte [r12 + r15*4 + 8]
test ecx, ecx
je 0x1400211e0
cmp ecx, 0x11
je 0x1400211e0
cmp ecx, 9
jne 0x1400216c7
cmp r9, rdx
je 0x140021150
movzx ecx, byte [r9]
test cl, cl
js 0x140021060
inc r9
jmp 0x1400210d0
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [r9 + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x1400210aa
movzx r10d, byte [r9 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x1400210ba
movzx ecx, byte [r9 + 3]
add r9, 4
and r8d, 7
shl r8d, 0x12
shl r10d, 6
and ecx, 0x3f
or ecx, r10d
or ecx, r8d
jmp 0x1400210d0
add r9, 2
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x1400210d0
add r9, 3
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
nop dword [rax + rax]
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x140021103
cmp r14d, ecx
cmova r10, r8
mov r8, r10
sub r8, r11
jbe 0x140021040
shr r8, 1
add r8, r11
lea r15, [r8 + r8*2]
mov r14d, dword [r12 + r15*4]
mov edi, dword [r12 + r15*4 + 4]
cmp edi, ecx
jb 0x14002111f
cmp r14d, ecx
jbe 0x140021130
cmp edi, ecx
jae 0x1400210f0
mov r11, r8
inc r11
mov r8, r10
jmp 0x1400210f0
movzx ecx, byte [r12 + r15*4 + 8]
cmp ecx, 0xe
ja 0x1400216c7
bt ebp, ecx
jb 0x140021040
jmp 0x1400216c7
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x1400214f5
dec rdx
cmp rdx, rax
jne 0x140021560
cmp ecx, 0x110000
je 0x140020f2c
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x1400211a3
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x1400213a0
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
mov r9d, dword [r12 + r10*4]
mov r11d, dword [r12 + r10*4 + 4]
cmp r11d, ecx
jb 0x1400211c4
cmp r9d, ecx
jbe 0x140021394
cmp r11d, ecx
jae 0x140021190
mov r8, rax
inc r8
mov rax, rdx
jmp 0x140021190
cmp r9, rdx
je 0x140021310
xor r8d, r8d
xor ecx, ecx
movzx r10d, byte [r9]
test r10b, r10b
js 0x1400211fc
inc r9
jmp 0x140021270
mov r11d, r10d
and r11d, 0x1f
movzx r15d, byte [r9 + 1]
and r15d, 0x3f
cmp r10b, 0xdf
jbe 0x140021249
movzx r14d, byte [r9 + 2]
shl r15d, 6
and r14d, 0x3f
or r14d, r15d
cmp r10b, 0xf0
jb 0x140021259
movzx r10d, byte [r9 + 3]
add r9, 4
and r11d, 7
shl r11d, 0x12
shl r14d, 6
and r10d, 0x3f
or r10d, r14d
or r10d, r11d
jmp 0x140021270
add r9, 2
shl r11d, 6
or r11d, r15d
mov r10d, r11d
jmp 0x140021270
add r9, 3
shl r11d, 0xc
or r14d, r11d
mov r10d, r14d
nop word [rax + rax]
mov r11d, 0x5a6
xor r15d, r15d
mov r14d, 0x5a6
jmp 0x1400212a3
cmp r13d, r10d
cmova r14, r11
mov r11, r14
sub r11, r15
jbe 0x1400216c7
shr r11, 1
add r11, r15
lea rdi, [r11 + r11*2]
mov r13d, dword [r12 + rdi*4]
mov ebx, dword [r12 + rdi*4 + 4]
cmp ebx, r10d
jb 0x1400212c0
cmp r13d, r10d
jbe 0x1400212d0
cmp ebx, r10d
jae 0x140021290
mov r15, r11
inc r15
mov r11, r14
jmp 0x140021290
movzx r10d, byte [r12 + rdi*4 + 8]
cmp r10d, 0x11
ja 0x1400216c7
mov r11d, 0x260d9
bt r11d, r10d
jae 0x1400212f7
cmp r9, rdx
jne 0x1400211ee
jmp 0x140021315
cmp r10d, 1
je 0x14002130b
cmp r10d, 5
jne 0x1400216c7
mov cl, 1
jmp 0x1400212ec
mov r8b, 1
jmp 0x1400212ec
xor ecx, ecx
xor r8d, r8d
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x1400215e5
dec rdx
cmp rdx, rax
jne 0x140021643
cmp r9d, 0x110000
je 0x1400216c7
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x140021363
cmp r11d, r9d
cmova rdx, rax
mov rax, rdx
sub rax, r10
jbe 0x14002146d
shr rax, 1
add rax, r10
lea rdi, [rax + rax*2]
mov r11d, dword [r12 + rdi*4]
mov r14d, dword [r12 + rdi*4 + 4]
cmp r14d, r9d
jb 0x140021384
cmp r11d, r9d
jbe 0x140021461
cmp r14d, r9d
jae 0x140021350
mov r10, rax
inc r10
mov rax, rdx
jmp 0x140021350
cmp byte [r12 + r10*4 + 8], 0xd
je 0x140020f2c
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x1400213c3
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x140020f2c
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
mov r9d, dword [r12 + r10*4]
mov r11d, dword [r12 + r10*4 + 4]
cmp r11d, ecx
jb 0x1400213e0
cmp r9d, ecx
jbe 0x1400213f0
cmp r11d, ecx
jae 0x1400213b0
mov r8, rax
inc r8
mov rax, rdx
jmp 0x1400213b0
cmp byte [r12 + r10*4 + 8], 9
je 0x140020f2c
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x140021423
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x1400216c7
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
mov r9d, dword [r12 + r10*4]
mov r11d, dword [r12 + r10*4 + 4]
cmp r11d, ecx
jb 0x140021440
cmp r9d, ecx
jbe 0x140021450
cmp r11d, ecx
jae 0x140021410
mov r8, rax
inc r8
mov rax, rdx
jmp 0x140021410
cmp byte [r12 + r10*4 + 8], 5
je 0x140020f2c
jmp 0x1400216c7
cmp byte [r12 + rdi*4 + 8], 0xd
je 0x1400216c7
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x140021493
cmp r11d, r9d
cmova rdx, rax
mov rax, rdx
sub rax, r10
jbe 0x1400216c7
shr rax, 1
add rax, r10
lea rdi, [rax + rax*2]
mov r11d, dword [r12 + rdi*4]
mov ebx, dword [r12 + rdi*4 + 4]
cmp ebx, r9d
jb 0x1400214b0
cmp r11d, r9d
jbe 0x1400214c0
cmp ebx, r9d
jae 0x140021480
mov r10, rax
inc r10
mov rax, rdx
jmp 0x140021480
movzx eax, byte [r12 + rdi*4 + 8]
cmp eax, 0x11
ja 0x1400216c7
mov edx, 0x20023
bt edx, eax
jae 0x1400216c7
test r8b, 1
je 0x140020f2c
and cl, 1
je 0x140020f2c
jmp 0x1400216c7
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x140021530
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jge 0x14002153a
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x140021542
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x14002154d
add rdx, 0xfffffffffffffffd
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp rdx, rax
je 0x140021168
cmp ecx, 0x110000
je 0x140020f2c
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x140021593
cmp r11d, ecx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x1400213a0
shr r8, 1
add r8, r10
lea r14, [r8 + r8*2]
mov r11d, dword [r12 + r14*4]
mov edi, dword [r12 + r14*4 + 4]
cmp edi, ecx
jb 0x1400215af
cmp r11d, ecx
jbe 0x1400215c0
cmp edi, ecx
jae 0x140021580
mov r10, r8
inc r10
mov r8, r9
jmp 0x140021580
cmp byte [r12 + r14*4 + 8], 0xd
jne 0x1400213a0
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x1400214f5
dec rdx
cmp rdx, rax
jne 0x140021560
jmp 0x140021168
movzx r10d, byte [rdx - 2]
cmp r10b, 0xc0
jge 0x140021612
movzx r11d, byte [rdx - 3]
cmp r11b, 0xc0
jge 0x14002161c
movzx edi, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and edi, 7
shl edi, 6
and r11d, 0x3f
or r11d, edi
jmp 0x140021624
add rdx, 0xfffffffffffffffe
and r10d, 0x1f
jmp 0x14002162f
add rdx, 0xfffffffffffffffd
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp rdx, rax
je 0x14002132f
cmp r9d, 0x110000
je 0x1400216c7
mov r10d, 0x5a6
xor r14d, r14d
mov r11d, 0x5a6
jmp 0x140021673
cmp r15d, r9d
cmova r11, r10
mov r10, r11
sub r10, r14
jbe 0x14002146d
shr r10, 1
add r10, r14
lea rdi, [r10 + r10*2]
mov r15d, dword [r12 + rdi*4]
mov ebx, dword [r12 + rdi*4 + 4]
cmp ebx, r9d
jb 0x140021690
cmp r15d, r9d
jbe 0x1400216a0
cmp ebx, r9d
jae 0x140021660
mov r14, r10
inc r14
mov r10, r11
jmp 0x140021660
cmp byte [r12 + rdi*4 + 8], 0xd
jne 0x14002146d
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x1400215e5
dec rdx
cmp rdx, rax
jne 0x140021643
jmp 0x14002132f
mov byte [rsp + 0xe2], 1
mov eax, dword [rsp + 0xe8]
mov rcx, qword [rsp + 0x190]
mov dword [rcx + 8], eax
mov rax, qword [rsp + 0xe0]
mov qword [rcx], rax
cmp qword [rsp + 0x110], 0
je 0x14002170d
mov r8, qword [rsp + 0x118]
mov rcx, qword [0x1401bb0c8]
xor edx, edx
call fcn.1400fda74
movaps xmm6, xmmword [rsp + 0x1d0]
movaps xmm7, xmmword [rsp + 0x1e0]
movaps xmm8, xmmword [rsp + 0x1f0]
movaps xmm9, xmmword [rsp + 0x200]
movaps xmm10, xmmword [rsp + 0x210]
movaps xmm11, xmmword [rsp + 0x220]
movaps xmm12, xmmword [rsp + 0x230]
movaps xmm13, xmmword [rsp + 0x240]
movaps xmm14, xmmword [rsp + 0x250]
movaps xmm15, xmmword [rsp + 0x260]
add rsp, 0x278
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret