Function at 0x14001b400
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2c8
movdqa xmmword [rsp + 0x2b0], xmm15
movdqa xmmword [rsp + 0x2a0], xmm14
movdqa xmmword [rsp + 0x290], xmm13
movdqa xmmword [rsp + 0x280], xmm12
movdqa xmmword [rsp + 0x270], xmm11
movdqa xmmword [rsp + 0x260], xmm10
movdqa xmmword [rsp + 0x250], xmm9
movaps xmmword [rsp + 0x240], xmm8
movdqa xmmword [rsp + 0x230], xmm7
movdqa xmmword [rsp + 0x220], xmm6
mov rbx, rcx
mov r14, qword [rsp + 0x330]
test r9, r9
je 0x14001b5be
lea rax, [r8 + r9]
xor r15d, r15d
movdqa xmm0, xmmword [str.xn__]
mov rcx, r8
jmp 0x14001b4af
xor r11d, r11d
mov r15, r11
cmp rcx, rax
je 0x14001c438
movzx esi, byte [rcx]
test sil, sil
js 0x14001b4d0
inc rcx
mov r10d, esi
cmp r10d, 0x2e
jne 0x14001b560
jmp 0x14001b4a0
mov r10d, esi
and r10d, 0x1f
movzx edi, byte [rcx + 1]
and edi, 0x3f
cmp sil, 0xdf
jbe 0x14001b524
movzx r11d, byte [rcx + 2]
shl edi, 6
and r11d, 0x3f
or r11d, edi
cmp sil, 0xf0
jb 0x14001b53a
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 0x14001b560
jmp 0x14001b4a0
add rcx, 2
shl r10d, 6
or r10d, edi
cmp r10d, 0x2e
jne 0x14001b560
jmp 0x14001b4a0
add rcx, 3
shl r10d, 0xc
or r11d, r10d
mov r10d, r11d
cmp r10d, 0x2e
je 0x14001b4a0
nop word cs:[rax + rax]
cmp r10d, 0x110000
je 0x14001c438
test r15, r15
jne 0x14001b578
cmp r10d, 0x2d
je 0x14001b5be
mov r11d, 5
cmp r15, 4
ja 0x14001b5a3
movdqa xmmword [rsp + 0x60], xmm0
je case.0x14001bae2.1
cmp r10d, dword [rsp + r15*4 + 0x60]
jne 0x14001b5a3
inc r15
mov r11, r15
cmp r15, 4
je 0x14001b5be
lea esi, [r10 - 0x61]
cmp esi, 0x1a
jb 0x14001b4a3
add r10d, 0xffffffd0
cmp r10d, 9
jbe 0x14001b4a3
mov qword [rsp + 0x188], rbx
mov eax, dword [rdx + 0x30]
movzx ecx, byte [rdx + 0x34]
add r9, r8
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x70], 0
mov word [rsp + 0x74], 0
mov byte [rsp + 0x78], 0
mov dword [rsp + 0x7c], 0
mov byte [rsp + 0x80], 0
mov dword [rsp + 0x84], 0
mov byte [rsp + 0x88], 0
mov dword [rsp + 0x8c], 0
mov byte [rsp + 0x90], 0
mov dword [rsp + 0x94], 0
mov qword [rsp + 0x98], r8
mov qword [rsp + 0xa0], r9
lea r8, [rsp + 0x110]
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0xb0], 0
mov byte [rsp + 0xc4], cl
shl rcx, 0x20
or rcx, rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x58], rdx
mov qword [rdx + 0x10], 0
mov dword [rsp + 0x118], 0
mov qword [rsp + 0x110], 0
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x1c0], rcx
pxor xmm6, xmm6
movdqu xmmword [rsp + 0x193], xmm6
mov byte [rsp + 0x1a3], 0
movdqu xmmword [rsp + 0x1e0], xmm6
lea r15, [rsp + 0x70]
mov dword [rsp + 0xc0], eax
movups xmm0, xmmword [rsp + 0x190]
movups xmmword [rsp + 0xc5], xmm0
mov eax, dword [rsp + 0x1a0]
mov dword [rsp + 0xd5], eax
mov dword [rsp + 0xe0], 0
mov word [rsp + 0xe4], 0
movzx eax, word [rsp + 0x1ee]
mov word [rsp + 0xf6], ax
movdqu xmm0, xmmword [rsp + 0x1de]
movdqu xmmword [rsp + 0xe6], xmm0
mov dword [rsp + 0x100], 0x110000
mov byte [rsp + 0x104], 0
lea rbp, [0x1401c1c9c]
lea r14, [0x1401c576c]
xor eax, eax
test rax, rax
je 0x14001b820
cmp rax, 1
jne 0x14001c21e
mov rax, qword [rsp + 0x68]
cmp dword [rsp + 0xe0], 0
je 0x14001b77d
cmp rax, qword [rsp + 0xf8]
jb 0x14001c242
mov qword [rsp + 0xf8], 0
jmp 0x14001b7ad
movzx ecx, word [rsp + 0xe4]
cmp rcx, 4
ja case.0x14001bae2.1
cmp rax, rcx
jb 0x14001c283
cmp word [rsp + 0xe4], 0
je 0x14001b7ad
mov word [rsp + 0xe4], 0
mov qword [rsp + 0x60], 0
jmp 0x14001b820
movzx esi, di
imul ebx, esi, 0x6f75
shr ebx, 0x18
lea edx, [rbx + 0x1100]
mov rcx, r15
call fcn.14001f560
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.14001f560
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 0x14001b820
add esi, 0x11a7
movzx edx, si
mov rcx, r15
call fcn.14001f560
mov rdx, qword [rsp + 0xd0]
test rdx, rdx
jne 0x14001bb80
movzx ecx, byte [rsp + 0xc0]
cmp cl, 2
je 0x14001bfd2
mov rsi, qword [rsp + 0xb0]
mov r10, qword [rsp + 0x98]
mov r8, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xa8]
movzx r9d, byte [rsp + 0xc1]
mov r11, qword [rsp + 0xb8]
test rsi, rsi
je 0x14001b91e
cmp rsi, r11
je 0x14001b912
lea rdx, [rsi + 1]
mov qword [rsp + 0xb0], rdx
movzx edx, byte [rsi]
test dl, dl
jns 0x14001be34
mov edi, edx
and edi, 0x1f
lea r12, [rsi + 2]
mov qword [rsp + 0xb0], r12
movzx r12d, byte [rsi + 1]
and r12d, 0x3f
cmp dl, 0xdf
jbe 0x14001c11a
lea r13, [rsi + 3]
mov qword [rsp + 0xb0], r13
movzx r13d, byte [rsi + 2]
shl r12d, 6
and r13d, 0x3f
or r13d, r12d
cmp dl, 0xf0
jb 0x14001c127
lea rdx, [rsi + 4]
mov qword [rsp + 0xb0], 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.0x14001bae2.0
mov qword [rsp + 0xb0], 0
cmp r10, r8
je 0x14001bfca
lea rdx, [r10 + 1]
mov qword [rsp + 0x98], rdx
movzx esi, byte [r10]
test sil, sil
js 0x14001b960
mov r10, rdx
mov edx, esi
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14001ba10
jmp 0x14001be34
mov edx, esi
and edx, 0x1f
lea rdi, [r10 + 2]
mov qword [rsp + 0x98], rdi
movzx r12d, byte [r10 + 1]
and r12d, 0x3f
cmp sil, 0xdf
jbe 0x14001b9d8
lea r13, [r10 + 3]
mov qword [rsp + 0x98], r13
movzx edi, byte [r10 + 2]
shl r12d, 6
and edi, 0x3f
or edi, r12d
cmp sil, 0xf0
jb 0x14001b9ee
lea rsi, [r10 + 4]
mov qword [rsp + 0x98], 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 0x14001ba10
jmp 0x14001be34
shl edx, 6
or edx, r12d
mov r10, rdi
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14001ba10
jmp 0x14001be34
shl edx, 0xc
or edi, edx
mov r10, r13
mov edx, edi
lea esi, [rdx - 0x2d]
cmp esi, 2
jb 0x14001be34
nop word cs:[rax + rax]
cmp edx, 0x110000
je 0x14001bfca
lea esi, [rdx - 0x61]
cmp esi, 0x1a
jb 0x14001be34
lea esi, [rdx - 0x30]
cmp esi, 0xa
jb 0x14001be34
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 0x14001ba8a
lea rbx, [rsi + 1]
cmp r12d, edx
cmova r13, rsi
cmovb rdi, rbx
mov rsi, r13
sub rsi, rdi
ja 0x14001ba50
dec rdi
mov rsi, rdi
cmp rdi, 0x759
ja case.0x14001bae2.1
movzx ebx, word [rbp + rsi*8 + 4]
mov edi, ebx
and edi, 0x7fff
test bx, bx
js 0x14001baab
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.0x14001bae2.1
movzx edi, di
movzx r12d, byte [r14 + rdi*4]
mov esi, 0
cmp r12d, 1
je case.default.0x14001bae2
mov r11d, r12d
lea rsi, [0x1401b1970]
movsxd r11, dword [rsi + r11*4]
add r11, rsi
jmp r11
mov ecx, dword [rsp + 0x70]
mov rax, qword [rsp + 0xc8]
test ecx, ecx
je 0x14001bba2
mov r8, qword [rsp + 0x80]
mov r9, qword [rsp + 0x88]
jmp 0x14001bbb7
movzx r9d, word [rsp + 0x74]
lea r8, [rsp + 0x78]
cmp r9, 5
jae case.0x14001bae2.1
cmp rax, r9
jae case.0x14001bae2.1
mov esi, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x14001bc80
test ecx, ecx
je 0x14001bc8a
mov rax, qword [rsp + 0x88]
sub rax, rdx
je 0x14001bc98
xor ecx, ecx
nop dword [rax]
mov rdx, qword [rsp + 0xd0]
add rdx, rcx
cmp dword [rsp + 0x70], 0
je 0x14001bc20
mov r8, qword [rsp + 0x88]
cmp rdx, r8
jae case.0x14001bae2.1
mov r9, qword [rsp + 0x80]
jmp 0x14001bc3e
movzx r8d, word [rsp + 0x74]
cmp r8, 5
jae case.0x14001bae2.1
lea r9, [rsp + 0x78]
cmp rdx, r8
jae case.0x14001bae2.1
cmp rcx, r8
jae case.0x14001bae2.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 0x14001bbf0
mov ecx, dword [rsp + 0x70]
test ecx, ecx
jne 0x14001bc9c
movzx ecx, word [rsp + 0x74]
cmp rax, rcx
jae 0x14001bcae
mov word [rsp + 0x74], ax
jmp 0x14001bcae
mov qword [rsp + 0xc8], rax
jmp 0x14001bcb4
movzx eax, word [rsp + 0x74]
sub rax, rdx
jne 0x14001bbea
test ecx, ecx
je 0x14001bc6e
cmp qword [rsp + 0x88], rax
jb 0x14001bcae
mov qword [rsp + 0x88], 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, [0x1401db180]
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, [0x1401db8b4]
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 + 0x100]
cmp r13d, 0x110000
jne 0x14001bd30
test dil, dil
jne 0x14001c1a0
mov dword [rsp + 0x100], esi
jmp 0x14001b820
cmp byte [rsp + 0x104], 0
je 0x14001bd61
cmp byte [rsp + 0x105], dil
jae 0x14001bd80
mov ecx, r13d
mov edx, esi
call fcn.1400a5ed0
cmp eax, 0x110000
je 0x14001bd89
mov dword [rsp + 0x100], eax
jmp 0x14001b820
mov ecx, r13d
mov edx, esi
call fcn.1400a5ed0
cmp eax, 0x110000
jne 0x14001c061
test dil, dil
jne 0x14001bd89
jmp 0x14001c212
test dil, dil
je 0x14001c1ec
cmp dword [rsp + 0xe0], 0
je 0x14001bdcf
mov rdx, qword [rsp + 0xf8]
cmp rdx, qword [rsp + 0xe8]
jne 0x14001bdba
lea rcx, [rsp + 0xe8]
call fcn.1400dea90
mov rdx, qword [rsp + 0xf8]
mov rax, qword [rsp + 0xf0]
mov dword [rax + rdx*4], esi
inc qword [rsp + 0xf8]
jmp 0x14001bdf2
movzx eax, word [rsp + 0xe4]
cmp rax, 3
ja 0x14001c135
mov dword [rsp + rax*4 + 0xe8], esi
inc eax
mov word [rsp + 0xe4], ax
mov byte [rsp + 0x104], 1
mov byte [rsp + 0x105], dil
jmp 0x14001b820
cmp edx, 0x110000
je 0x14001bfca
cmp byte [rsp + 0xd8], 0
je 0x14001bef4
cmp edx, 0x80
jb 0x14001b818
lea edi, [rdx - 0xac00]
cmp edi, 0x2ba4
jb 0x14001b7b8
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x20
lea r9, [0x1401e7118]
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, [0x1401e8ee0]
mov rsi, qword [r9 + r8*8]
cmp edx, esi
jne 0x14001c06d
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0x1668
jae case.0x14001bae2.1
shr rsi, 0x30
mov ecx, 0x1667
sub rcx, rax
cmp rsi, rcx
ja case.0x14001bae2.1
lea rcx, [0x1401f0600]
lea rdi, [rcx + rax*4]
test rsi, rsi
jne 0x14001c0eb
jmp 0x14001b820
cmp edx, 0x80
jb 0x14001b818
lea edi, [rdx - 0xac00]
cmp edi, 0x2ba4
jb 0x14001b7b8
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x1401deb5c]
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, [0x1401dfb78]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x14001b818
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x14001bae2.1
shr rsi, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rsi, rcx
ja case.0x14001bae2.1
test rsi, rsi
je 0x14001b820
lea rcx, [0x1401e3be0]
lea rdi, [rcx + rax*4]
shl esi, 2
xor r12d, r12d
nop word cs:[rax + rax]
mov edx, dword [rdi + r12]
mov rcx, r15
call fcn.14001f560
add r12, 4
cmp rsi, r12
jne 0x14001bfb0
jmp 0x14001b820
mov byte [rsp + 0xc0], 2
mov r8d, dword [rsp + 0x70]
test r8d, r8d
mov rcx, qword [rsp + 0x88]
movzx edx, word [rsp + 0x74]
mov rax, rcx
cmove rax, rdx
test rax, rax
je 0x14001c1b0
mov rax, qword [rsp + 0xd0]
test r8d, r8d
je 0x14001c011
mov r8, qword [rsp + 0x80]
mov rdx, rcx
jmp 0x14001c020
lea r8, [rsp + 0x78]
cmp dx, 5
jae case.0x14001bae2.1
sub rdx, rax
jb case.0x14001bae2.1
lea rcx, [r8 + rax*8]
call fcn.14001abf0
mov ecx, dword [rsp + 0x70]
test ecx, ecx
je 0x14001c04f
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0xd0], rdx
jmp 0x14001bb84
movzx edx, word [rsp + 0x74]
mov qword [rsp + 0xd0], rdx
jmp 0x14001bb84
mov dword [rsp + 0x100], eax
jmp 0x14001b820
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x1401deb5c]
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, [0x1401dfb78]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x14001b818
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x14001bae2.1
shr rsi, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rsi, rcx
ja case.0x14001bae2.1
lea rcx, [0x1401e3be0]
lea rdi, [rcx + rax*4]
test rsi, rsi
je 0x14001b820
shl esi, 2
xor r12d, r12d
nop word cs:[rax + rax]
mov edx, dword [rdi + r12]
mov rcx, r15
call fcn.14001f560
add r12, 4
cmp rsi, r12
jne 0x14001c100
jmp 0x14001b820
shl edi, 6
or edi, r12d
mov edx, edi
jmp 0x14001be34
shl edi, 0xc
or r13d, edi
mov edx, r13d
jmp 0x14001be34
lea rcx, [rsp + 0x140]
lea rdx, [rsp + 0xe4]
mov r8d, esi
call fcn.1400203e0
cmp dword [rsp + 0xe0], 0
je 0x14001c178
cmp qword [rsp + 0xe8], 0
je 0x14001c178
mov r8, qword [rsp + 0xf0]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
movdqu xmm0, xmmword [rsp + 0x140]
movdqu xmm1, xmmword [rsp + 0x150]
movdqu xmmword [r15 + 0x80], xmm1
movdqu xmmword [r15 + 0x70], xmm0
jmp 0x14001bdf2
mov r13d, esi
jmp 0x14001c2f0
mov qword [rsp + 0x60], 2
mov qword [rsp + 0x68], 0
mov r13d, dword [rsp + 0x100]
mov eax, 2
cmp r13d, 0x110000
je 0x14001b73f
mov dword [rsp + 0x100], 0x110000
jmp 0x14001c2f0
mov dword [rsp + 0x100], esi
mov byte [rsp + 0x104], 0
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x68], 0
jmp 0x14001c2f0
mov dword [rsp + 0x100], esi
jmp 0x14001c2f0
mov rcx, qword [rsp + 0x68]
mov eax, dword [rsp + 0xe0]
test eax, eax
je 0x14001c24c
cmp rcx, qword [rsp + 0xf8]
jae 0x14001c2a2
mov rdx, qword [rsp + 0xf0]
jmp 0x14001c26c
mov rcx, qword [rsp + 0xf0]
jmp 0x14001c28b
movzx r8d, word [rsp + 0xe4]
cmp r8, 5
jae case.0x14001bae2.1
lea rdx, [rsp + 0xe8]
cmp rcx, r8
jae 0x14001c2b0
mov r13d, dword [rdx + rcx*4]
inc rcx
mov qword [rsp + 0x60], 2
mov qword [rsp + 0x68], rcx
jmp 0x14001c2f0
lea rcx, [rsp + 0xe8]
mov r13d, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x68], rax
jmp 0x14001c2f0
mov qword [rsp + 0xf8], 0
jmp 0x14001c2c5
cmp word [rsp + 0xe4], 0
je 0x14001c2c5
mov word [rsp + 0xe4], 0
mov r13d, dword [rsp + 0x100]
mov dword [rsp + 0x100], 0x110000
cmp r13d, 0x110000
je 0x14001c504
nop word cs:[rax + rax]
cmp r13d, 0x80
jae 0x14001c330
mov rsi, qword [rsp + 0x58]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x14001c313
mov rcx, rsi
call fcn.1400a1180
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rax + rdx], r13b
inc rdx
mov qword [rsi + 0x10], rdx
mov rax, qword [rsp + 0x60]
jmp 0x14001b73f
mov dword [rsp + 0x140], 0
cmp r13d, 0x10000
mov esi, 4
sbb rsi, 0
cmp r13d, 0x800
mov eax, 2
cmovb rsi, rax
mov eax, r13d
cmp rsi, 4
je 0x14001c390
cmp rsi, 3
jne 0x14001c3c5
shr eax, 0xc
and al, 0xf
or al, 0xe0
mov byte [rsp + 0x140], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x141], al
mov eax, 2
jmp 0x14001c3d8
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x140], al
mov eax, r13d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x141], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x142], al
mov eax, 3
jmp 0x14001c3d8
shr eax, 6
and al, 0x1f
or al, 0xc0
mov byte [rsp + 0x140], al
mov eax, 1
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + rax + 0x140], r13b
mov rbx, qword [rsp + 0x58]
mov rax, qword [rbx]
mov rdi, qword [rbx + 0x10]
sub rax, rdi
cmp rax, rsi
jb 0x14001c424
mov rcx, qword [rbx + 8]
add rcx, rdi
lea rdx, [rsp + 0x140]
mov r8, rsi
call sub.msvcrt.dll_memcpy
add rdi, rsi
mov qword [rbx + 0x10], rdi
mov rax, qword [rsp + 0x60]
jmp 0x14001b73f
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.1400deb40
mov rdi, qword [rbx + 0x10]
jmp 0x14001c3fc
mov rax, qword [r14]
mov rsi, qword [r14 + 0x10]
sub rax, rsi
cmp rax, r9
jb 0x14001c4e1
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 + 0x220]
movaps xmm7, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm10, xmmword [rsp + 0x260]
movaps xmm11, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm13, xmmword [rsp + 0x290]
movaps xmm14, xmmword [rsp + 0x2a0]
movaps xmm15, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
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.1400deb40
mov r8, rsi
mov r9, rdi
mov rsi, qword [r14 + 0x10]
jmp 0x14001c44b
cmp dword [rsp + 0x70], 0
je 0x14001c53c
cmp qword [rsp + 0x78], 0
mov rsi, qword [rsp + 0x58]
mov r13, qword [rsp + 0x28]
je 0x14001c546
mov r8, qword [rsp + 0x80]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov eax, dword [rsp + 0xe0]
jmp 0x14001c546
mov rsi, qword [rsp + 0x58]
mov r13, qword [rsp + 0x28]
test eax, eax
je 0x14001c56b
cmp qword [rsp + 0xe8], 0
je 0x14001c56b
mov r8, qword [rsp + 0xf0]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
movabs r14, 0x8080808080808080
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x198], 8
mov qword [rsp + 0x1a0], 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
mov rax, r13
and rax, 0xffffffffffff00ff
mov qword [rsp + 0x200], rax
mov bl, 1
lea rbp, [rsp + 0x140]
movdqa xmm6, xmmword [0x1401b1470]
movdqa xmm7, xmmword [0x1401b1480]
xorps xmm8, xmm8
movdqa xmm14, xmmword [0x1401b14e0]
movdqa xmm15, xmmword [0x1401b14f0]
movdqa xmm10, xmmword [0x1401b1510]
movdqa xmm11, xmmword [0x1401b1520]
movdqa xmm12, xmmword [0x1401b1530]
movdqa xmm13, xmmword [0x1401b1540]
movdqa xmm9, xmmword [0x1401b1550]
mov dword [rsp + 0x34], 0
jmp 0x14001c6aa
movabs r14, 0x8080808080808080
test qword [rsi], r14
mov ebx, 0x1a
je 0x14001e0c3
mov byte [rsp + 0x110], 1
mov al, 1
mov dword [rsp + 0x34], eax
xor ebx, ebx
mov r13, qword [rsp + 0x28]
lea rbp, [rsp + 0x140]
mov rcx, rbp
call fcn.1400aa4f0
test rax, rax
je 0x14001e1e7
mov r15, rax
mov r12, rdx
test bl, 1
lea rbx, [0x1401d6db8]
jne 0x14001c6f9
mov rsi, qword [rsp + 0x330]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x14001c6ea
mov rcx, rsi
call fcn.1400a1180
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [rsi + 0x10], rdx
cmp r12, 4
jb 0x14001c70c
cmp dword [r15], 0x2d2d6e78
je 0x14001c8a4
test byte [rsp + 0x34], 1
jne 0x14001c84b
test r12, r12
je 0x14001c843
mov rax, r15
add rax, r12
mov rcx, r15
jmp 0x14001c734
cmp rcx, rax
je 0x14001c843
movzx edx, byte [rcx]
test dl, dl
js 0x14001c740
inc rcx
jmp 0x14001c7b3
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001c795
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001c7a5
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 0x14001c843
add rcx, 4
jmp 0x14001c7b3
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14001c7b3
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001c72b
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001c7f3
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001c72b
shr r8, 1
add r8, r10
lea rsi, [r8 + r8*2]
mov r11d, dword [rbx + rsi*4]
mov edi, dword [rbx + rsi*4 + 4]
cmp edi, edx
jb 0x14001c80e
cmp r11d, edx
jbe 0x14001c81d
cmp edi, edx
jae 0x14001c7e0
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001c7e0
movzx edx, byte [rbx + rsi*4 + 8]
cmp edx, 0x11
ja 0x14001c72b
mov r8d, 0x20003
bt r8d, edx
jae 0x14001c72b
mov al, 1
mov dword [rsp + 0x34], eax
jmp 0x14001c84b
mov dword [rsp + 0x34], 0
mov rcx, r15
mov rdx, r12
mov r8, r13
lea r9, [rsp + 0x110]
call fcn.14001f2f0
mov rcx, qword [rsp + 0x330]
mov rax, qword [rcx]
mov rsi, qword [rcx + 0x10]
sub rax, rsi
cmp rax, r12
jb 0x14001cca9
mov rdi, qword [rsp + 0x330]
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 ebx, ebx
jmp 0x14001c6aa
lea rsi, [r15 + 4]
add r12, 0xfffffffffffffffc
mov qword [rsp + 0x1a0], 0
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], r12
mov byte [rsp + 0x88], 1
movabs rax, 0x2d0000002d
mov qword [rsp + 0x80], rax
lea rax, [r15 + 0xb]
and rax, 0xfffffffffffffff8
sub rax, rsi
mov rcx, r15
add rcx, 3
mov r11, r12
mov ebx, 0x1a
jmp 0x14001c914
mov qword [rsp + 0x78], r11
cmp r11, r12
ja 0x14001ca0c
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.0x14001bae2.1
lea r9, [rsi + r11]
sub r9, rsi
sub r9, r8
lea r10, [rcx + r11]
test r9, r9
je 0x14001c966
dec r9
cmp byte [r10], 0x2d
lea r10, [r10 - 1]
jne 0x14001c94c
add r9, r8
mov r11, r9
jmp 0x14001c9b8
mov r9, r8
cmp r8, rdx
jbe 0x14001c99c
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 0x14001c966
cmp r9, r11
ja case.0x14001bae2.1
mov r11, r9
sub r11, 1
jb 0x14001ca0c
cmp byte [rcx + r9], 0x2d
mov r9, r11
jne 0x14001c9a8
cmp r11, r12
jae 0x14001c906
mov dl, 0x2d
cmp byte [rsi + r11], dl
jne 0x14001c906
test r11, r11
mov qword [rsp + 0x50], rsi
je 0x14001d5d5
cmp r11, r12
jae 0x14001c9eb
cmp byte [rsi + r11], 0xbf
jle case.0x14001bae2.1
mov qword [rsp + 0x38], r11
lea rax, [r11 + 1]
cmp rax, r12
jae 0x14001d60f
cmp byte [rsi + rax], 0xbf
jg 0x14001d618
jmp case.0x14001bae2.1
mov r15, rsi
xor eax, eax
mov qword [rsp + 0x38], rax
lea rax, [0x1402112b8]
mov qword [rsp + 0x50], rax
add r12, r15
mov dword [rsp + 0x40], pe_nt_image_headers64
mov ebp, 0x48
xor eax, eax
mov qword [rsp + 0x48], rax
xor esi, esi
mov rax, qword [rsp + 0x38]
mov r13d, eax
cmp r15, r12
je 0x14001cc59
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 0x14001ca88
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x14001ca8c
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x14001ca8c
jmp 0x14001c68d
add al, 0xea
mov edx, eax
test r11d, r11d
je case.0x14001bae2.1
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x14001c68d
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + rdi]
cmp edi, r9d
cmovae eax, ebx
cmp edi, ebp
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x14001cb08
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x14001c68d
cmp r15, r12
je 0x14001c68d
add edi, 0x24
imul r11d, r8d
inc r15
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x14001ca73
jmp 0x14001ca88
inc r13d
je case.0x14001bae2.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 0x14001cb70
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 0x14001cb47
jmp 0x14001cb73
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 + 0x40], eax
jb 0x14001c68d
mov eax, dword [rsp + 0x40]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x14001c68d
mov esi, edx
mov rax, qword [rsp + 0x198]
mov ebx, edx
cmp qword [rsp + 0x48], 0
je 0x14001cbf0
mov rcx, qword [rsp + 0x48]
shl rcx, 4
xor edx, edx
jmp 0x14001cbde
add rdx, 0x10
cmp rcx, rdx
je 0x14001cbf0
mov r8, qword [rax + rdx]
cmp r8, rbx
jb 0x14001cbd5
inc r8
mov qword [rax + rdx], r8
jmp 0x14001cbd5
mov rdx, qword [rsp + 0x48]
cmp rdx, qword [rsp + 0x190]
jne 0x14001cc1c
lea rcx, [rsp + 0x190]
call fcn.140028560
mov rax, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x1a0]
movzx ecx, di
add ebp, ecx
mov rcx, rdx
shl rcx, 4
mov qword [rax + rcx], rbx
mov r8d, dword [rsp + 0x40]
mov dword [rax + rcx + 8], r8d
inc rdx
mov rax, rdx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x1a0], rdx
inc esi
mov ebx, 0x1a
cmp r15, r12
jne 0x14001ca4c
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x120], rax
mov r13, qword [rsp + 0x48]
cmp r13, 0x15
jae 0x14001ccc8
cmp r13, 1
mov rsi, qword [rsp + 0x330]
lea rbp, [rsp + 0x140]
jbe 0x14001d2bf
mov r8d, 1
mov rcx, qword [rsp + 0x120]
mov rdx, r13
call fcn.14001b350
jmp 0x14001d2bf
mov rdi, qword [rsp + 0x330]
mov rcx, rdi
mov rdx, rsi
mov r8, r12
call fcn.1400deb40
mov rsi, qword [rdi + 0x10]
jmp 0x14001c87c
lea rdx, [r13*8]
movabs rax, 0x7ffffffffffffff0
and rdx, rax
movzx eax, byte [0x140254141]
xor ecx, ecx
call fcn.14008bd10
mov qword [rsp + 0x128], rax
test rax, rax
je case.0x14001bae2.1
movzx eax, byte [0x140254141]
mov edx, 0x100
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je case.0x14001bae2.1
mov r15, rax
mov rax, qword [rsp + 0x120]
lea rcx, [rax + 0x20]
mov qword [rsp + 0x1c8], rcx
lea rcx, [rax + 8]
mov qword [rsp + 0x1f8], rcx
lea rcx, [rax - 8]
mov qword [rsp + 0x1f0], rcx
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x210], rax
mov eax, 0x10
mov qword [rsp + 0x1d0], rax
xor r14d, r14d
xor r12d, r12d
mov r13, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
jmp 0x14001cd8c
mov r12d, 1
mov r14, qword [rsp + 0x208]
cmp r14, r13
jae 0x14001d283
mov r9, r13
sub r9, r14
mov rax, r14
shl rax, 4
mov rcx, qword [rsp + 0x120]
add rcx, rax
cmp r9, 2
jae 0x14001d17a
mov r8, r9
lea rax, [r8 + r14]
mov rsi, rax
sub rsi, r14
jb case.0x14001bae2.1
cmp rax, r13
ja case.0x14001bae2.1
jae 0x14001ce04
cmp r8, 0xa
jae 0x14001ce04
cmp r14, 0xfffffffffffffff6
jae case.0x14001bae2.1
lea rdi, [r14 + 0xa]
cmp rdi, r13
cmovae rdi, r13
cmp rax, r14
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, r14
mov rdx, rsi
call fcn.14001b350
mov rax, rdi
mov qword [rsp + 0x208], rax
cmp r12, qword [rsp + 0x1d0]
jne 0x14001ce69
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x140254141]
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je case.0x14001bae2.1
mov rdi, rax
lea rax, [r12 + r12]
mov qword [rsp + 0x1d0], rax
mov r8, r12
shl r8, 4
mov rcx, rdi
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
mov r15, rdi
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 + 0x218], r15
jae 0x14001cf0b
jmp 0x14001cd7b
mov rbx, qword [rsp + 0x128]
mov rdx, rbx
mov r15, qword [rsp + 0x218]
add rbp, r15
sub r12, rdx
mov rcx, rdi
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x130]
add rax, rsi
mov qword [rbp], rax
mov rax, qword [rsp + 0x1b0]
mov qword [rbp + 8], rax
mov rcx, qword [rsp + 0x1a8]
lea rdx, [rcx + 0x10]
mov rax, qword [rsp + 0x138]
not rax
mov r8, qword [rsp + 0x40]
add r8, rax
shl r8, 4
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x1b8]
cmp rax, 1
jbe 0x14001cd75
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, r13
je 0x14001cf77
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + r15 - 0x20]
cmp r8, rax
jbe 0x14001cf77
cmp r12, 2
je 0x14001d26d
lea r11, [r12 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r15 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14001cf8d
cmp r12, 3
jbe 0x14001d278
add r8, rcx
cmp qword [rdx + r15 - 0x40], r8
jbe 0x14001cf8d
jmp 0x14001cd7b
cmp r12, 2
je 0x14001cf92
lea r11, [r12 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r15 + rcx]
cmp rcx, rax
jb 0x14001cf97
lea r11, [r12 - 2]
cmp r11, r12
jae case.0x14001bae2.1
lea rbp, [r11 + 1]
cmp rbp, r12
jae case.0x14001bae2.1
mov rcx, r11
shl rcx, 4
mov rdi, qword [r15 + rcx + 8]
shl rbp, 4
mov rax, qword [r15 + rbp]
mov r14, qword [r15 + rbp + 8]
add r14, rax
mov rbx, r14
sub rbx, rdi
jb case.0x14001bae2.1
mov qword [rsp + 0x40], r12
cmp r14, r13
ja case.0x14001bae2.1
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], r11
mov qword [rsp + 0x1b8], r10
add rcx, r15
mov qword [rsp + 0x1a8], rcx
mov rsi, qword [rcx]
mov qword [rsp + 0x1b0], rdi
shl rdi, 4
add rdi, qword [rsp + 0x120]
mov r12, rsi
shl r12, 4
lea r15, [rdi + r12]
shl r14, 4
mov r13, rbx
sub r13, rsi
cmp r13, rsi
jae 0x14001d0d9
mov r12, r13
shl r12, 4
mov rbx, qword [rsp + 0x128]
mov rcx, rbx
mov rdx, r15
mov r8, r12
call sub.msvcrt.dll_memcpy
add r12, rbx
test rsi, rsi
jle 0x14001d160
test r13, r13
jle 0x14001d160
add r14, qword [rsp + 0x210]
mov r13, qword [rsp + 0x48]
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 0x14001d0d1
add r14, 0xfffffffffffffff0
cmp r12, rbx
ja 0x14001d07a
mov rdi, r15
jmp 0x14001ce9a
mov r13, qword [rsp + 0x128]
mov rcx, r13
mov rdx, rdi
mov r8, r12
call sub.msvcrt.dll_memcpy
add r12, r13
test rsi, rsi
jle 0x14001d165
cmp rbx, rsi
mov r13, qword [rsp + 0x48]
jle 0x14001ce92
add r14, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x128]
mov rdx, rbx
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 0x14001ce9d
mov al, cl
shl eax, 4
add r15, rax
cmp r15, r14
jb 0x14001d118
jmp 0x14001ce9d
mov rdi, r15
jmp 0x14001d16d
mov rbx, qword [rsp + 0x128]
mov rdx, rbx
mov r13, qword [rsp + 0x48]
jmp 0x14001ce9d
mov r10, qword [rcx + 0x10]
cmp r10, qword [rcx]
jae 0x14001d1e5
mov edx, 2
cmp r9, 2
je 0x14001d1b9
mov rdx, qword [rsp + 0x1c8]
lea r8, [rdx + rax]
mov edx, 2
mov r11, r10
mov r10, qword [r8]
cmp r10, r11
jae 0x14001d1b9
inc rdx
add r8, 0x10
cmp r9, rdx
jne 0x14001d19f
mov rdx, r9
mov r8, rdx
add r8, r14
jb case.0x14001bae2.1
cmp r8, r13
ja case.0x14001bae2.1
mov rbp, r8
mov r8d, 1
cmp rdx, 2
jae 0x14001d21d
mov rax, rbp
jmp 0x14001cdb5
mov r8d, 2
cmp r9, 2
je 0x14001cdb1
add rax, qword [rsp + 0x1c8]
mov rdx, r10
mov r10, qword [rax]
cmp r10, rdx
jb 0x14001cdb1
inc r8
add rax, 0x10
cmp r9, r8
jne 0x14001d1fd
jmp 0x14001cdae
mov r8, rdx
shr r8, 1
add rax, qword [rsp + 0x1f8]
mov r9, rbp
shl r9, 4
add r9, qword [rsp + 0x1f0]
mov r10, qword [rax - 8]
mov r11d, dword [rax]
mov rsi, qword [r9 - 8]
mov edi, dword [r9]
mov qword [rax - 8], rsi
mov dword [rax], edi
mov qword [r9 - 8], r10
mov dword [r9], r11d
add rax, 0x10
add r9, 0xfffffffffffffff0
dec r8
jne 0x14001d23a
mov r8, rdx
mov rax, rbp
jmp 0x14001cdb5
mov r12d, 2
jmp 0x14001cd7b
mov r12d, 3
jmp 0x14001cd7b
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rsp + 0x330]
movabs r14, 0x8080808080808080
lea rbp, [rsp + 0x140]
mov r10, qword [rsp + 0x38]
lea r8, [r10 + r13]
mov rax, qword [rsi]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x40], rcx
sub rax, rcx
cmp rax, r8
jb 0x14001e116
mov r11, qword [rsp + 0x50]
add r10, r11
xor r15d, r15d
xor r12d, r12d
mov qword [rsp + 0x38], r10
cmp r15, r13
jb 0x14001d3a5
cmp r11, r10
je 0x14001d5a6
movzx r8d, byte [r11]
test r8b, r8b
js 0x14001d320
inc r11
mov rbx, r11
movzx edi, r8b
inc r12
jmp 0x14001d46d
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [r11 + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x14001d378
movzx edx, byte [r11 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14001d381
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 0x14001d5a6
add r11, 4
mov rcx, r11
jmp 0x14001d425
add r11, 2
jmp 0x14001d447
add r11, 3
jmp 0x14001d458
mov rax, qword [rsi + 8]
mov byte [rax + rdx], dil
inc rdx
mov qword [rsi + 0x10], rdx
mov r11, rbx
cmp r15, r13
jae 0x14001d2fc
mov rax, r15
shl rax, 4
add rax, qword [rsp + 0x120]
cmp qword [rax], r12
jne 0x14001d3c4
inc r15
mov edi, dword [rax + 8]
jmp 0x14001d45f
mov rcx, r11
mov r11, r10
cmp rcx, r10
je 0x14001d3c4
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x14001d435
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x14001d440
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14001d451
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 0x14001d3c4
mov r11, rcx
cmp edi, 0x110000
jne 0x14001d45f
jmp 0x14001d5a6
inc rcx
mov r11, rcx
jmp 0x14001d311
add rcx, 2
mov r11, rcx
shl eax, 6
or eax, r9d
mov edi, eax
jmp 0x14001d45f
add rcx, 3
mov r11, rcx
shl eax, 0xc
or eax, edx
mov edi, eax
inc r12
cmp edi, 0x80
jae 0x14001d498
mov rbx, r11
mov rsi, qword [rsp + 0x330]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x14001d38a
mov rcx, rsi
call fcn.1400a1180
mov r10, qword [rsp + 0x38]
mov rdx, qword [rsi + 0x10]
jmp 0x14001d38a
mov r13, r11
mov dword [rsp + 0x60], 0
cmp edi, 0x10000
mov esi, 4
sbb rsi, 0
cmp edi, 0x800
mov eax, 2
cmovb rsi, rax
mov eax, edi
cmp rsi, 4
je 0x14001d4ee
cmp rsi, 3
jne 0x14001d518
shr eax, 0xc
and al, 0xf
or al, 0xe0
mov byte [rsp + 0x60], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x61], al
mov eax, 2
jmp 0x14001d528
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x60], al
mov eax, edi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x61], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x62], al
mov eax, 3
jmp 0x14001d528
shr eax, 6
and al, 0x1f
or al, 0xc0
mov byte [rsp + 0x60], al
mov eax, 1
and dil, 0x3f
or dil, 0x80
mov byte [rsp + rax + 0x60], dil
mov rcx, qword [rsp + 0x330]
mov rax, qword [rcx]
mov rdi, qword [rcx + 0x10]
sub rax, rdi
cmp rax, rsi
jb 0x14001d58a
mov rbx, qword [rsp + 0x330]
mov rcx, qword [rbx + 8]
add rcx, rdi
lea rdx, [rsp + 0x60]
mov r8, rsi
call sub.msvcrt.dll_memcpy
add rdi, rsi
mov qword [rbx + 0x10], rdi
mov r10, qword [rsp + 0x38]
mov r11, r13
mov r13, qword [rsp + 0x48]
cmp r15, r13
jae 0x14001d2fc
jmp 0x14001d3a5
mov rbx, qword [rsp + 0x330]
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.1400deb40
mov rdi, qword [rbx + 0x10]
jmp 0x14001d54c
mov rax, qword [rsp + 0x330]
mov rdi, qword [rax + 8]
mov r15, qword [rax + 0x10]
mov rdx, qword [rsp + 0x40]
test rdx, rdx
mov r13, qword [rsp + 0x28]
je 0x14001d5ea
cmp r15, rdx
jbe 0x14001d5e4
cmp byte [rdi + rdx], 0xbf
jg 0x14001d5ea
jmp case.0x14001bae2.1
mov r15, rsi
xor eax, eax
mov qword [rsp + 0x38], rax
jmp 0x14001ca22
jne case.0x14001bae2.1
lea rsi, [rdi + rdx]
test byte [rsp + 0x34], 1
jne 0x14001d871
cmp r15, rdx
jne 0x14001d735
mov dword [rsp + 0x34], 0
jmp 0x14001d855
mov rax, r12
jne case.0x14001bae2.1
lea r15, [rsi + rax]
sub r12, rax
cmp qword [rsp + 0x38], 8
jae 0x14001c675
mov rax, qword [rsp + 0x38]
cmp byte [rsi + rax - 1], 0
movabs r14, 0x8080808080808080
js 0x14001c68d
mov rax, qword [rsp + 0x38]
dec rax
je 0x14001e0b9
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 2], 0
js 0x14001c68d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffe
je 0x14001e0b9
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 3], 0
js 0x14001c68d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffd
je 0x14001e0b9
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 4], 0
js 0x14001c68d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffc
je 0x14001e0b9
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 5], 0
js 0x14001c68d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffb
je 0x14001e0b9
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 6], 0
js 0x14001c68d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffa
je 0x14001e0b9
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 7], 0
mov ebx, 0x1a
js 0x14001c68d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffff9
je 0x14001ca22
jmp 0x14001c68d
lea rax, [rdi + r15]
mov rcx, rsi
jmp 0x14001d747
cmp rcx, rax
je 0x14001d602
movzx edx, byte [rcx]
test dl, dl
js 0x14001d753
inc rcx
jmp 0x14001d7c6
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001d7a8
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001d7b8
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 0x14001d602
add rcx, 4
jmp 0x14001d7c6
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14001d7c6
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001d73e
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001d7f8
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001d73e
shr r8, 1
add r8, r10
lea rbx, [r8 + r8*2]
lea r14, [0x1401d6db8]
mov r11d, dword [r14 + rbx*4]
mov ebp, dword [r14 + rbx*4 + 4]
cmp ebp, edx
jb 0x14001d81b
cmp r11d, edx
jbe 0x14001d82a
cmp ebp, edx
jae 0x14001d7e5
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001d7e5
lea rdx, [0x1401d6db8]
movzx edx, byte [rdx + rbx*4 + 8]
cmp edx, 0x11
ja 0x14001d73e
mov r8d, 0x20003
bt r8d, edx
jae 0x14001d73e
mov al, 1
mov dword [rsp + 0x34], eax
movabs r14, 0x8080808080808080
mov r13, qword [rsp + 0x28]
lea rbp, [rsp + 0x140]
mov rdx, qword [rsp + 0x40]
movq xmm0, qword [rsp + 0x110]
movzx eax, byte [rsp + 0x119]
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 + 0x118]
or al, byte [rsp + 0x11a]
or al, cl
xor ebx, ebx
or al, byte [rsp + 0x11b]
jne 0x14001c6aa
cmp r15, rdx
je 0x14001e1b1
add rdi, r15
xor edx, edx
xor ecx, ecx
mov rax, rsi
movzx r8d, byte [rax]
test r8b, r8b
js 0x14001d8ec
inc rax
jmp 0x14001d97f
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xe0
jb 0x14001d946
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14001d956
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 0x14001df1d
add rax, 4
jmp 0x14001d964
add rax, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14001d964
add rax, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
cmp r8d, 0x7f
jbe 0x14001d97f
jmp 0x14001da0e
inc rax
cmp r8d, 0x80
jae 0x14001da0c
cmp rax, rdi
je 0x14001df1d
movzx r8d, byte [rax]
test r8b, r8b
jns 0x14001d96f
mov edx, r8d
and edx, 0x1f
movzx r10d, byte [rax + 1]
and r10d, 0x3f
cmp r8b, 0xdf
jbe 0x14001d9e8
movzx r9d, byte [rax + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp r8b, 0xf0
jb 0x14001d9fa
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 0x14001df1d
add rax, 4
jmp 0x14001d972
add rax, 2
shl edx, 6
or edx, r10d
mov r8d, edx
jmp 0x14001d972
add rax, 3
shl edx, 0xc
or r9d, edx
mov r8d, r9d
jmp 0x14001d972
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, [0x1401db180]
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, [0x1401db8b4]
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
mov r13, qword [rsp + 0x28]
lea rbp, [rsp + 0x140]
jbe 0x14001da93
test dl, dl
jne case.0x14001dc5c.3907
lea r9d, [r8 - 0x340]
cmp r9d, 4
ja 0x14001daaa
cmp r9d, 2
jne case.0x14001dc5c.3907
mov r9b, 2
cmp r8d, 0xd56
jg 0x14001db1c
cmp r8d, 0x9de
jg 0x14001db5c
cmp r8d, 0x93b
jg 0x14001dc85
lea r10d, [r8 - 0x30f]
cmp r10d, 0x36
ja 0x14001daf1
movabs r11, 0x48020000001005
bt r11, r10
jb 0x14001dd82
lea r10d, [r8 - 0x374]
cmp r10d, 0x13
mov r13, qword [rsp + 0x28]
ja case.0x14001dc5c.3908
mov r11d, 0x80401
bt r11d, r10d
jb case.0x14001dc5c.3907
jmp case.0x14001dc5c.3908
cmp r8d, 0x11126
jg 0x14001dbcb
cmp r8d, 0x102d
jle 0x14001dc0e
cmp r8d, 0x1f70
jg 0x14001dcd1
cmp r8d, 0x102e
je 0x14001dd82
cmp r8d, 0x1b35
jmp 0x14001dd7b
cmp r8d, 0xbd6
jg 0x14001dc5f
cmp r8d, 0xbbd
jg 0x14001dd74
lea r10d, [r8 - 0xb3e]
cmp r10d, 0x19
ja 0x14001db93
mov r11d, 0x3000001
bt r11d, r10d
jb 0x14001dd82
lea r10d, [r8 - 0xa33]
cmp r10d, 0x2b
mov r13, qword [rsp + 0x28]
ja 0x14001dbb9
movabs r11, 0x80000000009
bt r11, r10
jb case.0x14001dc5c.3907
cmp r8d, 0x9df
jne case.0x14001dc5c.3908
jmp case.0x14001dc5c.3907
cmp r8d, 0x114af
jle 0x14001dcab
lea r10d, [r8 - 0x114b0]
cmp r10d, 0xd
ja 0x14001dbf5
mov r11d, 0x2401
bt r11d, r10d
jb 0x14001dd82
cmp r8d, 0x115af
je 0x14001dd82
cmp r8d, 0x11930
jmp 0x14001dd7b
lea r10d, [r8 - 0xdca]
cmp r10d, 0x15
ja 0x14001dc2b
mov r11d, 0x200021
bt r11d, r10d
jb 0x14001dd82
cmp r8d, 0xd57
je 0x14001dd82
lea r10d, [r8 - 0xf43]
cmp r10d, 0x76
mov r13, qword [rsp + 0x28]
ja case.0x14001dc5c.3908
lea r11, [0x1401b1560]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xcc1
jg 0x14001dd33
cmp r8d, 0xbd7
je 0x14001dd82
cmp r8d, 0xc56
jmp 0x14001dd7b
cmp r8d, 0x93c
je 0x14001dd82
cmp r8d, 0x9be
je 0x14001dd82
cmp r8d, 0x9d7
jmp 0x14001dd7b
cmp r8d, 0x11127
je 0x14001dd82
cmp r8d, 0x1133e
je 0x14001dd82
cmp r8d, 0x11357
jmp 0x14001dd7b
cmp r8d, 0xfa0f
jle 0x14001dd45
cmp r8d, 0x110ba
je 0x14001dd82
lea r10d, [r8 - 0xfa10]
cmp r10d, 0x12
mov r13, qword [rsp + 0x28]
ja 0x14001dd09
mov r11d, 0x50005
bt r11d, r10d
jb case.0x14001dc5c.3907
lea r10d, [r8 - 0xfb1d]
cmp r10d, 0x21
ja case.0x14001dc5c.3908
movabs r11, 0x200000005
bt r11, r10
jb case.0x14001dc5c.3907
jmp case.0x14001dc5c.3908
cmp r8d, 0xcc2
je 0x14001dd82
cmp r8d, 0xd3e
jmp 0x14001dd7b
cmp r8d, 0x2125
jg 0x14001dd93
lea r10d, [r8 - 0x1f71]
cmp r10d, 0x8c
mov r13, qword [rsp + 0x28]
ja case.0x14001dc5c.3908
lea r11, [0x1401b173c]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xbbe
mov r13, qword [rsp + 0x28]
jne case.0x14001dc5c.3908
mov ecx, r9d
cmp rax, rdi
jne 0x14001d8db
jmp 0x14001df20
lea r10d, [r8 - 0x2329]
cmp r10d, 2
mov r13, qword [rsp + 0x28]
jb case.0x14001dc5c.3907
cmp r8d, 0x2126
je case.0x14001dc5c.3907
cmp r8d, 0x2adc
je case.0x14001dc5c.3907
movd xmm1, r8d
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x1401b14a0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401b14b0]
pxor xmm3, xmm14
pcmpgtd xmm3, xmmword [0x1401b1500]
pxor xmm2, xmm14
pcmpgtd xmm2, xmm10
packssdw xmm2, xmm3
packsswb xmm2, xmm2
pmovmskb r10d, xmm2
xor r10b, 0xff
jne case.0x14001dc5c.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x1401b1490]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x1401b14c0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401b14d0]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r10d, xmm4
test r10b, r10b
jne case.0x14001dc5c.3907
lea r10d, [r8 - 0x1d1bb]
cmp r10d, 6
jb case.0x14001dc5c.3907
lea r10d, [r8 - 0x2f800]
cmp r10d, 0x21e
jb case.0x14001dc5c.3907
movd r10d, xmm1
cmp r10d, 0x2000
je case.0x14001dc5c.3907
cmp r10d, 0x212a
je case.0x14001dc5c.3907
cmp r10d, 0xfb40
je case.0x14001dc5c.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 0x14001dd82
lea r11d, [r8 - 0x11a8]
cmp r11d, 0x1b
jb 0x14001dd82
cmp r10d, 0x330
je 0x14001dd82
add r8d, 0xffffcf67
cmp r8d, 2
movzx r9d, cl
mov ecx, 2
cmovb r9d, ecx
jmp 0x14001dd82
mov r9d, ecx
test r9b, r9b
movabs r14, 0x8080808080808080
mov r13, qword [rsp + 0x28]
lea rbp, [rsp + 0x140]
je 0x14001e1b1
movzx eax, r9b
cmp eax, 1
je case.0x14001dc5c.3907
lea rcx, [rsp + 0xa8]
movups xmmword [rcx], xmm8
mov byte [rcx + 0x10], 0
lea rax, [rsp + 0x1e0]
movups xmmword [rax], xmm8
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x70], 0
mov word [rsp + 0x74], 0
mov byte [rsp + 0x78], 0
mov dword [rsp + 0x7c], 0
mov byte [rsp + 0x80], 0
mov dword [rsp + 0x84], 0
mov byte [rsp + 0x88], 0
mov dword [rsp + 0x8c], 0
mov byte [rsp + 0x90], 0
mov dword [rsp + 0x94], 0
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xa0], rdi
mov dword [rsp + 0xc0], 0
mov word [rsp + 0xc4], 0
movzx eax, word [rsp + 0x1ee]
mov word [rcx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x1de]
movdqu xmmword [rcx + 0x1e], xmm0
mov dword [rsp + 0xe0], 0x110000
mov byte [rsp + 0xe4], 0
mov rbx, rsi
cmp rbx, rdi
je 0x14001e132
movzx ebp, byte [rbx]
test bpl, bpl
js 0x14001e032
inc rbx
jmp 0x14001e094
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x14001e07c
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x14001e089
movzx ebp, byte [rbx + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebp, 0x3f
or ebp, ecx
or ebp, eax
cmp ebp, 0x110000
je 0x14001e132
add rbx, 4
jmp 0x14001e094
add rbx, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x14001e094
add rbx, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
lea rcx, [rsp + 0x60]
call fcn.14001f780
xor r14d, r14d
cmp eax, 0x110000
je 0x14001e145
cmp eax, ebp
je 0x14001e01c
jmp 0x14001e145
mov ebx, 0x1a
jmp 0x14001ca22
mov rcx, qword [rsp + 0x50]
lea rax, [rcx + 7]
and rax, 0xfffffffffffffff8
sub rax, rcx
mov ecx, 8
cmove rax, rcx
mov rcx, qword [rsp + 0x38]
add rcx, 0xfffffffffffffff8
cmp rax, rcx
jae 0x14001e102
mov rdx, qword [rsp + 0x50]
test qword [rdx + rax], r14
jne 0x14001c68d
add rax, 8
cmp rax, rcx
jb 0x14001e0ea
mov rax, qword [rsp + 0x50]
test qword [rax + rcx], r14
jne 0x14001c68d
jmp 0x14001ca22
mov rcx, qword [rsp + 0x330]
mov rdx, qword [rsp + 0x40]
call fcn.1400deb40
mov r10, qword [rsp + 0x38]
jmp 0x14001d2e0
lea rcx, [rsp + 0x60]
call fcn.14001f780
cmp eax, 0x110000
sete r14b
cmp dword [rsp + 0x70], 0
je 0x14001e16a
cmp qword [rsp + 0x78], 0
je 0x14001e16a
mov r8, qword [rsp + 0x80]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp dword [rsp + 0xc0], 0
je 0x14001e195
cmp qword [rsp + 0xc8], 0
je 0x14001e195
mov r8, qword [rsp + 0xd0]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
test r14b, r14b
movabs r14, 0x8080808080808080
mov r13, qword [rsp + 0x28]
lea rbp, [rsp + 0x140]
je case.0x14001dc5c.3907
sub r15, qword [rsp + 0x40]
mov rcx, rsi
mov rdx, r15
mov r8, qword [rsp + 0x200]
lea r9, [rsp + 0x110]
call fcn.14001f2f0
xor ebx, ebx
jmp 0x14001c6aa
mov byte [rsp + 0x115], 1
xor ebx, ebx
jmp 0x14001c6aa
mov rcx, qword [rsp + 0x330]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x1c0]
test rdx, rdx
je 0x14001e21a
cmp r14, rdx
jbe 0x14001e214
cmp byte [rax + rdx], 0xbf
jg 0x14001e21a
jmp case.0x14001bae2.1
jne case.0x14001bae2.1
add rax, rdx
mov rcx, r14
sub rcx, rdx
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x90], rax
mov byte [rsp + 0x98], 1
mov word [rsp + 0xa0], 1
test byte [rsp + 0x34], 1
jne 0x14001e291
lea rsi, [rsp + 0x60]
mov rcx, rsi
call fcn.1400aa4f0
test rax, rax
jne 0x14001e27f
jmp 0x14001e9c4
lea r15, [rsp + 0x60]
mov ebx, 0x62f8
mov rcx, r15
call fcn.1400aa4f0
test rax, rax
je 0x14001e9c4
test rdx, rdx
je 0x14001e29b
movzx r8d, byte [rax]
test r8b, r8b
js 0x14001e2c0
lea rcx, [rax + 1]
jmp 0x14001e334
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x14001e316
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14001e326
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 0x14001e29b
lea rcx, [rax + 4]
jmp 0x14001e334
lea rcx, [rax + 2]
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14001e334
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 0x14001e357
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x14001e3b5
shr r9, 1
add r9, r11
lea r12, [r9 + r9*2]
lea rsi, [0x1401d6db8]
mov ebp, dword [rsi + r12*4]
mov esi, dword [rsi + r12*4 + 4]
cmp esi, r8d
jb 0x14001e37b
cmp ebp, r8d
jbe 0x14001e38b
cmp esi, r8d
jae 0x14001e348
mov r11, r9
inc r11
mov r9, r10
jmp 0x14001e348
lea r8, [0x1401d6db8]
movzx r8d, byte [r8 + r12*4 + 8]
test r8d, r8d
je 0x14001e4d6
cmp r8d, 0x11
je 0x14001e4d6
cmp r8d, 9
jne 0x14001e9bc
cmp rcx, rdx
je 0x14001e4c2
movzx r8d, byte [rcx]
test r8b, r8b
js 0x14001e3cc
inc rcx
jmp 0x14001e444
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x14001e426
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14001e436
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 0x14001e4c2
add rcx, 4
jmp 0x14001e444
add rcx, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14001e444
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14001e468
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x14001e3b5
shr r9, 1
add r9, r11
lea r12, [r9 + r9*2]
lea rsi, [0x1401d6db8]
mov ebp, dword [rsi + r12*4]
mov esi, dword [rsi + r12*4 + 4]
cmp esi, r8d
jb 0x14001e48c
cmp ebp, r8d
jbe 0x14001e49c
cmp esi, r8d
jae 0x14001e455
mov r11, r9
inc r11
mov r9, r10
jmp 0x14001e455
lea r8, [0x1401d6db8]
movzx r8d, byte [r8 + r12*4 + 8]
cmp r8d, 0xe
ja 0x14001e9bc
bt ebx, r8d
jb 0x14001e3b5
jmp 0x14001e9bc
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14001e605
dec rdx
jmp 0x14001e6db
cmp rcx, rdx
je 0x14001e63d
xor r8d, r8d
xor r9d, r9d
movzx r10d, byte [rcx]
test r10b, r10b
js 0x14001e4f3
inc rcx
jmp 0x14001e568
mov r11d, r10d
and r11d, 0x1f
movzx r12d, byte [rcx + 1]
and r12d, 0x3f
cmp r10b, 0xdf
jbe 0x14001e54a
movzx ebp, byte [rcx + 2]
shl r12d, 6
and ebp, 0x3f
or ebp, r12d
cmp r10b, 0xf0
jb 0x14001e55a
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 0x14001e651
add rcx, 4
jmp 0x14001e568
add rcx, 2
shl r11d, 6
or r11d, r12d
mov r10d, r11d
jmp 0x14001e568
add rcx, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
mov r11d, 0x5a6
xor r13d, r13d
mov r12d, 0x5a6
jmp 0x14001e58c
cmp ebp, r10d
cmova r12, r11
mov r11, r12
sub r11, r13
jbe 0x14001e9bc
shr r11, 1
add r11, r13
lea rsi, [r11 + r11*2]
lea rdi, [0x1401d6db8]
mov ebp, dword [rdi + rsi*4]
mov edi, dword [rdi + rsi*4 + 4]
cmp edi, r10d
jb 0x14001e5ae
cmp ebp, r10d
jbe 0x14001e5be
cmp edi, r10d
jae 0x14001e579
mov r13, r11
inc r13
mov r11, r12
jmp 0x14001e579
lea r10, [0x1401d6db8]
movzx r10d, byte [r10 + rsi*4 + 8]
cmp r10d, 0x11
ja 0x14001e9bc
mov r11d, 0x260d9
bt r11d, r10d
jae 0x14001e5ec
cmp rcx, rdx
jne 0x14001e4e5
jmp 0x14001e651
cmp r10d, 1
je 0x14001e600
mov r9b, 1
cmp r10d, 5
je 0x14001e5e1
jmp 0x14001e9bc
mov r8b, 1
jmp 0x14001e5e1
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14001e6a8
movzx r9d, byte [rdx - 3]
cmp r9b, 0xbf
jg 0x14001e6b2
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x14001e6ba
mov cl, 1
movzx r8d, byte [rdx - 1]
test r8b, r8b
js 0x14001e66d
dec rdx
jmp 0x14001e894
test r8b, 1
sete r8b
test r9b, 1
sete cl
or cl, r8b
movzx r8d, byte [rdx - 1]
test r8b, r8b
jns 0x14001e649
movzx r9d, byte [rdx - 2]
cmp r9b, 0xc0
jge 0x14001e85f
movzx r10d, byte [rdx - 3]
cmp r10b, 0xbf
jg 0x14001e869
movzx r11d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r11d, 7
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
jmp 0x14001e871
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x14001e6c5
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 0x14001e29b
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001e6fb
cmp r11d, ecx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001e765
shr r8, 1
add r8, r10
lea r12, [r8 + r8*2]
lea rsi, [0x1401d6db8]
mov r11d, dword [rsi + r12*4]
mov esi, dword [rsi + r12*4 + 4]
cmp esi, ecx
jb 0x14001e71e
cmp r11d, ecx
jbe 0x14001e72d
cmp esi, ecx
jae 0x14001e6ec
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001e6ec
lea r8, [0x1401d6db8]
cmp byte [r8 + r12*4 + 8], 0xd
jne 0x14001e765
cmp rdx, rax
je 0x14001e29b
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14001e824
dec rdx
cmp ecx, 0x110000
jne 0x14001e6db
jmp 0x14001e29b
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14001e787
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x14001e29b
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
lea r11, [0x1401d6db8]
mov r9d, dword [r11 + r10*4]
mov r11d, dword [r11 + r10*4 + 4]
cmp r11d, ecx
jb 0x14001e7ab
cmp r9d, ecx
jbe 0x14001e7bb
cmp r11d, ecx
jae 0x14001e774
mov r8, rax
inc r8
mov rax, rdx
jmp 0x14001e774
lea rax, [0x1401d6db8]
cmp byte [rax + r10*4 + 8], 9
je 0x14001e29b
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14001e7f0
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x14001e9bc
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
lea r11, [0x1401d6db8]
mov r9d, dword [r11 + r10*4]
mov r11d, dword [r11 + r10*4 + 4]
cmp r11d, ecx
jb 0x14001e814
cmp r9d, ecx
jbe 0x14001e847
cmp r11d, ecx
jae 0x14001e7dd
mov r8, rax
inc r8
mov rax, rdx
jmp 0x14001e7dd
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14001e6a8
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jl 0x14001e623
jmp 0x14001e6b2
lea rax, [0x1401d6db8]
cmp byte [rax + r10*4 + 8], 5
je 0x14001e29b
jmp 0x14001e9bc
add rdx, 0xfffffffffffffffe
and r9d, 0x1f
jmp 0x14001e87c
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 0x14001e9bc
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14001e8b4
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x14001e921
shr r9, 1
add r9, r11
lea rsi, [r9 + r9*2]
lea rdi, [0x1401d6db8]
mov ebp, dword [rdi + rsi*4]
mov edi, dword [rdi + rsi*4 + 4]
cmp edi, r8d
jb 0x14001e8d6
cmp ebp, r8d
jbe 0x14001e8e6
cmp edi, r8d
jae 0x14001e8a5
mov r11, r9
inc r11
mov r9, r10
jmp 0x14001e8a5
lea r9, [0x1401d6db8]
cmp byte [r9 + rsi*4 + 8], 0xd
jne 0x14001e921
cmp rdx, rax
je 0x14001e9bc
movzx r8d, byte [rdx - 1]
test r8b, r8b
js 0x14001e999
dec rdx
cmp r8d, 0x110000
jne 0x14001e894
jmp 0x14001e9bc
mov eax, 0x5a6
xor r9d, r9d
mov edx, 0x5a6
jmp 0x14001e93f
cmp r10d, r8d
cmova rdx, rax
mov rax, rdx
sub rax, r9
jbe 0x14001e9bc
shr rax, 1
add rax, r9
lea r11, [rax + rax*2]
lea rsi, [0x1401d6db8]
mov r10d, dword [rsi + r11*4]
mov esi, dword [rsi + r11*4 + 4]
cmp esi, r8d
jb 0x14001e963
cmp r10d, r8d
jbe 0x14001e973
cmp esi, r8d
jae 0x14001e930
mov r9, rax
inc r9
mov rax, rdx
jmp 0x14001e930
lea rax, [0x1401d6db8]
movzx eax, byte [rax + r11*4 + 8]
cmp eax, 0x11
ja 0x14001e9bc
mov edx, 0x20023
bt edx, eax
jae 0x14001e9bc
test cl, cl
jne 0x14001e29b
jmp 0x14001e9bc
movzx r9d, byte [rdx - 2]
cmp r9b, 0xc0
jge 0x14001e85f
movzx r10d, byte [rdx - 3]
cmp r10b, 0xc0
jl 0x14001e68b
jmp 0x14001e869
mov byte [rsp + 0x112], 1
movzx esi, byte [rsp + 0x110]
lea rcx, [rsp + 0x111]
mov rax, qword [rcx]
mov qword [rsp + 0x140], rax
mov eax, dword [rcx + 7]
mov dword [rsp + 0x147], eax
cmp qword [rsp + 0x190], 0
mov r15, qword [rsp + 0x330]
je 0x14001ea16
mov r8, qword [rsp + 0x198]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov r14, qword [r15 + 0x10]
test r14, r14
mov rdi, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x58]
mov byte [rsp + 0x130], sil
je 0x14001ea4a
js case.0x14001bae2.1
movzx eax, byte [0x140254141]
xor ecx, ecx
mov rdx, r14
call fcn.14008bd10
test rax, rax
jne 0x14001ea4f
ud2
mov eax, 1
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x70], rcx
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x60], 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 0x14001ea8d
mov r8, qword [rbx + 0x20]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x70]
mov qword [rsi + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x60]
movdqu xmmword [rsi], xmm0
mov rax, qword [rbx + 0x20]
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x90], rax
mov byte [rsp + 0x98], 1
mov word [rsp + 0xa0], 1
mov sil, 1
jmp 0x14001eb0b
mov byte [rsp + 0x130], 1
mov qword [r15 + 0x10], rcx
xor esi, esi
lea rcx, [rsp + 0x60]
call fcn.1400aa4f0
test rax, rax
je 0x14001f2c2
mov r14, rax
test sil, 1
movabs rbx, 0x8080808080808080
jne 0x14001eb5b
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15]
jne 0x14001eb4f
mov rcx, r15
mov rsi, rdx
mov rdx, rax
call fcn.1400a1180
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 0x14001ec11
test rdx, rdx
je 0x14001ed7e
cmp byte [r14 + rdx - 1], 0
js 0x14001ec4c
mov rax, rdx
dec rax
je 0x14001ed7e
cmp byte [r14 + rdx - 2], 0
js 0x14001ec4c
mov rax, rdx
add rax, 0xfffffffffffffffe
je 0x14001ed7e
cmp byte [r14 + rdx - 3], 0
js 0x14001ec4c
mov rax, rdx
add rax, 0xfffffffffffffffd
je 0x14001ed7e
cmp byte [r14 + rdx - 4], 0
js 0x14001ec4c
mov rax, rdx
add rax, 0xfffffffffffffffc
je 0x14001ed7e
cmp byte [r14 + rdx - 5], 0
js 0x14001ec4c
mov rax, rdx
add rax, 0xfffffffffffffffb
je 0x14001ed7e
cmp byte [r14 + rdx - 6], 0
js 0x14001ec4c
mov rax, rdx
add rax, 0xfffffffffffffffa
je 0x14001ed7e
cmp byte [r14 + rdx - 7], 0
js 0x14001ec4c
mov rax, rdx
add rax, 0xfffffffffffffff9
jne 0x14001ec4c
jmp 0x14001ed7e
test qword [r14], rbx
jne 0x14001ec4c
lea rax, [r14 + 7]
and rax, 0xfffffffffffffff8
sub rax, r14
mov ecx, 8
cmove rax, rcx
lea rcx, [rdx - 8]
cmp rax, rcx
jae 0x14001ec42
test qword [r14 + rax], rbx
jne 0x14001ec4c
add rax, 8
cmp rax, rcx
jb 0x14001ec33
test qword [r14 + rcx], rbx
je 0x14001ed7e
mov rax, qword [r15]
mov rbx, qword [r15 + 0x10]
sub rax, rbx
mov r8, rbx
cmp rax, 3
jbe 0x14001ed5e
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 0x14001eb0b
mov qword [rsp + 0x1b0], rbx
mov r12, r14
add r12, rdx
xor r13d, r13d
mov qword [rsp + 0x138], r14
mov rdi, r14
jmp 0x14001ecbd
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 0x14001edbf
movzx ebp, byte [rdi]
test bpl, bpl
js 0x14001ecca
inc rdi
jmp 0x14001ed2c
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x14001ed14
movzx ecx, byte [rdi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x14001ed21
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 0x14001edbc
add rdi, 4
jmp 0x14001ed2c
add rdi, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x14001ed2c
add rdi, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
mov r14d, esi
inc r14d
je 0x14001f250
cmp ebp, 0x7f
ja 0x14001ecb2
cmp r8, qword [r15]
jne 0x14001eca0
mov rcx, r15
mov rdx, r8
call fcn.1400a1180
mov r8, qword [r15 + 0x10]
jmp 0x14001eca0
mov r8d, 4
mov rcx, r15
mov rsi, rdx
mov rdx, rbx
call fcn.1400deb40
mov rdx, rsi
mov r8, qword [r15 + 0x10]
jmp 0x14001ec63
mov rax, qword [r15]
mov rsi, qword [r15 + 0x10]
sub rax, rsi
cmp rax, rdx
jb 0x14001f2a0
mov r15, rdx
mov rbx, qword [rsp + 0x330]
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 0x14001eb05
mov r14d, esi
test r13d, r13d
je 0x14001edfa
cmp r8, qword [r15]
mov rdi, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x138]
jne 0x14001ede8
mov rcx, r15
mov rdx, r8
call fcn.1400a1180
mov r8, qword [r15 + 0x10]
mov rax, qword [r15 + 8]
mov byte [rax + r8], 0x2d
inc r8
mov qword [r15 + 0x10], r8
jmp 0x14001ee0d
xor r13d, r13d
mov rdi, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x138]
xor r9d, r9d
mov esi, 0
mov dword [rsp + 0x1a8], r14d
cmp r13d, r14d
jae 0x14001eb0b
mov r14d, 0x48
mov eax, pe_nt_image_headers64
mov edx, r13d
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x1b8], r13d
mov rcx, rbx
mov rdi, rdx
jmp 0x14001ee54
inc rcx
cmp eax, ebp
jbe 0x14001eee9
cmp rcx, r12
je case.0x14001bae2.1
movzx ebp, byte [rcx]
test bpl, bpl
jns 0x14001ee49
mov edx, ebp
and edx, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp bpl, 0xdf
jbe 0x14001eeb7
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp bpl, 0xf0
jb 0x14001eec5
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.0x14001bae2.1
add rcx, 4
jmp 0x14001ee4c
add rcx, 2
shl edx, 6
or edx, r11d
mov ebp, edx
jmp 0x14001ee4c
add rcx, 3
shl edx, 0xc
or r10d, edx
mov ebp, r10d
jmp 0x14001ee4c
inc rcx
cmp ebp, edx
mov r10d, edx
cmovb r10d, ebp
cmp eax, edx
cmovbe ebp, r10d
cmp rcx, r12
je 0x14001ef66
movzx edx, byte [rcx]
test dl, dl
jns 0x14001eed7
mov r10d, edx
and r10d, 0x1f
movzx esi, byte [rcx + 1]
and esi, 0x3f
cmp dl, 0xdf
jbe 0x14001ef43
movzx r11d, byte [rcx + 2]
shl esi, 6
and r11d, 0x3f
or r11d, esi
cmp dl, 0xf0
jb 0x14001ef53
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 0x14001ef66
add rcx, 4
jmp 0x14001eeda
add rcx, 2
shl r10d, 6
or r10d, esi
mov edx, r10d
jmp 0x14001eeda
add rcx, 3
shl r10d, 0xc
or r11d, r10d
mov edx, r11d
jmp 0x14001eeda
mov r10d, ebp
sub r10d, eax
lea ecx, [rdi + 1]
mov eax, r9d
not eax
xor edx, edx
div ecx
cmp r10d, eax
ja 0x14001f250
mov eax, r10d
imul eax, ecx
add eax, r9d
mov rcx, qword [rsp + 0x138]
jmp 0x14001efa7
mov r10d, edi
mov eax, dword [rsp + 0x58]
mov r9d, eax
cmp rcx, r12
je 0x14001f217
mov dword [rsp + 0x58], eax
movzx eax, byte [rcx]
test al, al
js 0x14001efbb
inc rcx
cmp eax, ebp
jae 0x14001f033
jmp 0x14001f029
mov r10, rcx
mov ecx, eax
and ecx, 0x1f
movzx r9d, byte [r10 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x14001f009
movzx edx, byte [r10 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp al, 0xf0
jb 0x14001f017
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
je 0x14001f246
add r10, 4
jmp 0x14001f022
add r10, 2
shl ecx, 6
or ecx, r9d
mov eax, ecx
jmp 0x14001f022
add r10, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
mov rcx, r10
cmp eax, ebp
jae 0x14001f033
inc dword [rsp + 0x58]
je 0x14001f250
cmp eax, ebp
jne 0x14001ef94
mov qword [rsp + 0x1c0], rcx
mov qword [rsp + 0x28], 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
mov eax, dword [rsp + 0x58]
cmp eax, ecx
jae 0x14001f13c
mov esi, 0x61
cmp eax, 0x1a
jb 0x14001f08d
mov esi, 0x16
cmp eax, 0x24
jae case.0x14001bae2.1
cmp r8, qword [r15]
mov ebx, 0xd41d41d5
mov r12, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x1b8]
jne 0x14001f0b7
mov rcx, r15
mov rdx, r8
mov edi, eax
call fcn.1400a1180
mov eax, edi
mov r8, qword [r15 + 0x10]
mov rcx, qword [rsp + 0x28]
add esi, eax
mov rax, qword [r15 + 8]
mov byte [rax + r8], sil
inc r8
mov qword [r15 + 0x10], r8
mov r10d, ecx
inc r10d
je case.0x14001bae2.1
cmp ecx, r13d
mov ecx, 2
mov eax, 0x2bc
cmove ecx, eax
xor r9d, r9d
mov eax, dword [rsp + 0x58]
xor edx, edx
div ecx
mov ecx, eax
xor edx, edx
div r10d
add eax, ecx
xor ecx, ecx
cmp eax, 0x1c8
jb 0x14001f1e1
nop word [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 0x14001f110
jmp 0x14001f1e4
mov r12d, r14d
neg r12d
mov r13d, 0x48
jmp 0x14001f187
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 0x14001f075
mov r9d, ecx
sub r9d, 0x24
je case.0x14001bae2.1
sub eax, ecx
neg r9d
xor edx, edx
div r9d
mov esi, edx
add esi, ecx
mov ebx, 0x61
cmp esi, 0x1a
jb 0x14001f1ba
mov ebx, 0x16
cmp esi, 0x24
jae case.0x14001bae2.1
cmp r8, qword [r15]
jne 0x14001f150
mov rcx, r15
mov rdx, r8
mov r15d, eax
call fcn.1400a1180
mov eax, r15d
mov r15, qword [rsp + 0x330]
mov r8, qword [r15 + 0x10]
jmp 0x14001f150
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 eax, r9d
mov edi, r10d
mov rcx, qword [rsp + 0x1c0]
cmp rcx, r12
jne 0x14001efa7
inc r9d
inc ebp
xor esi, esi
mov eax, ebp
mov edx, r10d
cmp r10d, dword [rsp + 0x1a8]
mov rdi, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x138]
jb 0x14001ee41
jmp 0x14001eb0b
mov r10d, edi
mov r9d, dword [rsp + 0x58]
jmp 0x14001f217
mov byte [rsp + 0x130], 1
xor esi, esi
mov rcx, qword [rsp + 0x1b0]
cmp r8, rcx
mov rdi, qword [rsp + 0x188]
jb 0x14001eb0b
test rcx, rcx
je 0x14001eafd
mov byte [rsp + 0x130], 1
cmp r8, rcx
jbe 0x14001eb05
mov rax, qword [r15 + 8]
cmp byte [rax + rcx], 0xbf
jg 0x14001eb05
jmp case.0x14001bae2.1
mov rbx, qword [rsp + 0x330]
mov rcx, rbx
mov r8, rdx
mov rdx, rsi
mov r15, r8
call fcn.1400deb40
mov rsi, qword [rbx + 0x10]
jmp 0x14001ed94
movzx eax, byte [rsp + 0x130]
mov byte [rdi], al
mov rax, qword [rsp + 0x140]
mov qword [rdi + 1], rax
mov eax, dword [rsp + 0x147]
mov dword [rdi + 8], eax
jmp 0x14001c475