Function at 0x14001d930
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2a8
movdqa xmmword [rsp + 0x290], xmm15
movdqa xmmword [rsp + 0x280], xmm14
movdqa xmmword [rsp + 0x270], xmm13
movdqa xmmword [rsp + 0x260], xmm12
movdqa xmmword [rsp + 0x250], xmm11
movdqa xmmword [rsp + 0x240], xmm10
movdqa xmmword [rsp + 0x230], xmm9
movaps xmmword [rsp + 0x220], xmm8
movdqa xmmword [rsp + 0x210], xmm7
movdqa xmmword [rsp + 0x200], xmm6
mov rbx, rcx
mov r14, qword [rsp + 0x310]
test r9, r9
je 0x14001daee
lea rax, [r8 + r9]
xor r15d, r15d
movdqa xmm0, xmmword [str.xn__]
mov rcx, r8
jmp 0x14001d9df
xor r11d, r11d
mov r15, r11
cmp rcx, rax
je 0x14001e93c
movzx esi, byte [rcx]
test sil, sil
js 0x14001da00
inc rcx
mov r10d, esi
cmp r10d, 0x2e
jne 0x14001da90
jmp 0x14001d9d0
mov r10d, esi
and r10d, 0x1f
movzx edi, byte [rcx + 1]
and edi, 0x3f
cmp sil, 0xdf
jbe 0x14001da54
movzx r11d, byte [rcx + 2]
shl edi, 6
and r11d, 0x3f
or r11d, edi
cmp sil, 0xf0
jb 0x14001da6a
movzx esi, byte [rcx + 3]
add rcx, 4
and r10d, 7
shl r10d, 0x12
shl r11d, 6
and esi, 0x3f
or esi, r11d
or esi, r10d
mov r10d, esi
cmp r10d, 0x2e
jne 0x14001da90
jmp 0x14001d9d0
add rcx, 2
shl r10d, 6
or r10d, edi
cmp r10d, 0x2e
jne 0x14001da90
jmp 0x14001d9d0
add rcx, 3
shl r10d, 0xc
or r11d, r10d
mov r10d, r11d
cmp r10d, 0x2e
je 0x14001d9d0
nop word cs:[rax + rax]
cmp r10d, 0x110000
je 0x14001e93c
test r15, r15
jne 0x14001daa8
cmp r10d, 0x2d
je 0x14001daee
mov r11d, 5
cmp r15, 4
ja 0x14001dad3
movdqa xmmword [rsp + 0x40], xmm0
je case.0x14001e012.1
cmp r10d, dword [rsp + r15*4 + 0x40]
jne 0x14001dad3
inc r15
mov r11, r15
cmp r15, 4
je 0x14001daee
lea esi, [r10 - 0x61]
cmp esi, 0x1a
jb 0x14001d9d3
add r10d, 0xffffffd0
cmp r10d, 9
jbe 0x14001d9d3
mov qword [rsp + 0x178], rbx
mov eax, dword [rdx + 0x30]
movzx ecx, byte [rdx + 0x34]
add r9, r8
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x50], 0
mov word [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 byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x80], r9
lea r8, [rsp + 0xf0]
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x90], 0
mov byte [rsp + 0xa4], cl
shl rcx, 0x20
or rcx, rax
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x100], rdx
mov qword [rdx + 0x10], 0
mov dword [rsp + 0xf8], 0
mov qword [rsp + 0xf0], 0
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x1b0], rcx
pxor xmm6, xmm6
movdqu xmmword [rsp + 0x183], xmm6
mov byte [rsp + 0x193], 0
movdqu xmmword [rsp + 0x1d8], xmm6
lea r15, [rsp + 0x50]
mov dword [rsp + 0xa0], eax
movups xmm0, xmmword [rsp + 0x180]
movups xmmword [rsp + 0xa5], xmm0
mov eax, dword [rsp + 0x190]
mov dword [rsp + 0xb5], eax
mov dword [rsp + 0xc0], 0
mov word [rsp + 0xc4], 0
movzx eax, word [rsp + 0x1e6]
mov word [rsp + 0xd6], ax
movdqu xmm0, xmmword [rsp + 0x1d6]
movdqu xmmword [rsp + 0xc6], xmm0
mov dword [rsp + 0xe0], 0x110000
mov byte [rsp + 0xe4], 0
lea rbp, [0x1401bba24]
lea r14, [0x1401bf4f4]
xor eax, eax
jmp 0x14001dc84
mov rcx, qword [rsi + 8]
mov byte [rcx + rax], r13b
inc rax
mov qword [rsi + 0x10], rax
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x14001dd65
cmp rax, 1
jne 0x14001e73e
mov rax, qword [rsp + 0x48]
cmp dword [rsp + 0xc0], 0
je 0x14001dcc2
cmp rax, qword [rsp + 0xd8]
jb 0x14001e762
mov qword [rsp + 0xd8], 0
jmp 0x14001dcf2
movzx ecx, word [rsp + 0xc4]
cmp rcx, 4
ja case.0x14001e012.1
cmp rax, rcx
jb 0x14001e7a3
cmp word [rsp + 0xc4], 0
je 0x14001dcf2
mov word [rsp + 0xc4], 0
mov qword [rsp + 0x40], 0
jmp 0x14001dd65
movzx esi, di
imul ebx, esi, 0x6f75
shr ebx, 0x18
lea edx, [rbx + 0x1100]
mov rcx, r15
call fcn.140021a00
imul eax, ebx, 0x24c
sub edi, eax
movzx eax, di
imul edx, eax, 0x925
shr edx, 0x10
add edx, 0x1161
mov rcx, r15
call fcn.140021a00
mov eax, esi
shr eax, 2
imul eax, eax, 0x4925
shr eax, 0x11
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
sub si, cx
je 0x14001dd65
add esi, 0x11a7
movzx edx, si
mov rcx, r15
call fcn.140021a00
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
jne 0x14001e0b0
movzx ecx, byte [rsp + 0xa0]
cmp cl, 2
je 0x14001e502
mov rsi, qword [rsp + 0x90]
mov r10, qword [rsp + 0x78]
mov r8, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
movzx r9d, byte [rsp + 0xa1]
mov r11, qword [rsp + 0x98]
test rsi, rsi
je 0x14001de60
cmp rsi, r11
je 0x14001de54
lea rdx, [rsi + 1]
mov qword [rsp + 0x90], rdx
movzx edx, byte [rsi]
test dl, dl
jns 0x14001e36c
mov edi, edx
and edi, 0x1f
lea r12, [rsi + 2]
mov qword [rsp + 0x90], r12
movzx r12d, byte [rsi + 1]
and r12d, 0x3f
cmp dl, 0xdf
jbe 0x14001e63a
lea r13, [rsi + 3]
mov qword [rsp + 0x90], r13
movzx r13d, byte [rsi + 2]
shl r12d, 6
and r13d, 0x3f
or r13d, r12d
cmp dl, 0xf0
jb 0x14001e647
lea rdx, [rsi + 4]
mov qword [rsp + 0x90], rdx
movzx edx, byte [rsi + 3]
and edi, 7
shl edi, 0x12
shl r13d, 6
and edx, 0x3f
or edx, r13d
or edx, edi
cmp edx, 0x110000
jne case.0x14001e012.0
mov qword [rsp + 0x90], 0
cmp r10, r8
je 0x14001e4fa
lea rdx, [r10 + 1]
mov qword [rsp + 0x78], rdx
movzx esi, byte [r10]
test sil, sil
js 0x14001dea0
mov r10, rdx
mov edx, esi
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14001df40
jmp 0x14001e36c
mov edx, esi
and edx, 0x1f
lea rdi, [r10 + 2]
mov qword [rsp + 0x78], rdi
movzx r12d, byte [r10 + 1]
and r12d, 0x3f
cmp sil, 0xdf
jbe 0x14001df0f
lea r13, [r10 + 3]
mov qword [rsp + 0x78], r13
movzx edi, byte [r10 + 2]
shl r12d, 6
and edi, 0x3f
or edi, r12d
cmp sil, 0xf0
jb 0x14001df25
lea rsi, [r10 + 4]
mov qword [rsp + 0x78], rsi
movzx r12d, byte [r10 + 3]
and edx, 7
shl edx, 0x12
shl edi, 6
and r12d, 0x3f
or r12d, edi
or r12d, edx
mov r10, rsi
mov edx, r12d
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14001df40
jmp 0x14001e36c
shl edx, 6
or edx, r12d
mov r10, rdi
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14001df40
jmp 0x14001e36c
shl edx, 0xc
or edi, edx
mov r10, r13
mov edx, edi
lea esi, [rdx - 0x2d]
cmp esi, 2
jb 0x14001e36c
nop dword [rax + rax]
cmp edx, 0x110000
je 0x14001e4fa
lea esi, [rdx - 0x61]
cmp esi, 0x1a
jb 0x14001e36c
lea esi, [rdx - 0x30]
cmp esi, 0xa
jb 0x14001e36c
mov esi, 0x75a
xor edi, edi
mov r13d, 0x75a
nop word cs:[rax + rax]
shr rsi, 1
add rsi, rdi
mov r12d, dword [rbp + rsi*8]
cmp r12d, edx
je 0x14001dfba
lea rbx, [rsi + 1]
cmp r12d, edx
cmova r13, rsi
cmovb rdi, rbx
mov rsi, r13
sub rsi, rdi
ja 0x14001df80
dec rdi
mov rsi, rdi
cmp rdi, 0x759
ja case.0x14001e012.1
movzx ebx, word [rbp + rsi*8 + 4]
mov edi, ebx
and edi, 0x7fff
test bx, bx
js 0x14001dfdb
movzx esi, word [rbp + rsi*8]
mov ebx, edx
sub bx, si
movzx edi, di
add edi, ebx
movzx esi, di
cmp esi, 0x1f73
jae case.0x14001e012.1
movzx edi, di
movzx r12d, byte [r14 + rdi*4]
mov esi, 0
cmp r12d, 1
je case.default.0x14001e012
mov r11d, r12d
lea rsi, [0x1401ab9a0]
movsxd r11, dword [rsi + r11*4]
add r11, rsi
jmp r11
mov ecx, dword [rsp + 0x50]
mov rax, qword [rsp + 0xa8]
test ecx, ecx
je 0x14001e0cc
mov r8, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
jmp 0x14001e0e1
movzx r9d, word [rsp + 0x54]
lea r8, [rsp + 0x58]
cmp r9, 5
jae case.0x14001e012.1
cmp rax, r9
jae case.0x14001e012.1
mov esi, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x14001e1b0
test ecx, ecx
je 0x14001e1ba
mov rax, qword [rsp + 0x68]
sub rax, rdx
je 0x14001e1c8
xor ecx, ecx
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0xb0]
add rdx, rcx
cmp dword [rsp + 0x50], 0
je 0x14001e150
mov r8, qword [rsp + 0x68]
cmp rdx, r8
jae case.0x14001e012.1
mov r9, qword [rsp + 0x60]
jmp 0x14001e16e
movzx r8d, word [rsp + 0x54]
cmp r8, 5
jae case.0x14001e012.1
lea r9, [rsp + 0x58]
cmp rdx, r8
jae case.0x14001e012.1
cmp rcx, r8
jae case.0x14001e012.1
mov r8d, dword [r9 + rdx*8 + 4]
movzx edx, byte [r9 + rdx*8]
mov byte [r9 + rcx*8], dl
mov dword [r9 + rcx*8 + 4], r8d
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rax, rdx
jne 0x14001e120
mov ecx, dword [rsp + 0x50]
test ecx, ecx
jne 0x14001e1cc
movzx ecx, word [rsp + 0x54]
cmp rax, rcx
jae 0x14001e1d8
mov word [rsp + 0x54], ax
jmp 0x14001e1d8
mov qword [rsp + 0xa8], rax
jmp 0x14001e1de
movzx eax, word [rsp + 0x54]
sub rax, rdx
jne 0x14001e111
test ecx, ecx
je 0x14001e19e
cmp qword [rsp + 0x68], rax
jb 0x14001e1d8
mov qword [rsp + 0x68], rax
movdqu xmmword [r15 + 0x58], xmm6
imul eax, esi, 0x9e3779b9
imul ecx, esi, 0x31415926
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x20
lea rdx, [0x1401d4ce0]
movzx eax, word [rdx + rax*2]
add eax, esi
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x20
lea rcx, [0x1401d5414]
mov edi, dword [rcx + rax*4]
mov eax, edi
shr eax, 8
cmp eax, esi
mov eax, 0
cmovne edi, eax
mov r13d, dword [rsp + 0xe0]
cmp r13d, 0x110000
jne 0x14001e260
test dil, dil
jne 0x14001e6c0
mov dword [rsp + 0xe0], esi
jmp 0x14001dd65
cmp byte [rsp + 0xe4], 0
je 0x14001e291
cmp byte [rsp + 0xe5], dil
jae 0x14001e2b0
mov ecx, r13d
mov edx, esi
call fcn.1400a7a50
cmp eax, 0x110000
je 0x14001e2b9
mov dword [rsp + 0xe0], eax
jmp 0x14001dd65
mov ecx, r13d
mov edx, esi
call fcn.1400a7a50
cmp eax, 0x110000
jne 0x14001e588
test dil, dil
jne 0x14001e2b9
jmp 0x14001e732
test dil, dil
je 0x14001e70c
cmp dword [rsp + 0xc0], 0
je 0x14001e2ff
mov rax, qword [rsp + 0xd8]
cmp rax, qword [rsp + 0xc8]
jne 0x14001e2ea
lea rcx, [rsp + 0xc8]
call fcn.140022750
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xd0]
mov dword [rcx + rax*4], esi
inc qword [rsp + 0xd8]
jmp 0x14001e322
movzx eax, word [rsp + 0xc4]
cmp rax, 3
ja 0x14001e655
mov dword [rsp + rax*4 + 0xc8], esi
inc eax
mov word [rsp + 0xc4], ax
mov byte [rsp + 0xe4], 1
mov byte [rsp + 0xe5], dil
jmp 0x14001dd65
cmp edx, 0x110000
je 0x14001e4fa
cmp byte [rsp + 0xb8], 0
je 0x14001e42c
cmp edx, 0x80
jb 0x14001dd5d
lea edi, [rdx - 0xac00]
cmp edi, 0x2ba4
jb 0x14001dcfd
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x20
lea r9, [0x1401e0c78]
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, [0x1401e2a40]
mov rsi, qword [r9 + r8*8]
cmp edx, esi
jne 0x14001e594
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0x1668
jae case.0x14001e012.1
shr rsi, 0x30
mov ecx, 0x1667
sub rcx, rax
cmp rsi, rcx
ja case.0x14001e012.1
lea rcx, [0x1401ea160]
lea rdi, [rcx + rax*4]
test rsi, rsi
jne 0x14001e612
jmp 0x14001dd65
cmp edx, 0x80
jb 0x14001dd5d
lea edi, [rdx - 0xac00]
cmp edi, 0x2ba4
jb 0x14001dcfd
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x1401d86bc]
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, [0x1401d96d8]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x14001dd5d
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x14001e012.1
shr rsi, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rsi, rcx
ja case.0x14001e012.1
test rsi, rsi
je 0x14001dd65
lea rcx, [0x1401dd740]
lea rdi, [rcx + rax*4]
shl esi, 2
xor r12d, r12d
nop dword [rax]
mov edx, dword [rdi + r12]
mov rcx, r15
call fcn.140021a00
add r12, 4
cmp rsi, r12
jne 0x14001e4e0
jmp 0x14001dd65
mov byte [rsp + 0xa0], 2
mov r8d, dword [rsp + 0x50]
test r8d, r8d
mov rcx, qword [rsp + 0x68]
movzx edx, word [rsp + 0x54]
mov rax, rcx
cmove rax, rdx
test rax, rax
je 0x14001e6d0
mov rax, qword [rsp + 0xb0]
test r8d, r8d
je 0x14001e53b
mov r8, qword [rsp + 0x60]
mov rdx, rcx
jmp 0x14001e54a
lea r8, [rsp + 0x58]
cmp dx, 5
jae case.0x14001e012.1
sub rdx, rax
jb case.0x14001e012.1
lea rcx, [r8 + rax*8]
call fcn.14001d140
mov ecx, dword [rsp + 0x50]
test ecx, ecx
je 0x14001e576
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0xb0], rdx
jmp 0x14001e0b4
movzx edx, word [rsp + 0x54]
mov qword [rsp + 0xb0], rdx
jmp 0x14001e0b4
mov dword [rsp + 0xe0], eax
jmp 0x14001dd65
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x1401d86bc]
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, [0x1401d96d8]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x14001dd5d
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x14001e012.1
shr rsi, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rsi, rcx
ja case.0x14001e012.1
lea rcx, [0x1401dd740]
lea rdi, [rcx + rax*4]
test rsi, rsi
je 0x14001dd65
shl esi, 2
xor r12d, r12d
nop dword [rax + rax]
mov edx, dword [rdi + r12]
mov rcx, r15
call fcn.140021a00
add r12, 4
cmp rsi, r12
jne 0x14001e620
jmp 0x14001dd65
shl edi, 6
or edi, r12d
mov edx, edi
jmp 0x14001e36c
shl edi, 0xc
or r13d, edi
mov edx, r13d
jmp 0x14001e36c
lea rcx, [rsp + 0x108]
lea rdx, [rsp + 0xc4]
mov r8d, esi
call fcn.140022890
cmp dword [rsp + 0xc0], 0
je 0x14001e698
cmp qword [rsp + 0xc8], 0
je 0x14001e698
mov r8, qword [rsp + 0xd0]
mov rcx, qword [0x14024d108]
xor edx, edx
call sub.kernel32.dll_HeapFree
movdqu xmm0, xmmword [rsp + 0x108]
movdqu xmm1, xmmword [rsp + 0x118]
movdqu xmmword [r15 + 0x80], xmm1
movdqu xmmword [r15 + 0x70], xmm0
jmp 0x14001e322
mov r13d, esi
jmp 0x14001e810
mov qword [rsp + 0x40], 2
mov qword [rsp + 0x48], 0
mov r13d, dword [rsp + 0xe0]
mov eax, 2
cmp r13d, 0x110000
je 0x14001dc84
mov dword [rsp + 0xe0], 0x110000
jmp 0x14001e810
mov dword [rsp + 0xe0], esi
mov byte [rsp + 0xe4], 0
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], 0
jmp 0x14001e810
mov dword [rsp + 0xe0], esi
jmp 0x14001e810
mov rcx, qword [rsp + 0x48]
mov eax, dword [rsp + 0xc0]
test eax, eax
je 0x14001e76c
cmp rcx, qword [rsp + 0xd8]
jae 0x14001e7c2
mov rdx, qword [rsp + 0xd0]
jmp 0x14001e78c
mov rcx, qword [rsp + 0xd0]
jmp 0x14001e7ab
movzx r8d, word [rsp + 0xc4]
cmp r8, 5
jae case.0x14001e012.1
lea rdx, [rsp + 0xc8]
cmp rcx, r8
jae 0x14001e7d0
mov r13d, dword [rdx + rcx*4]
inc rcx
mov qword [rsp + 0x40], 2
mov qword [rsp + 0x48], rcx
jmp 0x14001e810
lea rcx, [rsp + 0xc8]
mov r13d, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], rax
jmp 0x14001e810
mov qword [rsp + 0xd8], 0
jmp 0x14001e7e5
cmp word [rsp + 0xc4], 0
je 0x14001e7e5
mov word [rsp + 0xc4], 0
mov r13d, dword [rsp + 0xe0]
mov dword [rsp + 0xe0], 0x110000
cmp r13d, 0x110000
je 0x14001ea08
nop word cs:[rax + rax]
cmp r13d, 0x80
jae 0x14001e840
mov rsi, qword [rsp + 0x100]
mov rax, qword [rsi + 0x10]
cmp rax, qword [rsi]
jne 0x14001dc70
mov rcx, rsi
call fcn.14008e720
mov rax, qword [rsi + 0x10]
jmp 0x14001dc70
mov dword [rsp + 0x108], 0
mov eax, r13d
cmp r13d, 0x800
jae 0x14001e86f
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x108], al
mov esi, 2
mov eax, 1
jmp 0x14001e8d9
cmp r13d, 0x10000
jae 0x14001e8a1
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x108], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x109], al
mov esi, 3
mov eax, 2
jmp 0x14001e8d9
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x108], al
mov eax, r13d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x109], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x10a], al
mov esi, 4
mov eax, 3
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + rax + 0x108], r13b
mov rbx, qword [rsp + 0x100]
mov rax, qword [rbx]
mov rdi, qword [rbx + 0x10]
sub rax, rdi
cmp rax, rsi
jb 0x14001e928
mov rcx, qword [rbx + 8]
add rcx, rdi
lea rdx, [rsp + 0x108]
mov r8, rsi
call sub.msvcrt.dll_memcpy
add rdi, rsi
mov qword [rbx + 0x10], rdi
mov rax, qword [rsp + 0x40]
jmp 0x14001dc84
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.1400a1c40
mov rdi, qword [rbx + 0x10]
jmp 0x14001e900
mov rax, qword [r14]
mov rsi, qword [r14 + 0x10]
sub rax, rsi
cmp rax, r9
jb 0x14001e9e5
mov rcx, qword [r14 + 8]
add rcx, rsi
mov rdx, r8
mov r8, r9
mov rdi, r9
call sub.msvcrt.dll_memcpy
add rsi, rdi
mov qword [r14 + 0x10], rsi
mov qword [rbx], 0
mov dword [rbx + 8], 0
movaps xmm6, xmmword [rsp + 0x200]
movaps xmm7, xmmword [rsp + 0x210]
movaps xmm8, xmmword [rsp + 0x220]
movaps xmm9, xmmword [rsp + 0x230]
movaps xmm10, xmmword [rsp + 0x240]
movaps xmm11, xmmword [rsp + 0x250]
movaps xmm12, xmmword [rsp + 0x260]
movaps xmm13, xmmword [rsp + 0x270]
movaps xmm14, xmmword [rsp + 0x280]
movaps xmm15, xmmword [rsp + 0x290]
add rsp, 0x2a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r14
mov rdx, rsi
mov rsi, r8
mov r8, r9
mov rdi, r9
call fcn.1400a1c40
mov r8, rsi
mov r9, rdi
mov rsi, qword [r14 + 0x10]
jmp 0x14001e94f
cmp dword [rsp + 0x50], 0
je 0x14001ea3b
cmp qword [rsp + 0x58], 0
mov rsi, qword [rsp + 0x100]
je 0x14001ea43
mov r8, qword [rsp + 0x60]
mov rcx, qword [0x14024d108]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov eax, dword [rsp + 0xc0]
jmp 0x14001ea43
mov rsi, qword [rsp + 0x100]
test eax, eax
je 0x14001ea68
cmp qword [rsp + 0xc8], 0
je 0x14001ea68
mov r8, qword [rsp + 0xd0]
mov rcx, qword [0x14024d108]
xor edx, edx
call sub.kernel32.dll_HeapFree
movabs r14, 0x8080808080808080
mov qword [rsp + 0x180], 0
mov qword [rsp + 0x188], 8
mov qword [rsp + 0x190], 0
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x138], rax
mov byte [rsp + 0x140], 1
mov word [rsp + 0x148], 1
mov rax, qword [rsp + 0x198]
and rax, 0xffffffffffff00ff
mov qword [rsp + 0x1e8], rax
mov dil, 1
lea rbx, [rsp + 0x108]
lea r13, [0x1401d0918]
movdqa xmm6, xmmword [0x1401ab4a0]
movdqa xmm7, xmmword [0x1401ab4b0]
xorps xmm8, xmm8
movdqa xmm14, xmmword [0x1401ab510]
movdqa xmm15, xmmword [0x1401ab520]
movdqa xmm10, xmmword [0x1401ab540]
movdqa xmm11, xmmword [0x1401ab550]
movdqa xmm12, xmmword [0x1401ab560]
movdqa xmm13, xmmword [0x1401ab570]
movdqa xmm9, xmmword [0x1401ab580]
xor ebp, ebp
jmp 0x14001eba8
movabs r14, 0x8080808080808080
test qword [rsi], r14
lea rbx, [rsp + 0x108]
je 0x1400205c0
mov byte [rsp + 0xf0], 1
mov bpl, 1
xor edi, edi
lea r13, [0x1401d0918]
mov rcx, rbx
call fcn.1400abaa0
test rax, rax
je 0x1400206eb
mov r15, rax
mov r12, rdx
test dil, 1
jne 0x14001ebf1
mov rsi, qword [rsp + 0x310]
mov rax, qword [rsi + 0x10]
cmp rax, qword [rsi]
jne 0x14001ebe2
mov rcx, rsi
call fcn.14008e720
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 8]
mov byte [rcx + rax], 0x2e
inc rax
mov qword [rsi + 0x10], rax
cmp r12, 4
jb 0x14001ec04
cmp dword [r15], 0x2d2d6e78
je 0x14001ed93
test bpl, 1
jne 0x14001ed35
test r12, r12
je 0x14001ed33
mov rax, r15
add rax, r12
mov rcx, r15
jmp 0x14001ec2b
cmp rcx, rax
je 0x14001ed33
movzx edx, byte [rcx]
test dl, dl
js 0x14001ec37
inc rcx
jmp 0x14001ecaa
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001ec8c
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001ec9c
movzx edx, byte [rcx + 3]
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
cmp edx, 0x110000
je 0x14001ed33
add rcx, 4
jmp 0x14001ecaa
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14001ecaa
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001ec22
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001ece3
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001ec22
shr r8, 1
add r8, r10
lea rsi, [r8 + r8*2]
mov r11d, dword [r13 + rsi*4]
mov edi, dword [r13 + rsi*4 + 4]
cmp edi, edx
jb 0x14001ed00
cmp r11d, edx
jbe 0x14001ed0f
cmp edi, edx
jae 0x14001ecd0
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001ecd0
movzx edx, byte [r13 + rsi*4 + 8]
cmp edx, 0x11
ja 0x14001ec22
mov r8d, 0x20003
bt r8d, edx
jae 0x14001ec22
mov bpl, 1
jmp 0x14001ed35
xor ebp, ebp
mov rcx, r15
mov rdx, r12
mov r8, qword [rsp + 0x198]
lea r9, [rsp + 0xf0]
call fcn.1400217a0
mov rcx, qword [rsp + 0x310]
mov rax, qword [rcx]
mov rsi, qword [rcx + 0x10]
sub rax, rsi
cmp rax, r12
jb 0x14001f1a7
mov rdi, qword [rsp + 0x310]
mov rcx, qword [rdi + 8]
add rcx, rsi
mov rdx, r15
mov r8, r12
call sub.msvcrt.dll_memcpy
add r12, rsi
mov qword [rdi + 0x10], r12
xor edi, edi
jmp 0x14001eba8
lea rsi, [r15 + 4]
add r12, 0xfffffffffffffffc
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], r12
mov byte [rsp + 0x68], 1
movabs rax, 0x2d0000002d
mov qword [rsp + 0x60], rax
lea rax, [r15 + 0xb]
and rax, 0xfffffffffffffff8
sub rax, rsi
mov rcx, r15
add rcx, 3
mov r11, r12
mov dword [rsp + 0xfc], ebp
jmp 0x14001edff
mov qword [rsp + 0x58], r11
cmp r11, r12
ja 0x14001eef7
mov r8, r11
sub r8, rax
and r8d, 0xf
cmp r11, rax
mov r9d, 0
mov rdx, r11
cmova rdx, rax
cmovae r9, r8
mov r8, r11
sub r8, r9
jb case.0x14001e012.1
lea r9, [rsi + r11]
sub r9, rsi
sub r9, r8
lea r10, [rcx + r11]
test r9, r9
je 0x14001ee51
dec r9
cmp byte [r10], 0x2d
lea r10, [r10 - 1]
jne 0x14001ee37
add r9, r8
mov r11, r9
jmp 0x14001eea3
mov r9, r8
cmp r8, rdx
jbe 0x14001ee87
lea r8, [r9 - 0x10]
movdqu xmm0, xmmword [r15 + 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, r14
je 0x14001ee51
cmp r9, r11
ja case.0x14001e012.1
mov r11, r9
sub r11, 1
jb 0x14001eef7
cmp byte [rcx + r9], 0x2d
mov r9, r11
jne 0x14001ee93
cmp r11, r12
jae 0x14001edf1
mov dl, 0x2d
cmp byte [rsi + r11], dl
jne 0x14001edf1
test r11, r11
mov qword [rsp + 0x38], rsi
je 0x14001faac
cmp r11, r12
jae 0x14001eed6
cmp byte [rsi + r11], 0xbf
jle case.0x14001e012.1
mov qword [rsp + 0x28], r11
lea rax, [r11 + 1]
cmp rax, r12
jae 0x14001faf6
cmp byte [rsi + rax], 0xbf
jg 0x14001faff
jmp case.0x14001e012.1
mov r15, rsi
xor eax, eax
mov qword [rsp + 0x28], rax
lea rax, str.incomplete_frame
mov qword [rsp + 0x38], rax
add r12, r15
mov dword [rsp + 0x30], pe_nt_image_headers64
mov ebp, 0x48
xor edx, edx
xor esi, esi
mov rax, qword [rsp + 0x28]
mov r13d, eax
cmp r15, r12
mov qword [rsp + 0xe8], rdx
je 0x14001f151
lea r9d, [rbp + 0x1a]
inc r15
mov r10d, ebp
neg r10d
mov r11d, 1
mov edi, 0x24
mov ecx, esi
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jb 0x14001ef76
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x14001ef7a
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x14001ef7a
jmp 0x14001eb94
add al, 0xea
mov edx, eax
test r11d, r11d
je case.0x14001e012.1
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x14001eb94
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + rdi]
cmp edi, r9d
mov edx, 0x1a
cmovae eax, edx
cmp edi, ebp
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x14001effe
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x14001eb94
cmp r15, r12
je 0x14001eb94
add edi, 0x24
imul r11d, r8d
inc r15
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x14001ef61
jmp 0x14001ef76
inc r13d
je case.0x14001e012.1
mov eax, ecx
sub eax, esi
test esi, esi
mov r8d, 2
mov edx, 0x2bc
cmove r8d, edx
xor ebp, ebp
xor edx, edx
div r8d
mov r8d, eax
xor edx, edx
div r13d
add eax, r8d
cmp eax, 0x1c8
mov r9d, 0xd41d41d5
jb 0x14001f066
xor ebp, ebp
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 ebp, 0x24
cmp eax, 0x3e57
mov eax, r8d
ja 0x14001f03d
jmp 0x14001f069
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov edi, eax
mov eax, ecx
xor edx, edx
div r13d
add dword [rsp + 0x30], eax
jb 0x14001eb94
mov eax, dword [rsp + 0x30]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x14001eb94
mov esi, edx
mov rax, qword [rsp + 0x188]
mov ebx, edx
mov rdx, qword [rsp + 0xe8]
test rdx, rdx
je 0x14001f0ea
mov rcx, rdx
shl rcx, 4
xor r9d, r9d
jmp 0x14001f0d8
add r9, 0x10
cmp rcx, r9
je 0x14001f0ea
mov r8, qword [rax + r9]
cmp r8, rbx
jb 0x14001f0cf
inc r8
mov qword [rax + r9], r8
jmp 0x14001f0cf
cmp rdx, qword [rsp + 0x180]
jne 0x14001f111
lea rcx, [rsp + 0x180]
call fcn.1400c9a90
mov rax, qword [rsp + 0x188]
mov rdx, qword [rsp + 0x190]
movzx ecx, di
add ebp, ecx
mov rcx, rdx
shl rcx, 4
mov qword [rax + rcx], rbx
mov r8d, dword [rsp + 0x30]
mov dword [rax + rcx + 8], r8d
inc rdx
mov qword [rsp + 0x190], rdx
inc esi
lea rbx, [rsp + 0x108]
cmp r15, r12
mov qword [rsp + 0xe8], rdx
jne 0x14001ef3a
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x150], rax
cmp rdx, 0x15
jae 0x14001f1c6
cmp rdx, 1
mov rsi, qword [rsp + 0x310]
lea r13, [0x1401d0918]
mov ebp, dword [rsp + 0xfc]
jbe 0x14001f7b0
mov r8d, 1
mov rcx, qword [rsp + 0x150]
call fcn.14001d880
mov rdx, qword [rsp + 0xe8]
jmp 0x14001f7b0
mov rdi, qword [rsp + 0x310]
mov rcx, rdi
mov rdx, rsi
mov r8, r12
call fcn.1400a1c40
mov rsi, qword [rdi + 0x10]
jmp 0x14001ed6b
lea rdx, [rdx*8]
movabs rax, 0x7ffffffffffffff0
and rdx, rax
movzx eax, byte [0x14024d119]
xor ecx, ecx
call fcn.140082900
mov qword [rsp + 0x158], rax
test rax, rax
je case.0x14001e012.1
movzx eax, byte [0x14024d119]
mov edx, 0x100
xor ecx, ecx
call fcn.140082900
test rax, rax
je case.0x14001e012.1
mov r15, rax
mov rax, qword [rsp + 0x150]
lea rcx, [rax + 0x20]
mov qword [rsp + 0x1b8], rcx
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x1c8], rax
mov eax, 0x10
mov qword [rsp + 0x1c0], rax
xor r14d, r14d
xor r12d, r12d
mov r11, qword [rsp + 0xe8]
mov r13, qword [rsp + 0x158]
jmp 0x14001f275
mov r12d, 1
mov r14, qword [rsp + 0x1f0]
cmp r14, r11
jae 0x14001f75e
mov rdx, r11
sub rdx, r14
mov r9, r14
shl r9, 4
mov rax, qword [rsp + 0x150]
lea rcx, [rax + r9]
cmp rdx, 2
jae 0x14001f65e
mov r8, rdx
lea rdx, [r8 + r14]
mov rsi, rdx
sub rsi, r14
jb case.0x14001e012.1
cmp rdx, r11
ja case.0x14001e012.1
jae 0x14001f2ee
cmp r8, 0xa
jae 0x14001f2ee
cmp r14, 0xfffffffffffffff6
jae case.0x14001e012.1
lea rdi, [r14 + 0xa]
cmp rdi, r11
cmovae rdi, r11
cmp rdx, r14
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, r14
mov rdx, rsi
call fcn.14001d880
mov rdx, rdi
mov qword [rsp + 0x1f0], rdx
cmp r12, qword [rsp + 0x1c0]
jne 0x14001f353
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x14024d119]
xor ecx, ecx
call fcn.140082900
test rax, rax
je case.0x14001e012.1
mov rdi, rax
lea rax, [r12 + r12]
mov qword [rsp + 0x1c0], rax
mov r8, r12
shl r8, 4
mov rcx, rdi
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x14024d108]
xor edx, edx
mov r8, r15
call sub.kernel32.dll_HeapFree
mov r15, rdi
mov r11, qword [rsp + 0xe8]
mov rax, r12
shl rax, 4
mov qword [r15 + rax], rsi
mov qword [r15 + rax + 8], r14
inc r12
mov rax, r12
cmp r12, 2
mov qword [rsp + 0x1f8], r15
jae 0x14001f40c
jmp 0x14001f264
mov rdi, r15
mov r13, qword [rsp + 0x158]
mov rdx, r13
mov r15, qword [rsp + 0x1f8]
add rbp, r15
sub r12, rdx
mov rcx, rdi
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x160]
add rax, rsi
mov qword [rbp], rax
mov rax, qword [rsp + 0x1a8]
mov qword [rbp + 8], rax
mov rcx, qword [rsp + 0x1a0]
lea rdx, [rcx + 0x10]
mov rax, qword [rsp + 0x170]
not rax
mov r8, qword [rsp + 0x30]
add r8, rax
shl r8, 4
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x168]
cmp rax, 1
mov r11, qword [rsp + 0xe8]
jbe 0x14001f25e
mov r12, rax
lea r10, [rax - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [r15 + rcx]
mov rcx, qword [r15 + rcx + 8]
add rcx, rax
cmp rcx, r11
je 0x14001f478
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + r15 - 0x20]
cmp r8, rax
jbe 0x14001f478
cmp r12, 2
je 0x14001f748
lea rdi, [r12 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [r15 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14001f48e
cmp r12, 3
jbe 0x14001f753
add r8, rcx
cmp qword [rdx + r15 - 0x40], r8
jbe 0x14001f48e
jmp 0x14001f264
cmp r12, 2
je 0x14001f493
lea rdi, [r12 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [r15 + rcx]
cmp rcx, rax
jb 0x14001f498
lea rdi, [r12 - 2]
cmp rdi, r12
jae case.0x14001e012.1
lea rbp, [rdi + 1]
cmp rbp, r12
jae case.0x14001e012.1
mov rdx, rdi
shl rdx, 4
mov rax, qword [r15 + rdx + 8]
shl rbp, 4
mov rcx, qword [r15 + rbp]
mov r14, qword [r15 + rbp + 8]
add r14, rcx
mov rbx, r14
sub rbx, rax
jb case.0x14001e012.1
mov qword [rsp + 0x170], rdi
mov qword [rsp + 0x30], r12
cmp r14, r11
ja case.0x14001e012.1
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], r10
add rdx, r15
mov qword [rsp + 0x1a0], rdx
mov rsi, qword [rdx]
mov qword [rsp + 0x1a8], rax
mov rdi, rax
shl rdi, 4
add rdi, qword [rsp + 0x150]
mov r12, rsi
shl r12, 4
lea r15, [rdi + r12]
shl r14, 4
mov r13, rbx
sub r13, rsi
cmp r13, rsi
jae 0x14001f5e0
mov r12, r13
shl r12, 4
mov rbx, qword [rsp + 0x158]
mov rcx, rbx
mov rdx, r15
mov r8, r12
call sub.msvcrt.dll_memcpy
add r12, rbx
test rsi, rsi
jle 0x14001f388
test r13, r13
jle 0x14001f388
add r14, qword [rsp + 0x1c8]
mov r13, qword [rsp + 0x158]
mov rax, r15
mov rcx, r12
mov rdx, qword [r12 - 0x10]
mov r8, qword [r15 - 0x10]
cmp rdx, r8
mov r15d, 0
sbb r15, r15
cmp rdx, r8
mov r12d, 0
adc r12, 0xffffffffffffffff
shl r15, 4
add r15, rax
shl r12, 4
add r12, rcx
cmp rdx, r8
mov rax, r12
cmovb rax, r15
movdqu xmm0, xmmword [rax]
movdqu xmmword [r14], xmm0
cmp r15, rdi
jbe 0x14001f5d8
add r14, 0xfffffffffffffff0
cmp r12, r13
ja 0x14001f581
mov rdi, r15
jmp 0x14001f393
mov r13, qword [rsp + 0x158]
mov rcx, r13
mov rdx, rdi
mov r8, r12
call sub.msvcrt.dll_memcpy
add r12, r13
test rsi, rsi
jle 0x14001f393
cmp rbx, rsi
jle 0x14001f393
add r14, qword [rsp + 0x150]
mov rdx, r13
mov r8, rdx
mov rcx, qword [r15]
xor edx, edx
xor eax, eax
cmp rcx, qword [r8]
setae dl
setb cl
mov r9, r8
cmovb r9, r15
movdqu xmm0, xmmword [r9]
movdqu xmmword [rdi], xmm0
add rdi, 0x10
shl edx, 4
add rdx, r8
cmp rdx, r12
jae 0x14001f396
mov al, cl
shl eax, 4
add r15, rax
cmp r15, r14
jb 0x14001f616
jmp 0x14001f396
mov r10, qword [rcx + 0x10]
cmp r10, qword [rcx]
jae 0x14001f710
mov eax, 2
cmp rdx, 2
je 0x14001f698
add r9, qword [rsp + 0x1b8]
mov r8, r10
mov r10, qword [r9]
cmp r10, r8
jae 0x14001f698
inc rax
add r9, 0x10
cmp rdx, rax
jne 0x14001f67e
mov rax, rdx
mov rdx, rax
add rdx, r14
jb case.0x14001e012.1
cmp rdx, r11
ja case.0x14001e012.1
mov r8d, 1
cmp rax, 2
jb 0x14001f29f
mov r8, rdx
mov rdx, rax
shr rdx, 1
mov rsi, r8
shl r8, 4
add r8, qword [rsp + 0x1c8]
mov r9, rcx
mov r10, qword [r9]
mov r11d, dword [r9 + 8]
movdqu xmm0, xmmword [r8]
movdqu xmmword [r9], xmm0
mov qword [r8], r10
mov dword [r8 + 8], r11d
add r9, 0x10
add r8, 0xfffffffffffffff0
dec rdx
jne 0x14001f6d8
mov r8, rax
mov r11, qword [rsp + 0xe8]
mov rdx, rsi
jmp 0x14001f29f
mov r8d, 2
cmp rdx, 2
je 0x14001f29b
add r9, qword [rsp + 0x1b8]
mov rax, r10
mov r10, qword [r9]
cmp r10, rax
jb 0x14001f29b
inc r8
add r9, 0x10
cmp rdx, r8
jne 0x14001f728
jmp 0x14001f298
mov r12d, 2
jmp 0x14001f264
mov r12d, 3
jmp 0x14001f264
mov rcx, qword [0x14024d108]
xor edx, edx
mov r8, r15
call sub.kernel32.dll_HeapFree
mov rcx, qword [0x14024d108]
xor edx, edx
mov r8, r13
call sub.kernel32.dll_HeapFree
mov rdx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x310]
movabs r14, 0x8080808080808080
lea r13, [0x1401d0918]
lea rbx, [rsp + 0x108]
mov ebp, dword [rsp + 0xfc]
mov r10, qword [rsp + 0x28]
lea r8, [rdx + r10]
mov rax, qword [rsi]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x30], rcx
sub rax, rcx
cmp rax, r8
jb 0x140020613
mov r11, qword [rsp + 0x38]
add r10, r11
xor r15d, r15d
xor r12d, r12d
mov qword [rsp + 0x28], r10
jmp 0x14001f7ff
mov rcx, qword [rsi + 8]
mov byte [rcx + rax], dil
inc rax
mov qword [rsi + 0x10], rax
mov r11, rbp
mov ebp, dword [rsp + 0xfc]
cmp r15, qword [rsp + 0xe8]
jae 0x14001f89b
mov rax, r15
shl rax, 4
add rax, qword [rsp + 0x150]
cmp qword [rax], r12
jne 0x14001f82c
inc r15
mov edi, dword [rax + 8]
jmp 0x14001f953
mov rcx, r11
mov r11, r10
cmp rcx, r10
je 0x14001f82c
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x14001f928
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x14001f930
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14001f93f
movzx edi, byte [rcx + 3]
add rcx, 4
and eax, 7
shl eax, 0x12
shl edx, 6
and edi, 0x3f
or edi, edx
or edi, eax
mov r11, rcx
cmp edi, 0x110000
je 0x14001f82c
jmp 0x14001f912
cmp r11, r10
je 0x14001fa82
movzx r8d, byte [r11]
test r8b, r8b
js 0x14001f8bf
inc r11
mov rbp, r11
movzx edi, r8b
inc r12
jmp 0x14001f961
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [r11 + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x14001f922
movzx edx, byte [r11 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14001f948
movzx edi, byte [r11 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and edi, 0x3f
or edi, edx
or edi, eax
cmp edi, 0x110000
je 0x14001fa82
add r11, 4
mov rcx, r11
mov r11, rcx
cmp edi, 0x110000
jne 0x14001f953
jmp 0x14001fa82
add r11, 2
jmp 0x14001f937
inc rcx
mov r11, rcx
jmp 0x14001f8b0
add rcx, 2
mov r11, rcx
shl eax, 6
or eax, r9d
jmp 0x14001f951
add rcx, 3
mov r11, rcx
jmp 0x14001f94c
add r11, 3
shl eax, 0xc
or eax, edx
mov edi, eax
inc r12
cmp edi, 0x80
jae 0x14001f98c
mov rbp, r11
mov rsi, qword [rsp + 0x310]
mov rax, qword [rsi + 0x10]
cmp rax, qword [rsi]
jne 0x14001f7e6
mov rcx, rsi
call fcn.14008e720
mov r10, qword [rsp + 0x28]
mov rax, qword [rsi + 0x10]
jmp 0x14001f7e6
mov dword [rsp + 0x40], 0
mov rbp, r11
mov eax, edi
cmp edi, 0x800
jae 0x14001f9b6
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x40], al
mov esi, 2
mov eax, 1
jmp 0x14001fa0d
cmp edi, 0x10000
jae 0x14001f9e0
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x40], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x41], al
mov esi, 3
mov eax, 2
jmp 0x14001fa0d
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x40], al
mov eax, edi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x41], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x42], al
mov esi, 4
mov eax, 3
and dil, 0x3f
or dil, 0x80
mov byte [rsp + rax + 0x40], dil
mov rcx, qword [rsp + 0x310]
mov rax, qword [rcx]
mov rdi, qword [rcx + 0x10]
sub rax, rdi
cmp rax, rsi
jb 0x14001fa66
mov rbx, qword [rsp + 0x310]
mov rcx, qword [rbx + 8]
add rcx, rdi
lea rdx, [rsp + 0x40]
mov r8, rsi
call sub.msvcrt.dll_memcpy
add rdi, rsi
mov qword [rbx + 0x10], rdi
lea rbx, [rsp + 0x108]
mov r10, qword [rsp + 0x28]
jmp 0x14001f7f5
mov rbx, qword [rsp + 0x310]
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.1400a1c40
mov rdi, qword [rbx + 0x10]
jmp 0x14001fa31
mov rax, qword [rsp + 0x310]
mov rsi, qword [rax + 8]
mov r15, qword [rax + 0x10]
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x14001fac1
cmp r15, rdx
jbe 0x14001fabb
cmp byte [rsi + rdx], 0xbf
jg 0x14001fac1
jmp case.0x14001e012.1
mov r15, rsi
xor eax, eax
mov qword [rsp + 0x28], rax
jmp 0x14001ef0d
jne case.0x14001e012.1
lea rcx, [rsi + rdx]
test bpl, 1
jne 0x14001fd4e
cmp r15, rdx
jne 0x14001fc1f
xor ebp, ebp
movabs r14, 0x8080808080808080
lea rbx, [rsp + 0x108]
mov rdx, qword [rsp + 0x30]
jmp 0x14001fd4e
mov rax, r12
jne case.0x14001e012.1
lea r15, [rsi + rax]
sub r12, rax
cmp qword [rsp + 0x28], 8
jae 0x14001eb79
mov rax, qword [rsp + 0x28]
cmp byte [rsi + rax - 1], 0
movabs r14, 0x8080808080808080
lea rbx, [rsp + 0x108]
js 0x14001eb94
mov rax, qword [rsp + 0x28]
dec rax
je 0x14001ef0d
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 2], 0
js 0x14001eb94
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffe
je 0x14001ef0d
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 3], 0
js 0x14001eb94
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffd
je 0x14001ef0d
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 4], 0
js 0x14001eb94
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffc
je 0x14001ef0d
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 5], 0
js 0x14001eb94
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffb
je 0x14001ef0d
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 6], 0
js 0x14001eb94
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffa
je 0x14001ef0d
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 7], 0
js 0x14001eb94
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffff9
je 0x14001ef0d
jmp 0x14001eb94
lea rax, [rsi + r15]
mov r12, rcx
jmp 0x14001fc31
cmp rcx, rax
je 0x14001fd32
movzx edx, byte [rcx]
test dl, dl
js 0x14001fc3d
inc rcx
jmp 0x14001fcb0
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001fc92
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001fca2
movzx edx, byte [rcx + 3]
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
cmp edx, 0x110000
je 0x14001fd32
add rcx, 4
jmp 0x14001fcb0
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14001fcb0
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001fc28
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001fce2
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001fc28
shr r8, 1
add r8, r10
lea rdi, [r8 + r8*2]
mov r11d, dword [r13 + rdi*4]
mov ebx, dword [r13 + rdi*4 + 4]
cmp ebx, edx
jb 0x14001fcff
cmp r11d, edx
jbe 0x14001fd0e
cmp ebx, edx
jae 0x14001fccf
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001fccf
movzx edx, byte [r13 + rdi*4 + 8]
cmp edx, 0x11
ja 0x14001fc28
mov r8d, 0x20003
bt r8d, edx
jae 0x14001fc28
mov bpl, 1
jmp 0x14001fd34
xor ebp, ebp
movabs r14, 0x8080808080808080
lea rbx, [rsp + 0x108]
mov rdx, qword [rsp + 0x30]
mov rcx, r12
movq xmm0, qword [rsp + 0xf0]
movzx eax, byte [rsp + 0xf9]
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 r8d, xmm1
or r8b, byte [rsp + 0xf8]
or al, byte [rsp + 0xfa]
or al, r8b
xor edi, edi
or al, byte [rsp + 0xfb]
jne 0x14001eba8
cmp r15, rdx
je 0x1400206b8
mov r12d, ebp
add rsi, r15
xor edx, edx
xor edi, edi
mov qword [rsp + 0x170], rcx
mov rax, rcx
movzx r8d, byte [rax]
test r8b, r8b
js 0x14001fdd7
inc rax
jmp 0x14001fe6a
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xe0
jb 0x14001fe31
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14001fe41
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 0x140020430
add rax, 4
jmp 0x14001fe4f
add rax, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14001fe4f
add rax, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
cmp r8d, 0x7f
jbe 0x14001fe6a
jmp 0x14001fef9
inc rax
cmp r8d, 0x80
jae 0x14001fef7
cmp rax, rsi
je 0x140020430
movzx r8d, byte [rax]
test r8b, r8b
jns 0x14001fe5a
mov edx, r8d
and edx, 0x1f
movzx r10d, byte [rax + 1]
and r10d, 0x3f
cmp r8b, 0xdf
jbe 0x14001fed3
movzx r9d, byte [rax + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp r8b, 0xf0
jb 0x14001fee5
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 0x140020430
add rax, 4
jmp 0x14001fe5d
add rax, 2
shl edx, 6
or edx, r10d
mov r8d, edx
jmp 0x14001fe5d
add rax, 3
shl edx, 0xc
or r9d, edx
mov r8d, r9d
jmp 0x14001fe5d
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, [0x1401d4ce0]
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, [0x1401d5414]
mov edx, dword [r10 + rdx*4]
mov r10d, edx
shr r10d, 8
cmp r10d, r8d
mov r10d, 0
cmovne edx, r10d
cmp r9b, dl
movabs r14, 0x8080808080808080
lea r13, [0x1401d0918]
lea rbx, [rsp + 0x108]
mov ebp, r12d
jbe 0x14001ff83
test dl, dl
jne case.0x14002015b.3907
lea r9d, [r8 - 0x340]
cmp r9d, 4
ja 0x14001ff9a
cmp r9d, 2
jne case.0x14002015b.3907
mov r9b, 2
cmp r8d, 0xd56
jg 0x140020011
cmp r8d, 0x9de
jg 0x140020051
cmp r8d, 0x93b
jg 0x140020184
lea r10d, [r8 - 0x30f]
cmp r10d, 0x36
ja 0x14001ffe1
movabs r11, 0x48020000001005
bt r11, r10
jb 0x140020290
lea r10d, [r8 - 0x374]
cmp r10d, 0x13
lea r13, [0x1401d0918]
mov ebp, r12d
ja case.0x14002015b.3908
mov r11d, 0x80401
bt r11d, r10d
jb case.0x14002015b.3907
jmp case.0x14002015b.3908
cmp r8d, 0x11126
jg 0x1400200c5
cmp r8d, 0x102d
jle 0x140020108
cmp r8d, 0x1f70
jg 0x1400201d0
cmp r8d, 0x102e
je 0x140020290
cmp r8d, 0x1b35
jmp 0x140020284
cmp r8d, 0xbd6
jg 0x14002015e
cmp r8d, 0xbbd
jg 0x14002027d
lea r10d, [r8 - 0xb3e]
cmp r10d, 0x19
ja 0x140020088
mov r11d, 0x3000001
bt r11d, r10d
jb 0x140020290
lea r10d, [r8 - 0xa33]
cmp r10d, 0x2b
lea r13, [0x1401d0918]
mov ebp, r12d
ja 0x1400200b3
movabs r11, 0x80000000009
bt r11, r10
jb case.0x14002015b.3907
cmp r8d, 0x9df
jne case.0x14002015b.3908
jmp case.0x14002015b.3907
cmp r8d, 0x114af
jle 0x1400201aa
lea r10d, [r8 - 0x114b0]
cmp r10d, 0xd
ja 0x1400200ef
mov r11d, 0x2401
bt r11d, r10d
jb 0x140020290
cmp r8d, 0x115af
je 0x140020290
cmp r8d, 0x11930
jmp 0x140020284
lea r10d, [r8 - 0xdca]
cmp r10d, 0x15
ja 0x140020125
mov r11d, 0x200021
bt r11d, r10d
jb 0x140020290
cmp r8d, 0xd57
je 0x140020290
lea r10d, [r8 - 0xf43]
cmp r10d, 0x76
lea r13, [0x1401d0918]
mov ebp, r12d
ja case.0x14002015b.3908
lea r11, [0x1401ab590]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xcc1
jg 0x140020237
cmp r8d, 0xbd7
je 0x140020290
cmp r8d, 0xc56
jmp 0x140020284
cmp r8d, 0x93c
je 0x140020290
cmp r8d, 0x9be
je 0x140020290
cmp r8d, 0x9d7
jmp 0x140020284
cmp r8d, 0x11127
je 0x140020290
cmp r8d, 0x1133e
je 0x140020290
cmp r8d, 0x11357
jmp 0x140020284
cmp r8d, 0xfa0f
jle 0x140020249
cmp r8d, 0x110ba
je 0x140020290
lea r10d, [r8 - 0xfa10]
cmp r10d, 0x12
lea r13, [0x1401d0918]
mov ebp, r12d
ja 0x14002020d
mov r11d, 0x50005
bt r11d, r10d
jb case.0x14002015b.3907
lea r10d, [r8 - 0xfb1d]
cmp r10d, 0x21
ja case.0x14002015b.3908
movabs r11, 0x200000005
bt r11, r10
jb case.0x14002015b.3907
jmp case.0x14002015b.3908
cmp r8d, 0xcc2
je 0x140020290
cmp r8d, 0xd3e
jmp 0x140020284
cmp r8d, 0x2125
jg 0x1400202a1
lea r10d, [r8 - 0x1f71]
cmp r10d, 0x8c
lea r13, [0x1401d0918]
mov ebp, r12d
ja case.0x14002015b.3908
lea r11, [0x1401ab76c]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xbbe
lea r13, [0x1401d0918]
mov ebp, r12d
jne case.0x14002015b.3908
mov edi, r9d
cmp rax, rsi
jne 0x14001fdc6
jmp 0x140020433
lea r10d, [r8 - 0x2329]
cmp r10d, 2
lea r13, [0x1401d0918]
mov ebp, r12d
jb case.0x14002015b.3907
cmp r8d, 0x2126
je case.0x14002015b.3907
cmp r8d, 0x2adc
je case.0x14002015b.3907
movd xmm1, r8d
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x1401ab4d0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401ab4e0]
pxor xmm3, xmm14
pcmpgtd xmm3, xmmword [0x1401ab530]
pxor xmm2, xmm14
pcmpgtd xmm2, xmm10
packssdw xmm2, xmm3
packsswb xmm2, xmm2
pmovmskb r10d, xmm2
xor r10b, 0xff
jne case.0x14002015b.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x1401ab4c0]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x1401ab4f0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401ab500]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r10d, xmm4
test r10b, r10b
jne case.0x14002015b.3907
lea r10d, [r8 - 0x1d1bb]
cmp r10d, 6
jb case.0x14002015b.3907
lea r10d, [r8 - 0x2f800]
cmp r10d, 0x21e
jb case.0x14002015b.3907
movd r10d, xmm1
cmp r10d, 0x2000
je case.0x14002015b.3907
cmp r10d, 0x212a
je case.0x14002015b.3907
cmp r10d, 0xfb40
je case.0x14002015b.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 0x140020290
lea r11d, [r8 - 0x11a8]
cmp r11d, 0x1b
jb 0x140020290
cmp r10d, 0x330
je 0x140020290
add r8d, 0xffffcf67
cmp r8d, 2
movzx r9d, dil
mov ecx, 2
cmovb r9d, ecx
jmp 0x140020290
mov r9d, edi
test r9b, r9b
movabs r14, 0x8080808080808080
lea r13, [0x1401d0918]
lea rbx, [rsp + 0x108]
mov ebp, r12d
mov rcx, qword [rsp + 0x170]
je 0x1400206b8
movzx eax, r9b
cmp eax, 1
je case.0x14002015b.3907
lea rdx, [rsp + 0x88]
movups xmmword [rdx], xmm8
mov byte [rdx + 0x10], 0
lea rax, [rsp + 0x1d8]
movups xmmword [rax], xmm8
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x50], 0
mov word [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 byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rsi
mov dword [rsp + 0xa0], 0
mov word [rsp + 0xa4], 0
movzx eax, word [rsp + 0x1e6]
mov word [rdx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x1d6]
movdqu xmmword [rdx + 0x1e], xmm0
mov dword [rsp + 0xc0], 0x110000
mov byte [rsp + 0xc4], 0
mov rdi, rcx
cmp rdi, rsi
je 0x14002062f
movzx ebx, byte [rdi]
test bl, bl
js 0x14002053c
inc rdi
jmp 0x14002059c
mov eax, ebx
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp bl, 0xdf
jbe 0x140020584
movzx ecx, byte [rdi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x140020591
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 0x14002062f
add rdi, 4
jmp 0x14002059c
add rdi, 2
shl eax, 6
or eax, edx
mov ebx, eax
jmp 0x14002059c
add rdi, 3
shl eax, 0xc
or ecx, eax
mov ebx, ecx
lea rcx, [rsp + 0x40]
call fcn.140021c10
xor ebp, ebp
cmp eax, 0x110000
je 0x140020642
cmp eax, ebx
je 0x140020527
jmp 0x140020642
mov rcx, qword [rsp + 0x38]
lea rax, [rcx + 7]
and rax, 0xfffffffffffffff8
sub rax, rcx
mov ecx, 8
cmove rax, rcx
mov rcx, qword [rsp + 0x28]
add rcx, 0xfffffffffffffff8
cmp rax, rcx
jae 0x1400205ff
mov rdx, qword [rsp + 0x38]
test qword [rdx + rax], r14
jne 0x14001eb94
add rax, 8
cmp rax, rcx
jb 0x1400205e7
mov rax, qword [rsp + 0x38]
test qword [rax + rcx], r14
jne 0x14001eb94
jmp 0x14001ef0d
mov rcx, qword [rsp + 0x310]
mov rdx, qword [rsp + 0x30]
call fcn.1400a1c40
mov r10, qword [rsp + 0x28]
jmp 0x14001f7d1
lea rcx, [rsp + 0x40]
call fcn.140021c10
cmp eax, 0x110000
sete bpl
cmp dword [rsp + 0x50], 0
je 0x140020664
cmp qword [rsp + 0x58], 0
je 0x140020664
mov r8, qword [rsp + 0x60]
mov rcx, qword [0x14024d108]
xor edx, edx
call sub.kernel32.dll_HeapFree
cmp dword [rsp + 0xa0], 0
je 0x14002068f
cmp qword [rsp + 0xa8], 0
je 0x14002068f
mov r8, qword [rsp + 0xb0]
mov rcx, qword [0x14024d108]
xor edx, edx
call sub.kernel32.dll_HeapFree
test bpl, bpl
movabs r14, 0x8080808080808080
lea r13, [0x1401d0918]
lea rbx, [rsp + 0x108]
mov ebp, r12d
mov rcx, qword [rsp + 0x170]
je case.0x14002015b.3907
sub r15, qword [rsp + 0x30]
mov rdx, r15
mov r8, qword [rsp + 0x1e8]
lea r9, [rsp + 0xf0]
call fcn.1400217a0
xor edi, edi
jmp 0x14001eba8
mov byte [rsp + 0xf5], 1
xor edi, edi
jmp 0x14001eba8
mov rcx, qword [rsp + 0x310]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x1b0]
test rdx, rdx
je 0x14002071e
cmp r14, rdx
jbe 0x140020718
cmp byte [rax + rdx], 0xbf
jg 0x14002071e
jmp case.0x14001e012.1
jne case.0x14001e012.1
add rax, rdx
mov rcx, r14
sub rcx, rdx
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x78], 1
mov word [rsp + 0x80], 1
test bpl, 1
jne 0x140020788
lea rsi, [rsp + 0x40]
mov rcx, rsi
call fcn.1400abaa0
test rax, rax
jne 0x140020776
jmp 0x140020e84
lea r15, [rsp + 0x40]
mov ebx, 0x62f8
mov rcx, r15
call fcn.1400abaa0
test rax, rax
je 0x140020e84
test rdx, rdx
je 0x140020792
movzx r8d, byte [rax]
test r8b, r8b
js 0x1400207b7
lea rcx, [rax + 1]
jmp 0x14002082b
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x14002080d
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14002081d
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 0x140020792
lea rcx, [rax + 4]
jmp 0x14002082b
lea rcx, [rax + 2]
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14002082b
lea rcx, [rax + 3]
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
add rdx, rax
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14002084e
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x1400208a5
shr r9, 1
add r9, r11
lea r12, [r9 + r9*2]
lea rdi, [0x1401d0918]
mov ebp, dword [rdi + r12*4]
mov esi, dword [rdi + r12*4 + 4]
cmp esi, r8d
jb 0x140020872
cmp ebp, r8d
jbe 0x140020882
cmp esi, r8d
jae 0x14002083f
mov r11, r9
inc r11
mov r9, r10
jmp 0x14002083f
movzx r8d, byte [rdi + r12*4 + 8]
test r8d, r8d
je 0x1400209bf
cmp r8d, 0x11
je 0x1400209bf
cmp r8d, 9
jne 0x140020e7c
cmp rcx, rdx
je 0x1400209ab
movzx r8d, byte [rcx]
test r8b, r8b
js 0x1400208bc
inc rcx
jmp 0x140020934
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x140020916
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x140020926
movzx r8d, byte [rcx + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or r8d, r9d
cmp r8d, 0x110000
je 0x1400209ab
add rcx, 4
jmp 0x140020934
add rcx, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x140020934
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x140020958
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x1400208a5
shr r9, 1
add r9, r11
lea r12, [r9 + r9*2]
lea rdi, [0x1401d0918]
mov ebp, dword [rdi + r12*4]
mov esi, dword [rdi + r12*4 + 4]
cmp esi, r8d
jb 0x14002097c
cmp ebp, r8d
jbe 0x14002098c
cmp esi, r8d
jae 0x140020945
mov r11, r9
inc r11
mov r9, r10
jmp 0x140020945
movzx r8d, byte [rdi + r12*4 + 8]
cmp r8d, 0xe
ja 0x140020e7c
bt ebx, r8d
jb 0x1400208a5
jmp 0x140020e7c
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x140020aee
dec rdx
jmp 0x140020bc4
cmp rcx, rdx
je 0x140020b26
xor r8d, r8d
xor r9d, r9d
movzx r10d, byte [rcx]
test r10b, r10b
js 0x1400209dc
inc rcx
jmp 0x140020a51
mov r11d, r10d
and r11d, 0x1f
movzx r12d, byte [rcx + 1]
and r12d, 0x3f
cmp r10b, 0xdf
jbe 0x140020a33
movzx ebp, byte [rcx + 2]
shl r12d, 6
and ebp, 0x3f
or ebp, r12d
cmp r10b, 0xf0
jb 0x140020a43
movzx r10d, byte [rcx + 3]
and r11d, 7
shl r11d, 0x12
shl ebp, 6
and r10d, 0x3f
or r10d, ebp
or r10d, r11d
cmp r10d, 0x110000
je 0x140020b3a
add rcx, 4
jmp 0x140020a51
add rcx, 2
shl r11d, 6
or r11d, r12d
mov r10d, r11d
jmp 0x140020a51
add rcx, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
mov r11d, 0x5a6
xor r13d, r13d
mov r12d, 0x5a6
jmp 0x140020a75
cmp ebp, r10d
cmova r12, r11
mov r11, r12
sub r11, r13
jbe 0x140020e7c
shr r11, 1
add r11, r13
lea rsi, [r11 + r11*2]
lea rdi, [0x1401d0918]
mov ebp, dword [rdi + rsi*4]
mov edi, dword [rdi + rsi*4 + 4]
cmp edi, r10d
jb 0x140020a97
cmp ebp, r10d
jbe 0x140020aa7
cmp edi, r10d
jae 0x140020a62
mov r13, r11
inc r13
mov r11, r12
jmp 0x140020a62
lea r10, [0x1401d0918]
movzx r10d, byte [r10 + rsi*4 + 8]
cmp r10d, 0x11
ja 0x140020e7c
mov r11d, 0x260d9
bt r11d, r10d
jae 0x140020ad5
cmp rcx, rdx
jne 0x1400209ce
jmp 0x140020b3a
cmp r10d, 1
je 0x140020ae9
mov r9b, 1
cmp r10d, 5
je 0x140020aca
jmp 0x140020e7c
mov r8b, 1
jmp 0x140020aca
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x140020b91
movzx r9d, byte [rdx - 3]
cmp r9b, 0xbf
jg 0x140020b9b
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x140020ba3
mov cl, 1
movzx r8d, byte [rdx - 1]
test r8b, r8b
js 0x140020b56
dec rdx
jmp 0x140020d64
test r8b, 1
sete r8b
test r9b, 1
sete cl
or cl, r8b
movzx r8d, byte [rdx - 1]
test r8b, r8b
jns 0x140020b32
movzx r9d, byte [rdx - 2]
cmp r9b, 0xc0
jge 0x140020d2f
movzx r10d, byte [rdx - 3]
cmp r10b, 0xbf
jg 0x140020d39
movzx r11d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r11d, 7
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
jmp 0x140020d41
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x140020bae
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 ecx, 0x110000
je 0x140020792
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
lea rdi, [0x1401d0918]
jmp 0x140020beb
cmp r11d, ecx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x140020c43
shr r8, 1
add r8, r10
lea r12, [r8 + r8*2]
mov r11d, dword [rdi + r12*4]
mov esi, dword [rdi + r12*4 + 4]
cmp esi, ecx
jb 0x140020c07
cmp r11d, ecx
jbe 0x140020c16
cmp esi, ecx
jae 0x140020bdc
mov r10, r8
inc r10
mov r8, r9
jmp 0x140020bdc
cmp byte [rdi + r12*4 + 8], 0xd
jne 0x140020c43
cmp rdx, rax
je 0x140020792
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x140020cfb
dec rdx
cmp ecx, 0x110000
jne 0x140020bc4
jmp 0x140020792
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x140020c65
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x140020792
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
lea rsi, [0x1401d0918]
mov r9d, dword [rsi + r10*4]
mov r11d, dword [rsi + r10*4 + 4]
cmp r11d, ecx
jb 0x140020c89
cmp r9d, ecx
jbe 0x140020c99
cmp r11d, ecx
jae 0x140020c52
mov r8, rax
inc r8
mov rax, rdx
jmp 0x140020c52
cmp byte [rsi + r10*4 + 8], 9
je 0x140020792
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x140020cc7
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x140020e7c
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
lea rsi, [0x1401d0918]
mov r9d, dword [rsi + r10*4]
mov r11d, dword [rsi + r10*4 + 4]
cmp r11d, ecx
jb 0x140020ceb
cmp r9d, ecx
jbe 0x140020d1e
cmp r11d, ecx
jae 0x140020cb4
mov r8, rax
inc r8
mov rax, rdx
jmp 0x140020cb4
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x140020b91
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jl 0x140020b0c
jmp 0x140020b9b
cmp byte [rsi + r10*4 + 8], 5
je 0x140020792
jmp 0x140020e7c
add rdx, 0xfffffffffffffffe
and r9d, 0x1f
jmp 0x140020d4c
add rdx, 0xfffffffffffffffd
and r10d, 0xf
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp r8d, 0x110000
je 0x140020e7c
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
lea r12, [0x1401d0918]
jmp 0x140020d8b
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x140020de8
shr r9, 1
add r9, r11
lea rsi, [r9 + r9*2]
mov ebp, dword [r12 + rsi*4]
mov edi, dword [r12 + rsi*4 + 4]
cmp edi, r8d
jb 0x140020da8
cmp ebp, r8d
jbe 0x140020db8
cmp edi, r8d
jae 0x140020d7c
mov r11, r9
inc r11
mov r9, r10
jmp 0x140020d7c
cmp byte [r12 + rsi*4 + 8], 0xd
jne 0x140020de8
cmp rdx, rax
je 0x140020e7c
movzx r8d, byte [rdx - 1]
test r8b, r8b
js 0x140020e59
dec rdx
cmp r8d, 0x110000
jne 0x140020d64
jmp 0x140020e7c
mov eax, 0x5a6
xor r9d, r9d
mov edx, 0x5a6
jmp 0x140020e06
cmp r10d, r8d
cmova rdx, rax
mov rax, rdx
sub rax, r9
jbe 0x140020e7c
shr rax, 1
add rax, r9
lea r11, [rax + rax*2]
lea rdi, [0x1401d0918]
mov r10d, dword [rdi + r11*4]
mov esi, dword [rdi + r11*4 + 4]
cmp esi, r8d
jb 0x140020e2a
cmp r10d, r8d
jbe 0x140020e3a
cmp esi, r8d
jae 0x140020df7
mov r9, rax
inc r9
mov rax, rdx
jmp 0x140020df7
movzx eax, byte [rdi + r11*4 + 8]
cmp eax, 0x11
ja 0x140020e7c
mov edx, 0x20023
bt edx, eax
jae 0x140020e7c
test cl, cl
jne 0x140020792
jmp 0x140020e7c
movzx r9d, byte [rdx - 2]
cmp r9b, 0xc0
jge 0x140020d2f
movzx r10d, byte [rdx - 3]
cmp r10b, 0xc0
jl 0x140020b74
jmp 0x140020d39
mov byte [rsp + 0xf2], 1
movzx esi, byte [rsp + 0xf0]
lea rcx, [rsp + 0xf1]
mov rax, qword [rcx]
mov qword [rsp + 0x108], rax
mov eax, dword [rcx + 7]
mov dword [rsp + 0x10f], eax
cmp qword [rsp + 0x180], 0
mov r15, qword [rsp + 0x310]
je 0x140020ed6
mov r8, qword [rsp + 0x188]
mov rcx, qword [0x14024d108]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov r14, qword [r15 + 0x10]
test r14, r14
mov rdi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x100]
mov byte [rsp + 0x160], sil
je 0x140020f0d
js case.0x14001e012.1
movzx eax, byte [0x14024d119]
xor ecx, ecx
mov rdx, r14
call fcn.140082900
test rax, rax
jne 0x140020f15
ud2
mov eax, 1
xor r14d, r14d
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x50], rcx
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x40], xmm0
mov qword [r15], r14
mov qword [r15 + 8], rax
mov qword [r15 + 0x10], 0
lea rsi, [rbx + 0x18]
cmp qword [rbx + 0x18], 0
je 0x140020f53
mov r8, qword [rbx + 0x20]
mov rcx, qword [0x14024d108]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov rax, qword [rsp + 0x50]
mov qword [rsi + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x40]
movdqu xmmword [rsi], xmm0
mov rax, qword [rbx + 0x20]
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x78], 1
mov word [rsp + 0x80], 1
mov sil, 1
jmp 0x140020fc5
mov byte [rsp + 0x160], 1
mov qword [r15 + 0x10], rcx
xor esi, esi
lea rcx, [rsp + 0x40]
call fcn.1400abaa0
test rax, rax
je 0x14002177a
mov r14, rax
test sil, 1
movabs rbx, 0x8080808080808080
jne 0x140021012
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15]
jne 0x140021006
mov rcx, r15
mov rsi, rdx
call fcn.14008e720
mov rdx, rsi
mov rax, qword [r15 + 0x10]
mov rcx, qword [r15 + 8]
mov byte [rcx + rax], 0x2e
inc qword [r15 + 0x10]
cmp rdx, 8
jae 0x1400210c8
test rdx, rdx
je 0x140021232
cmp byte [r14 + rdx - 1], 0
js 0x140021103
mov rax, rdx
dec rax
je 0x140021232
cmp byte [r14 + rdx - 2], 0
js 0x140021103
mov rax, rdx
add rax, 0xfffffffffffffffe
je 0x140021232
cmp byte [r14 + rdx - 3], 0
js 0x140021103
mov rax, rdx
add rax, 0xfffffffffffffffd
je 0x140021232
cmp byte [r14 + rdx - 4], 0
js 0x140021103
mov rax, rdx
add rax, 0xfffffffffffffffc
je 0x140021232
cmp byte [r14 + rdx - 5], 0
js 0x140021103
mov rax, rdx
add rax, 0xfffffffffffffffb
je 0x140021232
cmp byte [r14 + rdx - 6], 0
js 0x140021103
mov rax, rdx
add rax, 0xfffffffffffffffa
je 0x140021232
cmp byte [r14 + rdx - 7], 0
js 0x140021103
mov rax, rdx
add rax, 0xfffffffffffffff9
jne 0x140021103
jmp 0x140021232
test qword [r14], rbx
jne 0x140021103
lea rax, [r14 + 7]
and rax, 0xfffffffffffffff8
sub rax, r14
mov ecx, 8
cmove rax, rcx
lea rcx, [rdx - 8]
cmp rax, rcx
jae 0x1400210f9
test qword [r14 + rax], rbx
jne 0x140021103
add rax, 8
cmp rax, rcx
jb 0x1400210ea
test qword [r14 + rcx], rbx
je 0x140021232
mov rax, qword [r15]
mov rbx, qword [r15 + 0x10]
sub rax, rbx
mov r8, rbx
cmp rax, 3
jbe 0x140021212
mov rax, qword [r15 + 8]
mov dword [rax + r8], 0x2d2d6e78
add r8, 4
mov qword [r15 + 0x10], r8
xor esi, esi
test rdx, rdx
je 0x140020fc5
mov qword [rsp + 0x1a8], rbx
mov r12, r14
add r12, rdx
xor r13d, r13d
mov qword [rsp + 0x168], r14
mov rdi, r14
jmp 0x140021174
mov rax, qword [r15 + 8]
mov byte [rax + r8], bpl
inc r8
mov qword [r15 + 0x10], r8
inc r13d
inc esi
cmp rdi, r12
je 0x140021273
movzx ebp, byte [rdi]
test bpl, bpl
js 0x140021181
inc rdi
jmp 0x1400211e3
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x1400211cb
movzx ecx, byte [rdi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x1400211d8
movzx ebp, byte [rdi + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebp, 0x3f
or ebp, ecx
or ebp, eax
cmp ebp, 0x110000
je 0x140021270
add rdi, 4
jmp 0x1400211e3
add rdi, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x1400211e3
add rdi, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
mov r14d, esi
inc r14d
je 0x140021708
cmp ebp, 0x7f
ja 0x140021169
cmp r8, qword [r15]
jne 0x140021157
mov rcx, r15
call fcn.14008e720
mov r8, qword [r15 + 0x10]
jmp 0x140021157
mov r8d, 4
mov rcx, r15
mov rsi, rdx
mov rdx, rbx
call fcn.1400a1c40
mov rdx, rsi
mov r8, qword [r15 + 0x10]
jmp 0x14002111a
mov rax, qword [r15]
mov rsi, qword [r15 + 0x10]
sub rax, rsi
cmp rax, rdx
jb 0x140021758
mov r15, rdx
mov rbx, qword [rsp + 0x310]
mov rcx, qword [rbx + 8]
add rcx, rsi
mov rdx, r14
mov r8, r15
call sub.msvcrt.dll_memcpy
add r15, rsi
mov rcx, r15
mov r15, rbx
jmp 0x140020fbf
mov r14d, esi
test r13d, r13d
je 0x1400212ab
cmp r8, qword [r15]
mov rdi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x168]
jne 0x140021299
mov rcx, r15
call fcn.14008e720
mov r8, qword [r15 + 0x10]
mov rax, qword [r15 + 8]
mov byte [rax + r8], 0x2d
inc r8
mov qword [r15 + 0x10], r8
jmp 0x1400212be
xor r13d, r13d
mov rdi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x168]
xor r9d, r9d
mov esi, 0
mov dword [rsp + 0x1a0], r14d
cmp r13d, r14d
jae 0x140020fc5
mov r14d, 0x48
mov eax, pe_nt_image_headers64
mov edx, r13d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x170], r13d
mov rcx, rbx
mov rdi, rdx
jmp 0x140021305
inc rcx
cmp eax, ebp
jbe 0x14002139a
cmp rcx, r12
je case.0x14001e012.1
movzx ebp, byte [rcx]
test bpl, bpl
jns 0x1400212fa
mov edx, ebp
and edx, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp bpl, 0xdf
jbe 0x140021368
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp bpl, 0xf0
jb 0x140021376
movzx ebp, byte [rcx + 3]
and edx, 7
shl edx, 0x12
shl r10d, 6
and ebp, 0x3f
or ebp, r10d
or ebp, edx
cmp ebp, 0x110000
je case.0x14001e012.1
add rcx, 4
jmp 0x1400212fd
add rcx, 2
shl edx, 6
or edx, r11d
mov ebp, edx
jmp 0x1400212fd
add rcx, 3
shl edx, 0xc
or r10d, edx
mov ebp, r10d
jmp 0x1400212fd
inc rcx
cmp ebp, edx
mov r10d, edx
cmovb r10d, ebp
cmp eax, edx
cmovbe ebp, r10d
cmp rcx, r12
je 0x140021417
movzx edx, byte [rcx]
test dl, dl
jns 0x140021388
mov r10d, edx
and r10d, 0x1f
movzx esi, byte [rcx + 1]
and esi, 0x3f
cmp dl, 0xdf
jbe 0x1400213f4
movzx r11d, byte [rcx + 2]
shl esi, 6
and r11d, 0x3f
or r11d, esi
cmp dl, 0xf0
jb 0x140021404
movzx edx, byte [rcx + 3]
and r10d, 7
shl r10d, 0x12
shl r11d, 6
and edx, 0x3f
or edx, r11d
or edx, r10d
cmp edx, 0x110000
je 0x140021417
add rcx, 4
jmp 0x14002138b
add rcx, 2
shl r10d, 6
or r10d, esi
mov edx, r10d
jmp 0x14002138b
add rcx, 3
shl r10d, 0xc
or r11d, r10d
mov edx, r11d
jmp 0x14002138b
mov r10d, ebp
sub r10d, eax
lea ecx, [rdi + 1]
mov eax, r9d
not eax
xor edx, edx
div ecx
cmp r10d, eax
ja 0x140021708
imul r10d, ecx
add r10d, r9d
mov r11d, r10d
mov rcx, qword [rsp + 0x168]
jmp 0x140021455
mov r10d, edi
mov r11d, r9d
cmp rcx, r12
je 0x1400216d4
movzx eax, byte [rcx]
test al, al
js 0x140021461
inc rcx
jmp 0x1400214d1
mov r10, rcx
mov ecx, eax
and ecx, 0x1f
movzx r9d, byte [r10 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x1400214b5
movzx edx, byte [r10 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp al, 0xf0
jb 0x1400214c3
movzx eax, byte [r10 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x110000
mov r9d, r11d
je 0x140021703
add r10, 4
mov rcx, r10
jmp 0x1400214d4
add r10, 2
shl ecx, 6
or ecx, r9d
mov eax, ecx
jmp 0x1400214ce
add r10, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
mov rcx, r10
mov r9d, r11d
cmp eax, ebp
jae 0x1400214e1
inc r9d
je 0x140021708
cmp eax, ebp
jne 0x140021446
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x100], rdi
lea edi, [r14 + 0x1a]
lea ecx, [r14 - 0x24]
neg ecx
cmp edi, 0x25
mov eax, 0x1a
cmovb ecx, eax
cmp r14d, 0x24
mov eax, 1
cmovae ecx, eax
cmp r9d, ecx
mov dword [rsp + 0x1b0], r9d
jae 0x1400215fc
mov eax, r9d
mov esi, 0x61
cmp eax, 0x1a
jb 0x140021546
mov esi, 0x16
cmp eax, 0x24
jae case.0x14001e012.1
cmp r8, qword [r15]
mov ebx, 0xd41d41d5
mov r12, qword [rsp + 0x30]
mov r13d, dword [rsp + 0x170]
jne 0x14002156d
mov rcx, r15
mov edi, eax
call fcn.14008e720
mov eax, edi
mov r8, qword [r15 + 0x10]
add esi, eax
mov rax, qword [r15 + 8]
mov byte [rax + r8], sil
inc r8
mov qword [r15 + 0x10], r8
mov rax, qword [rsp + 0x100]
mov r10d, eax
inc r10d
je case.0x14001e012.1
cmp eax, r13d
mov ecx, 2
mov eax, 0x2bc
cmove ecx, eax
xor r9d, r9d
mov eax, dword [rsp + 0x1b0]
xor edx, edx
div ecx
mov ecx, eax
xor edx, edx
div r10d
add eax, ecx
xor ecx, ecx
cmp eax, 0x1c8
jb 0x14002169e
nop word cs:[rax + rax]
mov edx, eax
imul rdx, rbx
shr rdx, 0x20
mov r11d, eax
sub r11d, edx
shr r11d, 1
add r11d, edx
shr r11d, 5
add ecx, 0x24
cmp eax, 0x3e57
mov eax, r11d
ja 0x1400215d0
jmp 0x1400216a1
mov r12d, r14d
neg r12d
mov r13d, 0x48
mov eax, r9d
jmp 0x140021647
add ebx, esi
mov rcx, qword [r15 + 8]
mov byte [rcx + r8], bl
inc r8
lea ecx, [r12 + r13]
cmp r13d, edi
mov edx, 0x1a
cmovae ecx, edx
cmp r13d, r14d
mov edx, 1
cmovbe ecx, edx
mov qword [r15 + 0x10], r8
add r13d, 0x24
cmp eax, ecx
jb 0x14002152e
mov r9d, ecx
sub r9d, 0x24
je case.0x14001e012.1
sub eax, ecx
neg r9d
xor edx, edx
div r9d
mov esi, edx
add esi, ecx
mov ebx, 0x61
cmp esi, 0x1a
jb 0x14002167a
mov ebx, 0x16
cmp esi, 0x24
jae case.0x14001e012.1
cmp r8, qword [r15]
jne 0x140021610
mov rcx, r15
mov r15d, eax
call fcn.14008e720
mov eax, r15d
mov r15, qword [rsp + 0x310]
mov r8, qword [r15 + 0x10]
jmp 0x140021610
mov r11d, eax
lea eax, [r11*4]
lea eax, [rax + rax*8]
add r11d, 0x26
xor edx, edx
div r11w
movzx r14d, ax
add r14d, ecx
mov r11d, r9d
mov edi, r10d
mov rcx, qword [rsp + 0x198]
cmp rcx, r12
jne 0x140021455
inc r9d
inc ebp
xor esi, esi
mov eax, ebp
mov edx, r10d
cmp r10d, dword [rsp + 0x1a0]
mov rdi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x168]
jb 0x1400212f2
jmp 0x140020fc5
mov r10d, edi
jmp 0x1400216d4
mov byte [rsp + 0x160], 1
xor esi, esi
mov rcx, qword [rsp + 0x1a8]
cmp r8, rcx
mov rdi, qword [rsp + 0x178]
jb 0x140020fc5
test rcx, rcx
je 0x140020fb7
mov byte [rsp + 0x160], 1
cmp r8, rcx
jbe 0x140020fbf
mov rax, qword [r15 + 8]
cmp byte [rax + rcx], 0xbf
jg 0x140020fbf
jmp case.0x14001e012.1
mov rbx, qword [rsp + 0x310]
mov rcx, rbx
mov r8, rdx
mov rdx, rsi
mov r15, r8
call fcn.1400a1c40
mov rsi, qword [rbx + 0x10]
jmp 0x140021248
movzx eax, byte [rsp + 0x160]
mov byte [rdi], al
mov rax, qword [rsp + 0x108]
mov qword [rdi + 1], rax
mov eax, dword [rsp + 0x10f]
mov dword [rdi + 8], eax
jmp 0x14001e979