Function at 0x14001b5a0
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 0x14001b75e
lea rax, [r8 + r9]
xor r15d, r15d
movdqa xmm0, xmmword [0x1401b6420]
mov rcx, r8
jmp 0x14001b64f
xor r11d, r11d
mov r15, r11
cmp rcx, rax
je 0x14001c5d8
movzx esi, byte [rcx]
test sil, sil
js 0x14001b670
inc rcx
mov r10d, esi
cmp r10d, 0x2e
jne 0x14001b700
jmp 0x14001b640
mov r10d, esi
and r10d, 0x1f
movzx edi, byte [rcx + 1]
and edi, 0x3f
cmp sil, 0xdf
jbe 0x14001b6c4
movzx r11d, byte [rcx + 2]
shl edi, 6
and r11d, 0x3f
or r11d, edi
cmp sil, 0xf0
jb 0x14001b6da
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 0x14001b700
jmp 0x14001b640
add rcx, 2
shl r10d, 6
or r10d, edi
cmp r10d, 0x2e
jne 0x14001b700
jmp 0x14001b640
add rcx, 3
shl r10d, 0xc
or r11d, r10d
mov r10d, r11d
cmp r10d, 0x2e
je 0x14001b640
nop word cs:[rax + rax]
cmp r10d, 0x110000
je 0x14001c5d8
test r15, r15
jne 0x14001b718
cmp r10d, 0x2d
je 0x14001b75e
mov r11d, 5
cmp r15, 4
ja 0x14001b743
movdqa xmmword [rsp + 0x60], xmm0
je case.0x14001bc82.1
cmp r10d, dword [rsp + r15*4 + 0x60]
jne 0x14001b743
inc r15
mov r11, r15
cmp r15, 4
je 0x14001b75e
lea esi, [r10 - 0x61]
cmp esi, 0x1a
jb 0x14001b643
add r10d, 0xffffffd0
cmp r10d, 9
jbe 0x14001b643
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, [0x1401c6ecc]
lea r14, [0x1401ca99c]
xor eax, eax
test rax, rax
je 0x14001b9c0
cmp rax, 1
jne 0x14001c3be
mov rax, qword [rsp + 0x68]
cmp dword [rsp + 0xe0], 0
je 0x14001b91d
cmp rax, qword [rsp + 0xf8]
jb 0x14001c3e2
mov qword [rsp + 0xf8], 0
jmp 0x14001b94d
movzx ecx, word [rsp + 0xe4]
cmp rcx, 4
ja case.0x14001bc82.1
cmp rax, rcx
jb 0x14001c423
cmp word [rsp + 0xe4], 0
je 0x14001b94d
mov word [rsp + 0xe4], 0
mov qword [rsp + 0x60], 0
jmp 0x14001b9c0
movzx esi, di
imul ebx, esi, 0x6f75
shr ebx, 0x18
lea edx, [rbx + 0x1100]
mov rcx, r15
call fcn.14001f700
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.14001f700
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 0x14001b9c0
add esi, 0x11a7
movzx edx, si
mov rcx, r15
call fcn.14001f700
mov rdx, qword [rsp + 0xd0]
test rdx, rdx
jne 0x14001bd20
movzx ecx, byte [rsp + 0xc0]
cmp cl, 2
je 0x14001c172
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 0x14001babe
cmp rsi, r11
je 0x14001bab2
lea rdx, [rsi + 1]
mov qword [rsp + 0xb0], rdx
movzx edx, byte [rsi]
test dl, dl
jns 0x14001bfd4
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 0x14001c2ba
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 0x14001c2c7
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.0x14001bc82.0
mov qword [rsp + 0xb0], 0
cmp r10, r8
je 0x14001c16a
lea rdx, [r10 + 1]
mov qword [rsp + 0x98], rdx
movzx esi, byte [r10]
test sil, sil
js 0x14001bb00
mov r10, rdx
mov edx, esi
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14001bbb0
jmp 0x14001bfd4
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 0x14001bb78
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 0x14001bb8e
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 0x14001bbb0
jmp 0x14001bfd4
shl edx, 6
or edx, r12d
mov r10, rdi
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14001bbb0
jmp 0x14001bfd4
shl edx, 0xc
or edi, edx
mov r10, r13
mov edx, edi
lea esi, [rdx - 0x2d]
cmp esi, 2
jb 0x14001bfd4
nop word cs:[rax + rax]
cmp edx, 0x110000
je 0x14001c16a
lea esi, [rdx - 0x61]
cmp esi, 0x1a
jb 0x14001bfd4
lea esi, [rdx - 0x30]
cmp esi, 0xa
jb 0x14001bfd4
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 0x14001bc2a
lea rbx, [rsi + 1]
cmp r12d, edx
cmova r13, rsi
cmovb rdi, rbx
mov rsi, r13
sub rsi, rdi
ja 0x14001bbf0
dec rdi
mov rsi, rdi
cmp rdi, 0x759
ja case.0x14001bc82.1
movzx ebx, word [rbp + rsi*8 + 4]
mov edi, ebx
and edi, 0x7fff
test bx, bx
js 0x14001bc4b
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.0x14001bc82.1
movzx edi, di
movzx r12d, byte [r14 + rdi*4]
mov esi, 0
cmp r12d, 1
je case.default.0x14001bc82
mov r11d, r12d
lea rsi, [0x1401b6930]
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 0x14001bd42
mov r8, qword [rsp + 0x80]
mov r9, qword [rsp + 0x88]
jmp 0x14001bd57
movzx r9d, word [rsp + 0x74]
lea r8, [rsp + 0x78]
cmp r9, 5
jae case.0x14001bc82.1
cmp rax, r9
jae case.0x14001bc82.1
mov esi, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x14001be20
test ecx, ecx
je 0x14001be2a
mov rax, qword [rsp + 0x88]
sub rax, rdx
je 0x14001be38
xor ecx, ecx
nop dword [rax]
mov rdx, qword [rsp + 0xd0]
add rdx, rcx
cmp dword [rsp + 0x70], 0
je 0x14001bdc0
mov r8, qword [rsp + 0x88]
cmp rdx, r8
jae case.0x14001bc82.1
mov r9, qword [rsp + 0x80]
jmp 0x14001bdde
movzx r8d, word [rsp + 0x74]
cmp r8, 5
jae case.0x14001bc82.1
lea r9, [rsp + 0x78]
cmp rdx, r8
jae case.0x14001bc82.1
cmp rcx, r8
jae case.0x14001bc82.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 0x14001bd90
mov ecx, dword [rsp + 0x70]
test ecx, ecx
jne 0x14001be3c
movzx ecx, word [rsp + 0x74]
cmp rax, rcx
jae 0x14001be4e
mov word [rsp + 0x74], ax
jmp 0x14001be4e
mov qword [rsp + 0xc8], rax
jmp 0x14001be54
movzx eax, word [rsp + 0x74]
sub rax, rdx
jne 0x14001bd8a
test ecx, ecx
je 0x14001be0e
cmp qword [rsp + 0x88], rax
jb 0x14001be4e
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, [0x1401e0938]
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, [0x1401e106c]
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 0x14001bed0
test dil, dil
jne 0x14001c340
mov dword [rsp + 0x100], esi
jmp 0x14001b9c0
cmp byte [rsp + 0x104], 0
je 0x14001bf01
cmp byte [rsp + 0x105], dil
jae 0x14001bf20
mov ecx, r13d
mov edx, esi
call fcn.1400a9fa0
cmp eax, 0x110000
je 0x14001bf29
mov dword [rsp + 0x100], eax
jmp 0x14001b9c0
mov ecx, r13d
mov edx, esi
call fcn.1400a9fa0
cmp eax, 0x110000
jne 0x14001c201
test dil, dil
jne 0x14001bf29
jmp 0x14001c3b2
test dil, dil
je 0x14001c38c
cmp dword [rsp + 0xe0], 0
je 0x14001bf6f
mov rdx, qword [rsp + 0xf8]
cmp rdx, qword [rsp + 0xe8]
jne 0x14001bf5a
lea rcx, [rsp + 0xe8]
call fcn.140020400
mov rdx, qword [rsp + 0xf8]
mov rax, qword [rsp + 0xf0]
mov dword [rax + rdx*4], esi
inc qword [rsp + 0xf8]
jmp 0x14001bf92
movzx eax, word [rsp + 0xe4]
cmp rax, 3
ja 0x14001c2d5
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 0x14001b9c0
cmp edx, 0x110000
je 0x14001c16a
cmp byte [rsp + 0xd8], 0
je 0x14001c094
cmp edx, 0x80
jb 0x14001b9b8
lea edi, [rdx - 0xac00]
cmp edi, 0x2ba4
jb 0x14001b958
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x20
lea r9, [0x1401ec8d0]
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, [0x1401ee698]
mov rsi, qword [r9 + r8*8]
cmp edx, esi
jne 0x14001c20d
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0x1668
jae case.0x14001bc82.1
shr rsi, 0x30
mov ecx, 0x1667
sub rcx, rax
cmp rsi, rcx
ja case.0x14001bc82.1
lea rcx, [0x1401f5db8]
lea rdi, [rcx + rax*4]
test rsi, rsi
jne 0x14001c28b
jmp 0x14001b9c0
cmp edx, 0x80
jb 0x14001b9b8
lea edi, [rdx - 0xac00]
cmp edi, 0x2ba4
jb 0x14001b958
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x1401e4314]
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, [0x1401e5330]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x14001b9b8
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x14001bc82.1
shr rsi, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rsi, rcx
ja case.0x14001bc82.1
test rsi, rsi
je 0x14001b9c0
lea rcx, [0x1401e9398]
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.14001f700
add r12, 4
cmp rsi, r12
jne 0x14001c150
jmp 0x14001b9c0
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 0x14001c350
mov rax, qword [rsp + 0xd0]
test r8d, r8d
je 0x14001c1b1
mov r8, qword [rsp + 0x80]
mov rdx, rcx
jmp 0x14001c1c0
lea r8, [rsp + 0x78]
cmp dx, 5
jae case.0x14001bc82.1
sub rdx, rax
jb case.0x14001bc82.1
lea rcx, [r8 + rax*8]
call fcn.14001ad90
mov ecx, dword [rsp + 0x70]
test ecx, ecx
je 0x14001c1ef
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0xd0], rdx
jmp 0x14001bd24
movzx edx, word [rsp + 0x74]
mov qword [rsp + 0xd0], rdx
jmp 0x14001bd24
mov dword [rsp + 0x100], eax
jmp 0x14001b9c0
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x1401e4314]
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, [0x1401e5330]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x14001b9b8
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x14001bc82.1
shr rsi, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rsi, rcx
ja case.0x14001bc82.1
lea rcx, [0x1401e9398]
lea rdi, [rcx + rax*4]
test rsi, rsi
je 0x14001b9c0
shl esi, 2
xor r12d, r12d
nop word cs:[rax + rax]
mov edx, dword [rdi + r12]
mov rcx, r15
call fcn.14001f700
add r12, 4
cmp rsi, r12
jne 0x14001c2a0
jmp 0x14001b9c0
shl edi, 6
or edi, r12d
mov edx, edi
jmp 0x14001bfd4
shl edi, 0xc
or r13d, edi
mov edx, r13d
jmp 0x14001bfd4
lea rcx, [rsp + 0x140]
lea rdx, [rsp + 0xe4]
mov r8d, esi
call fcn.140020630
cmp dword [rsp + 0xe0], 0
je 0x14001c318
cmp qword [rsp + 0xe8], 0
je 0x14001c318
mov r8, qword [rsp + 0xf0]
mov rcx, qword [0x1402590e0]
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 0x14001bf92
mov r13d, esi
jmp 0x14001c490
mov qword [rsp + 0x60], 2
mov qword [rsp + 0x68], 0
mov r13d, dword [rsp + 0x100]
mov eax, 2
cmp r13d, 0x110000
je 0x14001b8df
mov dword [rsp + 0x100], 0x110000
jmp 0x14001c490
mov dword [rsp + 0x100], esi
mov byte [rsp + 0x104], 0
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x68], 0
jmp 0x14001c490
mov dword [rsp + 0x100], esi
jmp 0x14001c490
mov rcx, qword [rsp + 0x68]
mov eax, dword [rsp + 0xe0]
test eax, eax
je 0x14001c3ec
cmp rcx, qword [rsp + 0xf8]
jae 0x14001c442
mov rdx, qword [rsp + 0xf0]
jmp 0x14001c40c
mov rcx, qword [rsp + 0xf0]
jmp 0x14001c42b
movzx r8d, word [rsp + 0xe4]
cmp r8, 5
jae case.0x14001bc82.1
lea rdx, [rsp + 0xe8]
cmp rcx, r8
jae 0x14001c450
mov r13d, dword [rdx + rcx*4]
inc rcx
mov qword [rsp + 0x60], 2
mov qword [rsp + 0x68], rcx
jmp 0x14001c490
lea rcx, [rsp + 0xe8]
mov r13d, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x68], rax
jmp 0x14001c490
mov qword [rsp + 0xf8], 0
jmp 0x14001c465
cmp word [rsp + 0xe4], 0
je 0x14001c465
mov word [rsp + 0xe4], 0
mov r13d, dword [rsp + 0x100]
mov dword [rsp + 0x100], 0x110000
cmp r13d, 0x110000
je 0x14001c6a4
nop word cs:[rax + rax]
cmp r13d, 0x80
jae 0x14001c4d0
mov rsi, qword [rsp + 0x58]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x14001c4b3
mov rcx, rsi
call fcn.140086540
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 0x14001b8df
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 0x14001c530
cmp rsi, 3
jne 0x14001c565
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 0x14001c578
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 0x14001c578
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 0x14001c5c4
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 0x14001b8df
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.1400e2df0
mov rdi, qword [rbx + 0x10]
jmp 0x14001c59c
mov rax, qword [r14]
mov rsi, qword [r14 + 0x10]
sub rax, rsi
cmp rax, r9
jb 0x14001c681
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.1400e2df0
mov r8, rsi
mov r9, rdi
mov rsi, qword [r14 + 0x10]
jmp 0x14001c5eb
cmp dword [rsp + 0x70], 0
je 0x14001c6dc
cmp qword [rsp + 0x78], 0
mov rsi, qword [rsp + 0x58]
mov r13, qword [rsp + 0x28]
je 0x14001c6e6
mov r8, qword [rsp + 0x80]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov eax, dword [rsp + 0xe0]
jmp 0x14001c6e6
mov rsi, qword [rsp + 0x58]
mov r13, qword [rsp + 0x28]
test eax, eax
je 0x14001c70b
cmp qword [rsp + 0xe8], 0
je 0x14001c70b
mov r8, qword [rsp + 0xf0]
mov rcx, qword [0x1402590e0]
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 [0x1401b6430]
movdqa xmm7, xmmword [0x1401b6440]
xorps xmm8, xmm8
movdqa xmm14, xmmword [0x1401b64a0]
movdqa xmm15, xmmword [0x1401b64b0]
movdqa xmm10, xmmword [0x1401b64d0]
movdqa xmm11, xmmword [0x1401b64e0]
movdqa xmm12, xmmword [0x1401b64f0]
movdqa xmm13, xmmword [0x1401b6500]
movdqa xmm9, xmmword [0x1401b6510]
mov dword [rsp + 0x34], 0
jmp 0x14001c84a
movabs r14, 0x8080808080808080
test qword [rsi], r14
mov ebx, 0x1a
je 0x14001e25d
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.1400ae880
test rax, rax
je 0x14001e381
mov r15, rax
mov r12, rdx
test bl, 1
lea rbx, [0x1401dc570]
jne 0x14001c899
mov rsi, qword [rsp + 0x330]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x14001c88a
mov rcx, rsi
call fcn.140086540
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 0x14001c8ac
cmp dword [r15], 0x2d2d6e78
je 0x14001ca44
test byte [rsp + 0x34], 1
jne 0x14001c9eb
test r12, r12
je 0x14001c9e3
mov rax, r15
add rax, r12
mov rcx, r15
jmp 0x14001c8d4
cmp rcx, rax
je 0x14001c9e3
movzx edx, byte [rcx]
test dl, dl
js 0x14001c8e0
inc rcx
jmp 0x14001c953
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001c935
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001c945
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 0x14001c9e3
add rcx, 4
jmp 0x14001c953
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14001c953
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001c8cb
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001c993
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001c8cb
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 0x14001c9ae
cmp r11d, edx
jbe 0x14001c9bd
cmp edi, edx
jae 0x14001c980
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001c980
movzx edx, byte [rbx + rsi*4 + 8]
cmp edx, 0x11
ja 0x14001c8cb
mov r8d, 0x20003
bt r8d, edx
jae 0x14001c8cb
mov al, 1
mov dword [rsp + 0x34], eax
jmp 0x14001c9eb
mov dword [rsp + 0x34], 0
mov rcx, r15
mov rdx, r12
mov r8, r13
lea r9, [rsp + 0x110]
call fcn.14001f490
mov rcx, qword [rsp + 0x330]
mov rax, qword [rcx]
mov rsi, qword [rcx + 0x10]
sub rax, rsi
cmp rax, r12
jb 0x14001ce43
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 0x14001c84a
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 0x14001cab4
mov qword [rsp + 0x78], r11
cmp r11, r12
ja 0x14001cba6
mov rdx, r11
mov r8, r11
cmp r11, rax
jb 0x14001cad8
mov r9d, r11d
sub r9d, eax
and r9d, 0xf
mov rdx, r11
mov r8, rax
sub rdx, r9
jb case.0x14001bc82.1
lea r9, [rsi + r11]
sub r9, rsi
sub r9, rdx
lea r10, [rcx + r11]
test r9, r9
je 0x14001cb00
dec r9
cmp byte [r10], 0x2d
lea r10, [r10 - 1]
jne 0x14001cae6
add r9, rdx
mov r11, r9
jmp 0x14001cb52
mov r9, rdx
cmp rdx, r8
jbe 0x14001cb36
lea rdx, [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 0x14001cb00
cmp r9, r11
ja case.0x14001bc82.1
mov r11, r9
sub r11, 1
jb 0x14001cba6
cmp byte [rcx + r9], 0x2d
mov r9, r11
jne 0x14001cb42
cmp r11, r12
jae 0x14001caa6
mov dl, 0x2d
cmp byte [rsi + r11], dl
jne 0x14001caa6
test r11, r11
mov qword [rsp + 0x50], rsi
je 0x14001d76f
cmp r11, r12
jae 0x14001cb85
cmp byte [rsi + r11], 0xbf
jle case.0x14001bc82.1
mov qword [rsp + 0x38], r11
lea rax, [r11 + 1]
cmp rax, r12
jae 0x14001d7a9
cmp byte [rsi + rax], 0xbf
jg 0x14001d7b2
jmp case.0x14001bc82.1
mov r15, rsi
xor eax, eax
mov qword [rsp + 0x38], rax
lea rax, [0x140216a68]
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 0x14001cdf3
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 0x14001cc22
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x14001cc26
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x14001cc26
jmp 0x14001c82d
add al, 0xea
mov edx, eax
test r11d, r11d
je case.0x14001bc82.1
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x14001c82d
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 0x14001cca2
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x14001c82d
cmp r15, r12
je 0x14001c82d
add edi, 0x24
imul r11d, r8d
inc r15
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x14001cc0d
jmp 0x14001cc22
inc r13d
je case.0x14001bc82.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
jb 0x14001cd0a
xor ebp, ebp
mov r9d, 0xd41d41d5
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 0x14001cce1
jmp 0x14001cd0d
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 0x14001c82d
mov eax, dword [rsp + 0x40]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x14001c82d
mov esi, edx
mov rax, qword [rsp + 0x198]
mov ebx, edx
cmp qword [rsp + 0x48], 0
je 0x14001cd8a
mov rcx, qword [rsp + 0x48]
shl rcx, 4
xor edx, edx
jmp 0x14001cd78
add rdx, 0x10
cmp rcx, rdx
je 0x14001cd8a
mov r8, qword [rax + rdx]
cmp r8, rbx
jb 0x14001cd6f
inc r8
mov qword [rax + rdx], r8
jmp 0x14001cd6f
mov rdx, qword [rsp + 0x48]
cmp rdx, qword [rsp + 0x190]
jne 0x14001cdb6
lea rcx, [rsp + 0x190]
call fcn.1400287e0
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 0x14001cbe6
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x120], rax
mov r13, qword [rsp + 0x48]
cmp r13, 0x15
jae 0x14001ce62
cmp r13, 1
mov rsi, qword [rsp + 0x330]
lea rbp, [rsp + 0x140]
jbe 0x14001d459
mov r8d, 1
mov rcx, qword [rsp + 0x120]
mov rdx, r13
call fcn.14001b4f0
jmp 0x14001d459
mov rdi, qword [rsp + 0x330]
mov rcx, rdi
mov rdx, rsi
mov r8, r12
call fcn.1400e2df0
mov rsi, qword [rdi + 0x10]
jmp 0x14001ca1c
lea rdx, [r13*8]
movabs rax, 0x7ffffffffffffff0
and rdx, rax
movzx eax, byte [0x140259141]
xor ecx, ecx
call fcn.14008b700
mov qword [rsp + 0x128], rax
test rax, rax
je case.0x14001bc82.1
movzx eax, byte [0x140259141]
mov edx, 0x100
xor ecx, ecx
call fcn.14008b700
test rax, rax
je case.0x14001bc82.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 0x14001cf26
mov r12d, 1
mov r14, qword [rsp + 0x208]
cmp r14, r13
jae 0x14001d41d
mov r9, r13
sub r9, r14
mov rax, r14
shl rax, 4
mov rcx, qword [rsp + 0x120]
add rcx, rax
cmp r9, 2
jae 0x14001d314
mov r8, r9
lea rax, [r8 + r14]
mov rsi, rax
sub rsi, r14
jb case.0x14001bc82.1
cmp rax, r13
ja case.0x14001bc82.1
jae 0x14001cf9e
cmp r8, 0xa
jae 0x14001cf9e
cmp r14, 0xfffffffffffffff6
jae case.0x14001bc82.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.14001b4f0
mov rax, rdi
mov qword [rsp + 0x208], rax
cmp r12, qword [rsp + 0x1d0]
jne 0x14001d003
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x140259141]
xor ecx, ecx
call fcn.14008b700
test rax, rax
je case.0x14001bc82.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 [0x1402590e0]
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 0x14001d0a5
jmp 0x14001cf15
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 0x14001cf0f
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 0x14001d111
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + r15 - 0x20]
cmp r8, rax
jbe 0x14001d111
cmp r12, 2
je 0x14001d407
lea r11, [r12 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r15 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14001d127
cmp r12, 3
jbe 0x14001d412
add r8, rcx
cmp qword [rdx + r15 - 0x40], r8
jbe 0x14001d127
jmp 0x14001cf15
cmp r12, 2
je 0x14001d12c
lea r11, [r12 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [r15 + rcx]
cmp rcx, rax
jb 0x14001d131
lea r11, [r12 - 2]
cmp r11, r12
jae case.0x14001bc82.1
lea rbp, [r11 + 1]
cmp rbp, r12
jae case.0x14001bc82.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.0x14001bc82.1
mov qword [rsp + 0x40], r12
cmp r14, r13
ja case.0x14001bc82.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 0x14001d273
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 0x14001d2fa
test r13, r13
jle 0x14001d2fa
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 0x14001d26b
add r14, 0xfffffffffffffff0
cmp r12, rbx
ja 0x14001d214
mov rdi, r15
jmp 0x14001d034
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 0x14001d2ff
cmp rbx, rsi
mov r13, qword [rsp + 0x48]
jle 0x14001d02c
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 0x14001d037
mov al, cl
shl eax, 4
add r15, rax
cmp r15, r14
jb 0x14001d2b2
jmp 0x14001d037
mov rdi, r15
jmp 0x14001d307
mov rbx, qword [rsp + 0x128]
mov rdx, rbx
mov r13, qword [rsp + 0x48]
jmp 0x14001d037
mov r10, qword [rcx + 0x10]
cmp r10, qword [rcx]
jae 0x14001d37f
mov edx, 2
cmp r9, 2
je 0x14001d353
mov rdx, qword [rsp + 0x1c8]
lea r8, [rdx + rax]
mov edx, 2
mov r11, r10
mov r10, qword [r8]
cmp r10, r11
jae 0x14001d353
inc rdx
add r8, 0x10
cmp r9, rdx
jne 0x14001d339
mov rdx, r9
mov r8, rdx
add r8, r14
jb case.0x14001bc82.1
cmp r8, r13
ja case.0x14001bc82.1
mov rbp, r8
mov r8d, 1
cmp rdx, 2
jae 0x14001d3b7
mov rax, rbp
jmp 0x14001cf4f
mov r8d, 2
cmp r9, 2
je 0x14001cf4b
add rax, qword [rsp + 0x1c8]
mov rdx, r10
mov r10, qword [rax]
cmp r10, rdx
jb 0x14001cf4b
inc r8
add rax, 0x10
cmp r9, r8
jne 0x14001d397
jmp 0x14001cf48
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 0x14001d3d4
mov r8, rdx
mov rax, rbp
jmp 0x14001cf4f
mov r12d, 2
jmp 0x14001cf15
mov r12d, 3
jmp 0x14001cf15
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x1402590e0]
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 0x14001e2b0
mov r11, qword [rsp + 0x50]
add r10, r11
xor r15d, r15d
xor r12d, r12d
mov qword [rsp + 0x38], r10
cmp r15, r13
jb 0x14001d53f
cmp r11, r10
je 0x14001d740
movzx r8d, byte [r11]
test r8b, r8b
js 0x14001d4ba
inc r11
mov rbx, r11
movzx edi, r8b
inc r12
jmp 0x14001d607
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [r11 + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x14001d512
movzx edx, byte [r11 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14001d51b
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 0x14001d740
add r11, 4
mov rcx, r11
jmp 0x14001d5bf
add r11, 2
jmp 0x14001d5e1
add r11, 3
jmp 0x14001d5f2
mov rax, qword [rsi + 8]
mov byte [rax + rdx], dil
inc rdx
mov qword [rsi + 0x10], rdx
mov r11, rbx
cmp r15, r13
jae 0x14001d496
mov rax, r15
shl rax, 4
add rax, qword [rsp + 0x120]
cmp qword [rax], r12
jne 0x14001d55e
inc r15
mov edi, dword [rax + 8]
jmp 0x14001d5f9
mov rcx, r11
mov r11, r10
cmp rcx, r10
je 0x14001d55e
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x14001d5cf
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x14001d5da
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14001d5eb
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 0x14001d55e
mov r11, rcx
cmp edi, 0x110000
jne 0x14001d5f9
jmp 0x14001d740
inc rcx
mov r11, rcx
jmp 0x14001d4ab
add rcx, 2
mov r11, rcx
shl eax, 6
or eax, r9d
mov edi, eax
jmp 0x14001d5f9
add rcx, 3
mov r11, rcx
shl eax, 0xc
or eax, edx
mov edi, eax
inc r12
cmp edi, 0x80
jae 0x14001d632
mov rbx, r11
mov rsi, qword [rsp + 0x330]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x14001d524
mov rcx, rsi
call fcn.140086540
mov r10, qword [rsp + 0x38]
mov rdx, qword [rsi + 0x10]
jmp 0x14001d524
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 0x14001d688
cmp rsi, 3
jne 0x14001d6b2
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 0x14001d6c2
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 0x14001d6c2
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 0x14001d724
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 0x14001d496
jmp 0x14001d53f
mov rbx, qword [rsp + 0x330]
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.1400e2df0
mov rdi, qword [rbx + 0x10]
jmp 0x14001d6e6
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 0x14001d784
cmp r15, rdx
jbe 0x14001d77e
cmp byte [rdi + rdx], 0xbf
jg 0x14001d784
jmp case.0x14001bc82.1
mov r15, rsi
xor eax, eax
mov qword [rsp + 0x38], rax
jmp 0x14001cbbc
jne case.0x14001bc82.1
lea rsi, [rdi + rdx]
test byte [rsp + 0x34], 1
jne 0x14001da0b
cmp r15, rdx
jne 0x14001d8cf
mov dword [rsp + 0x34], 0
jmp 0x14001d9ef
mov rax, r12
jne case.0x14001bc82.1
lea r15, [rsi + rax]
sub r12, rax
cmp qword [rsp + 0x38], 8
jae 0x14001c815
mov rax, qword [rsp + 0x38]
cmp byte [rsi + rax - 1], 0
movabs r14, 0x8080808080808080
js 0x14001c82d
mov rax, qword [rsp + 0x38]
dec rax
je 0x14001e253
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 2], 0
js 0x14001c82d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffe
je 0x14001e253
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 3], 0
js 0x14001c82d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffd
je 0x14001e253
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 4], 0
js 0x14001c82d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffc
je 0x14001e253
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 5], 0
js 0x14001c82d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffb
je 0x14001e253
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 6], 0
js 0x14001c82d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffa
je 0x14001e253
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rax - 7], 0
mov ebx, 0x1a
js 0x14001c82d
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffff9
je 0x14001cbbc
jmp 0x14001c82d
lea rax, [rdi + r15]
mov rcx, rsi
jmp 0x14001d8e1
cmp rcx, rax
je 0x14001d79c
movzx edx, byte [rcx]
test dl, dl
js 0x14001d8ed
inc rcx
jmp 0x14001d960
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001d942
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001d952
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 0x14001d79c
add rcx, 4
jmp 0x14001d960
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14001d960
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001d8d8
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001d992
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001d8d8
shr r8, 1
add r8, r10
lea rbx, [r8 + r8*2]
lea r14, [0x1401dc570]
mov r11d, dword [r14 + rbx*4]
mov ebp, dword [r14 + rbx*4 + 4]
cmp ebp, edx
jb 0x14001d9b5
cmp r11d, edx
jbe 0x14001d9c4
cmp ebp, edx
jae 0x14001d97f
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001d97f
lea rdx, [0x1401dc570]
movzx edx, byte [rdx + rbx*4 + 8]
cmp edx, 0x11
ja 0x14001d8d8
mov r8d, 0x20003
bt r8d, edx
jae 0x14001d8d8
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 0x14001c84a
cmp r15, rdx
je 0x14001e34b
add rdi, r15
xor edx, edx
xor ecx, ecx
mov rax, rsi
movzx r8d, byte [rax]
test r8b, r8b
js 0x14001da86
inc rax
jmp 0x14001db19
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xe0
jb 0x14001dae0
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14001daf0
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 0x14001e0b7
add rax, 4
jmp 0x14001dafe
add rax, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14001dafe
add rax, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
cmp r8d, 0x7f
jbe 0x14001db19
jmp 0x14001dba8
inc rax
cmp r8d, 0x80
jae 0x14001dba6
cmp rax, rdi
je 0x14001e0b7
movzx r8d, byte [rax]
test r8b, r8b
jns 0x14001db09
mov edx, r8d
and edx, 0x1f
movzx r10d, byte [rax + 1]
and r10d, 0x3f
cmp r8b, 0xdf
jbe 0x14001db82
movzx r9d, byte [rax + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp r8b, 0xf0
jb 0x14001db94
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 0x14001e0b7
add rax, 4
jmp 0x14001db0c
add rax, 2
shl edx, 6
or edx, r10d
mov r8d, edx
jmp 0x14001db0c
add rax, 3
shl edx, 0xc
or r9d, edx
mov r8d, r9d
jmp 0x14001db0c
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, [0x1401e0938]
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, [0x1401e106c]
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 0x14001dc2d
test dl, dl
jne case.0x14001ddf6.3907
lea r9d, [r8 - 0x340]
cmp r9d, 4
ja 0x14001dc44
cmp r9d, 2
jne case.0x14001ddf6.3907
mov r9b, 2
cmp r8d, 0xd56
jg 0x14001dcb6
cmp r8d, 0x9de
jg 0x14001dcf6
cmp r8d, 0x93b
jg 0x14001de1f
lea r10d, [r8 - 0x30f]
cmp r10d, 0x36
ja 0x14001dc8b
movabs r11, 0x48020000001005
bt r11, r10
jb 0x14001df1c
lea r10d, [r8 - 0x374]
cmp r10d, 0x13
mov r13, qword [rsp + 0x28]
ja case.0x14001ddf6.3908
mov r11d, 0x80401
bt r11d, r10d
jb case.0x14001ddf6.3907
jmp case.0x14001ddf6.3908
cmp r8d, 0x11126
jg 0x14001dd65
cmp r8d, 0x102d
jle 0x14001dda8
cmp r8d, 0x1f70
jg 0x14001de6b
cmp r8d, 0x102e
je 0x14001df1c
cmp r8d, 0x1b35
jmp 0x14001df15
cmp r8d, 0xbd6
jg 0x14001ddf9
cmp r8d, 0xbbd
jg 0x14001df0e
lea r10d, [r8 - 0xb3e]
cmp r10d, 0x19
ja 0x14001dd2d
mov r11d, 0x3000001
bt r11d, r10d
jb 0x14001df1c
lea r10d, [r8 - 0xa33]
cmp r10d, 0x2b
mov r13, qword [rsp + 0x28]
ja 0x14001dd53
movabs r11, 0x80000000009
bt r11, r10
jb case.0x14001ddf6.3907
cmp r8d, 0x9df
jne case.0x14001ddf6.3908
jmp case.0x14001ddf6.3907
cmp r8d, 0x114af
jle 0x14001de45
lea r10d, [r8 - 0x114b0]
cmp r10d, 0xd
ja 0x14001dd8f
mov r11d, 0x2401
bt r11d, r10d
jb 0x14001df1c
cmp r8d, 0x115af
je 0x14001df1c
cmp r8d, 0x11930
jmp 0x14001df15
lea r10d, [r8 - 0xdca]
cmp r10d, 0x15
ja 0x14001ddc5
mov r11d, 0x200021
bt r11d, r10d
jb 0x14001df1c
cmp r8d, 0xd57
je 0x14001df1c
lea r10d, [r8 - 0xf43]
cmp r10d, 0x76
mov r13, qword [rsp + 0x28]
ja case.0x14001ddf6.3908
lea r11, [0x1401b6520]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xcc1
jg 0x14001decd
cmp r8d, 0xbd7
je 0x14001df1c
cmp r8d, 0xc56
jmp 0x14001df15
cmp r8d, 0x93c
je 0x14001df1c
cmp r8d, 0x9be
je 0x14001df1c
cmp r8d, 0x9d7
jmp 0x14001df15
cmp r8d, 0x11127
je 0x14001df1c
cmp r8d, 0x1133e
je 0x14001df1c
cmp r8d, 0x11357
jmp 0x14001df15
cmp r8d, 0xfa0f
jle 0x14001dedf
cmp r8d, 0x110ba
je 0x14001df1c
lea r10d, [r8 - 0xfa10]
cmp r10d, 0x12
mov r13, qword [rsp + 0x28]
ja 0x14001dea3
mov r11d, 0x50005
bt r11d, r10d
jb case.0x14001ddf6.3907
lea r10d, [r8 - 0xfb1d]
cmp r10d, 0x21
ja case.0x14001ddf6.3908
movabs r11, 0x200000005
bt r11, r10
jb case.0x14001ddf6.3907
jmp case.0x14001ddf6.3908
cmp r8d, 0xcc2
je 0x14001df1c
cmp r8d, 0xd3e
jmp 0x14001df15
cmp r8d, 0x2125
jg 0x14001df2d
lea r10d, [r8 - 0x1f71]
cmp r10d, 0x8c
mov r13, qword [rsp + 0x28]
ja case.0x14001ddf6.3908
lea r11, [0x1401b66fc]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xbbe
mov r13, qword [rsp + 0x28]
jne case.0x14001ddf6.3908
mov ecx, r9d
cmp rax, rdi
jne 0x14001da75
jmp 0x14001e0ba
lea r10d, [r8 - 0x2329]
cmp r10d, 2
mov r13, qword [rsp + 0x28]
jb case.0x14001ddf6.3907
cmp r8d, 0x2126
je case.0x14001ddf6.3907
cmp r8d, 0x2adc
je case.0x14001ddf6.3907
movd xmm1, r8d
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x1401b6460]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401b6470]
pxor xmm3, xmm14
pcmpgtd xmm3, xmmword [0x1401b64c0]
pxor xmm2, xmm14
pcmpgtd xmm2, xmm10
packssdw xmm2, xmm3
packsswb xmm2, xmm2
pmovmskb r10d, xmm2
xor r10b, 0xff
jne case.0x14001ddf6.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x1401b6450]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x1401b6480]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401b6490]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r10d, xmm4
test r10b, r10b
jne case.0x14001ddf6.3907
lea r10d, [r8 - 0x1d1bb]
cmp r10d, 6
jb case.0x14001ddf6.3907
lea r10d, [r8 - 0x2f800]
cmp r10d, 0x21e
jb case.0x14001ddf6.3907
movd r10d, xmm1
cmp r10d, 0x2000
je case.0x14001ddf6.3907
cmp r10d, 0x212a
je case.0x14001ddf6.3907
cmp r10d, 0xfb40
je case.0x14001ddf6.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 0x14001df1c
lea r11d, [r8 - 0x11a8]
cmp r11d, 0x1b
jb 0x14001df1c
cmp r10d, 0x330
je 0x14001df1c
add r8d, 0xffffcf67
cmp r8d, 2
movzx r9d, cl
mov ecx, 2
cmovb r9d, ecx
jmp 0x14001df1c
mov r9d, ecx
test r9b, r9b
movabs r14, 0x8080808080808080
mov r13, qword [rsp + 0x28]
lea rbp, [rsp + 0x140]
je 0x14001e34b
movzx eax, r9b
cmp eax, 1
je case.0x14001ddf6.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 0x14001e2cc
movzx ebp, byte [rbx]
test bpl, bpl
js 0x14001e1cc
inc rbx
jmp 0x14001e22e
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x14001e216
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x14001e223
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 0x14001e2cc
add rbx, 4
jmp 0x14001e22e
add rbx, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x14001e22e
add rbx, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
lea rcx, [rsp + 0x60]
call fcn.14001f920
xor r14d, r14d
cmp eax, 0x110000
je 0x14001e2df
cmp eax, ebp
je 0x14001e1b6
jmp 0x14001e2df
mov ebx, 0x1a
jmp 0x14001cbbc
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 0x14001e29c
mov rdx, qword [rsp + 0x50]
test qword [rdx + rax], r14
jne 0x14001c82d
add rax, 8
cmp rax, rcx
jb 0x14001e284
mov rax, qword [rsp + 0x50]
test qword [rax + rcx], r14
jne 0x14001c82d
jmp 0x14001cbbc
mov rcx, qword [rsp + 0x330]
mov rdx, qword [rsp + 0x40]
call fcn.1400e2df0
mov r10, qword [rsp + 0x38]
jmp 0x14001d47a
lea rcx, [rsp + 0x60]
call fcn.14001f920
cmp eax, 0x110000
sete r14b
cmp dword [rsp + 0x70], 0
je 0x14001e304
cmp qword [rsp + 0x78], 0
je 0x14001e304
mov r8, qword [rsp + 0x80]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp dword [rsp + 0xc0], 0
je 0x14001e32f
cmp qword [rsp + 0xc8], 0
je 0x14001e32f
mov r8, qword [rsp + 0xd0]
mov rcx, qword [0x1402590e0]
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.0x14001ddf6.3907
sub r15, qword [rsp + 0x40]
mov rcx, rsi
mov rdx, r15
mov r8, qword [rsp + 0x200]
lea r9, [rsp + 0x110]
call fcn.14001f490
xor ebx, ebx
jmp 0x14001c84a
mov byte [rsp + 0x115], 1
xor ebx, ebx
jmp 0x14001c84a
mov rcx, qword [rsp + 0x330]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x1c0]
test rdx, rdx
je 0x14001e3b4
cmp r14, rdx
jbe 0x14001e3ae
cmp byte [rax + rdx], 0xbf
jg 0x14001e3b4
jmp case.0x14001bc82.1
jne case.0x14001bc82.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 0x14001e42b
lea rsi, [rsp + 0x60]
mov rcx, rsi
call fcn.1400ae880
test rax, rax
jne 0x14001e419
jmp 0x14001eb5e
lea r15, [rsp + 0x60]
mov ebx, 0x62f8
mov rcx, r15
call fcn.1400ae880
test rax, rax
je 0x14001eb5e
test rdx, rdx
je 0x14001e435
movzx r8d, byte [rax]
test r8b, r8b
js 0x14001e45a
lea rcx, [rax + 1]
jmp 0x14001e4ce
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x14001e4b0
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14001e4c0
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 0x14001e435
lea rcx, [rax + 4]
jmp 0x14001e4ce
lea rcx, [rax + 2]
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14001e4ce
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 0x14001e4f1
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x14001e54f
shr r9, 1
add r9, r11
lea r12, [r9 + r9*2]
lea rsi, [0x1401dc570]
mov ebp, dword [rsi + r12*4]
mov esi, dword [rsi + r12*4 + 4]
cmp esi, r8d
jb 0x14001e515
cmp ebp, r8d
jbe 0x14001e525
cmp esi, r8d
jae 0x14001e4e2
mov r11, r9
inc r11
mov r9, r10
jmp 0x14001e4e2
lea r8, [0x1401dc570]
movzx r8d, byte [r8 + r12*4 + 8]
test r8d, r8d
je 0x14001e670
cmp r8d, 0x11
je 0x14001e670
cmp r8d, 9
jne 0x14001eb56
cmp rcx, rdx
je 0x14001e65c
movzx r8d, byte [rcx]
test r8b, r8b
js 0x14001e566
inc rcx
jmp 0x14001e5de
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x14001e5c0
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14001e5d0
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 0x14001e65c
add rcx, 4
jmp 0x14001e5de
add rcx, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14001e5de
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14001e602
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x14001e54f
shr r9, 1
add r9, r11
lea r12, [r9 + r9*2]
lea rsi, [0x1401dc570]
mov ebp, dword [rsi + r12*4]
mov esi, dword [rsi + r12*4 + 4]
cmp esi, r8d
jb 0x14001e626
cmp ebp, r8d
jbe 0x14001e636
cmp esi, r8d
jae 0x14001e5ef
mov r11, r9
inc r11
mov r9, r10
jmp 0x14001e5ef
lea r8, [0x1401dc570]
movzx r8d, byte [r8 + r12*4 + 8]
cmp r8d, 0xe
ja 0x14001eb56
bt ebx, r8d
jb 0x14001e54f
jmp 0x14001eb56
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14001e79f
dec rdx
jmp 0x14001e875
cmp rcx, rdx
je 0x14001e7d7
xor r8d, r8d
xor r9d, r9d
movzx r10d, byte [rcx]
test r10b, r10b
js 0x14001e68d
inc rcx
jmp 0x14001e702
mov r11d, r10d
and r11d, 0x1f
movzx r12d, byte [rcx + 1]
and r12d, 0x3f
cmp r10b, 0xdf
jbe 0x14001e6e4
movzx ebp, byte [rcx + 2]
shl r12d, 6
and ebp, 0x3f
or ebp, r12d
cmp r10b, 0xf0
jb 0x14001e6f4
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 0x14001e7eb
add rcx, 4
jmp 0x14001e702
add rcx, 2
shl r11d, 6
or r11d, r12d
mov r10d, r11d
jmp 0x14001e702
add rcx, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
mov r11d, 0x5a6
xor r13d, r13d
mov r12d, 0x5a6
jmp 0x14001e726
cmp ebp, r10d
cmova r12, r11
mov r11, r12
sub r11, r13
jbe 0x14001eb56
shr r11, 1
add r11, r13
lea rsi, [r11 + r11*2]
lea rdi, [0x1401dc570]
mov ebp, dword [rdi + rsi*4]
mov edi, dword [rdi + rsi*4 + 4]
cmp edi, r10d
jb 0x14001e748
cmp ebp, r10d
jbe 0x14001e758
cmp edi, r10d
jae 0x14001e713
mov r13, r11
inc r13
mov r11, r12
jmp 0x14001e713
lea r10, [0x1401dc570]
movzx r10d, byte [r10 + rsi*4 + 8]
cmp r10d, 0x11
ja 0x14001eb56
mov r11d, 0x260d9
bt r11d, r10d
jae 0x14001e786
cmp rcx, rdx
jne 0x14001e67f
jmp 0x14001e7eb
cmp r10d, 1
je 0x14001e79a
mov r9b, 1
cmp r10d, 5
je 0x14001e77b
jmp 0x14001eb56
mov r8b, 1
jmp 0x14001e77b
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14001e842
movzx r9d, byte [rdx - 3]
cmp r9b, 0xbf
jg 0x14001e84c
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x14001e854
mov cl, 1
movzx r8d, byte [rdx - 1]
test r8b, r8b
js 0x14001e807
dec rdx
jmp 0x14001ea2e
test r8b, 1
sete r8b
test r9b, 1
sete cl
or cl, r8b
movzx r8d, byte [rdx - 1]
test r8b, r8b
jns 0x14001e7e3
movzx r9d, byte [rdx - 2]
cmp r9b, 0xc0
jge 0x14001e9f9
movzx r10d, byte [rdx - 3]
cmp r10b, 0xbf
jg 0x14001ea03
movzx r11d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r11d, 7
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
jmp 0x14001ea0b
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x14001e85f
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 0x14001e435
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001e895
cmp r11d, ecx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001e8ff
shr r8, 1
add r8, r10
lea r12, [r8 + r8*2]
lea rsi, [0x1401dc570]
mov r11d, dword [rsi + r12*4]
mov esi, dword [rsi + r12*4 + 4]
cmp esi, ecx
jb 0x14001e8b8
cmp r11d, ecx
jbe 0x14001e8c7
cmp esi, ecx
jae 0x14001e886
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001e886
lea r8, [0x1401dc570]
cmp byte [r8 + r12*4 + 8], 0xd
jne 0x14001e8ff
cmp rdx, rax
je 0x14001e435
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14001e9be
dec rdx
cmp ecx, 0x110000
jne 0x14001e875
jmp 0x14001e435
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14001e921
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x14001e435
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
lea r11, [0x1401dc570]
mov r9d, dword [r11 + r10*4]
mov r11d, dword [r11 + r10*4 + 4]
cmp r11d, ecx
jb 0x14001e945
cmp r9d, ecx
jbe 0x14001e955
cmp r11d, ecx
jae 0x14001e90e
mov r8, rax
inc r8
mov rax, rdx
jmp 0x14001e90e
lea rax, [0x1401dc570]
cmp byte [rax + r10*4 + 8], 9
je 0x14001e435
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14001e98a
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x14001eb56
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
lea r11, [0x1401dc570]
mov r9d, dword [r11 + r10*4]
mov r11d, dword [r11 + r10*4 + 4]
cmp r11d, ecx
jb 0x14001e9ae
cmp r9d, ecx
jbe 0x14001e9e1
cmp r11d, ecx
jae 0x14001e977
mov r8, rax
inc r8
mov rax, rdx
jmp 0x14001e977
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14001e842
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jl 0x14001e7bd
jmp 0x14001e84c
lea rax, [0x1401dc570]
cmp byte [rax + r10*4 + 8], 5
je 0x14001e435
jmp 0x14001eb56
add rdx, 0xfffffffffffffffe
and r9d, 0x1f
jmp 0x14001ea16
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 0x14001eb56
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14001ea4e
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x14001eabb
shr r9, 1
add r9, r11
lea rsi, [r9 + r9*2]
lea rdi, [0x1401dc570]
mov ebp, dword [rdi + rsi*4]
mov edi, dword [rdi + rsi*4 + 4]
cmp edi, r8d
jb 0x14001ea70
cmp ebp, r8d
jbe 0x14001ea80
cmp edi, r8d
jae 0x14001ea3f
mov r11, r9
inc r11
mov r9, r10
jmp 0x14001ea3f
lea r9, [0x1401dc570]
cmp byte [r9 + rsi*4 + 8], 0xd
jne 0x14001eabb
cmp rdx, rax
je 0x14001eb56
movzx r8d, byte [rdx - 1]
test r8b, r8b
js 0x14001eb33
dec rdx
cmp r8d, 0x110000
jne 0x14001ea2e
jmp 0x14001eb56
mov eax, 0x5a6
xor r9d, r9d
mov edx, 0x5a6
jmp 0x14001ead9
cmp r10d, r8d
cmova rdx, rax
mov rax, rdx
sub rax, r9
jbe 0x14001eb56
shr rax, 1
add rax, r9
lea r11, [rax + rax*2]
lea rsi, [0x1401dc570]
mov r10d, dword [rsi + r11*4]
mov esi, dword [rsi + r11*4 + 4]
cmp esi, r8d
jb 0x14001eafd
cmp r10d, r8d
jbe 0x14001eb0d
cmp esi, r8d
jae 0x14001eaca
mov r9, rax
inc r9
mov rax, rdx
jmp 0x14001eaca
lea rax, [0x1401dc570]
movzx eax, byte [rax + r11*4 + 8]
cmp eax, 0x11
ja 0x14001eb56
mov edx, 0x20023
bt edx, eax
jae 0x14001eb56
test cl, cl
jne 0x14001e435
jmp 0x14001eb56
movzx r9d, byte [rdx - 2]
cmp r9b, 0xc0
jge 0x14001e9f9
movzx r10d, byte [rdx - 3]
cmp r10b, 0xc0
jl 0x14001e825
jmp 0x14001ea03
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 0x14001ebb0
mov r8, qword [rsp + 0x198]
mov rcx, qword [0x1402590e0]
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 0x14001ebe4
js case.0x14001bc82.1
movzx eax, byte [0x140259141]
xor ecx, ecx
mov rdx, r14
call fcn.14008b700
test rax, rax
jne 0x14001ebe9
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 0x14001ec27
mov r8, qword [rbx + 0x20]
mov rcx, qword [0x1402590e0]
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 0x14001eca5
mov byte [rsp + 0x130], 1
mov qword [r15 + 0x10], rcx
xor esi, esi
lea rcx, [rsp + 0x60]
call fcn.1400ae880
test rax, rax
je 0x14001f462
mov r14, rax
test sil, 1
movabs rbx, 0x8080808080808080
jne 0x14001ecf5
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15]
jne 0x14001ece9
mov rcx, r15
mov rsi, rdx
mov rdx, rax
call fcn.140086540
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 0x14001edab
test rdx, rdx
je 0x14001ef18
cmp byte [r14 + rdx - 1], 0
js 0x14001ede6
mov rax, rdx
dec rax
je 0x14001ef18
cmp byte [r14 + rdx - 2], 0
js 0x14001ede6
mov rax, rdx
add rax, 0xfffffffffffffffe
je 0x14001ef18
cmp byte [r14 + rdx - 3], 0
js 0x14001ede6
mov rax, rdx
add rax, 0xfffffffffffffffd
je 0x14001ef18
cmp byte [r14 + rdx - 4], 0
js 0x14001ede6
mov rax, rdx
add rax, 0xfffffffffffffffc
je 0x14001ef18
cmp byte [r14 + rdx - 5], 0
js 0x14001ede6
mov rax, rdx
add rax, 0xfffffffffffffffb
je 0x14001ef18
cmp byte [r14 + rdx - 6], 0
js 0x14001ede6
mov rax, rdx
add rax, 0xfffffffffffffffa
je 0x14001ef18
cmp byte [r14 + rdx - 7], 0
js 0x14001ede6
mov rax, rdx
add rax, 0xfffffffffffffff9
jne 0x14001ede6
jmp 0x14001ef18
test qword [r14], rbx
jne 0x14001ede6
lea rax, [r14 + 7]
and rax, 0xfffffffffffffff8
sub rax, r14
mov ecx, 8
cmove rax, rcx
lea rcx, [rdx - 8]
cmp rax, rcx
jae 0x14001eddc
test qword [r14 + rax], rbx
jne 0x14001ede6
add rax, 8
cmp rax, rcx
jb 0x14001edcd
test qword [r14 + rcx], rbx
je 0x14001ef18
mov rax, qword [r15]
mov rbx, qword [r15 + 0x10]
sub rax, rbx
mov r8, rbx
cmp rax, 3
jbe 0x14001eef8
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 0x14001eca5
mov qword [rsp + 0x1b0], rbx
mov r12, r14
add r12, rdx
xor r13d, r13d
mov qword [rsp + 0x138], r14
mov rdi, r14
jmp 0x14001ee57
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 0x14001ef59
movzx ebp, byte [rdi]
test bpl, bpl
js 0x14001ee64
inc rdi
jmp 0x14001eec6
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x14001eeae
movzx ecx, byte [rdi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x14001eebb
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 0x14001ef56
add rdi, 4
jmp 0x14001eec6
add rdi, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x14001eec6
add rdi, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
mov r14d, esi
inc r14d
je 0x14001f3f0
cmp ebp, 0x7f
ja 0x14001ee4c
cmp r8, qword [r15]
jne 0x14001ee3a
mov rcx, r15
mov rdx, r8
call fcn.140086540
mov r8, qword [r15 + 0x10]
jmp 0x14001ee3a
mov r8d, 4
mov rcx, r15
mov rsi, rdx
mov rdx, rbx
call fcn.1400e2df0
mov rdx, rsi
mov r8, qword [r15 + 0x10]
jmp 0x14001edfd
mov rax, qword [r15]
mov rsi, qword [r15 + 0x10]
sub rax, rsi
cmp rax, rdx
jb 0x14001f440
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 0x14001ec9f
mov r14d, esi
test r13d, r13d
je 0x14001ef94
cmp r8, qword [r15]
mov rdi, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x138]
jne 0x14001ef82
mov rcx, r15
mov rdx, r8
call fcn.140086540
mov r8, qword [r15 + 0x10]
mov rax, qword [r15 + 8]
mov byte [rax + r8], 0x2d
inc r8
mov qword [r15 + 0x10], r8
jmp 0x14001efa7
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 0x14001eca5
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 0x14001efee
inc rcx
cmp eax, ebp
jbe 0x14001f083
cmp rcx, r12
je case.0x14001bc82.1
movzx ebp, byte [rcx]
test bpl, bpl
jns 0x14001efe3
mov edx, ebp
and edx, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp bpl, 0xdf
jbe 0x14001f051
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp bpl, 0xf0
jb 0x14001f05f
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.0x14001bc82.1
add rcx, 4
jmp 0x14001efe6
add rcx, 2
shl edx, 6
or edx, r11d
mov ebp, edx
jmp 0x14001efe6
add rcx, 3
shl edx, 0xc
or r10d, edx
mov ebp, r10d
jmp 0x14001efe6
inc rcx
cmp ebp, edx
mov r10d, edx
cmovb r10d, ebp
cmp eax, edx
cmovbe ebp, r10d
cmp rcx, r12
je 0x14001f100
movzx edx, byte [rcx]
test dl, dl
jns 0x14001f071
mov r10d, edx
and r10d, 0x1f
movzx esi, byte [rcx + 1]
and esi, 0x3f
cmp dl, 0xdf
jbe 0x14001f0dd
movzx r11d, byte [rcx + 2]
shl esi, 6
and r11d, 0x3f
or r11d, esi
cmp dl, 0xf0
jb 0x14001f0ed
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 0x14001f100
add rcx, 4
jmp 0x14001f074
add rcx, 2
shl r10d, 6
or r10d, esi
mov edx, r10d
jmp 0x14001f074
add rcx, 3
shl r10d, 0xc
or r11d, r10d
mov edx, r11d
jmp 0x14001f074
mov r10d, ebp
sub r10d, eax
lea ecx, [rdi + 1]
mov eax, r9d
not eax
xor edx, edx
div ecx
cmp r10d, eax
ja 0x14001f3f0
mov eax, r10d
imul eax, ecx
add eax, r9d
mov rcx, qword [rsp + 0x138]
jmp 0x14001f141
mov r10d, edi
mov eax, dword [rsp + 0x58]
mov r9d, eax
cmp rcx, r12
je 0x14001f3b7
mov dword [rsp + 0x58], eax
movzx eax, byte [rcx]
test al, al
js 0x14001f155
inc rcx
cmp eax, ebp
jae 0x14001f1cd
jmp 0x14001f1c3
mov r10, rcx
mov ecx, eax
and ecx, 0x1f
movzx r9d, byte [r10 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x14001f1a3
movzx edx, byte [r10 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp al, 0xf0
jb 0x14001f1b1
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 0x14001f3e6
add r10, 4
jmp 0x14001f1bc
add r10, 2
shl ecx, 6
or ecx, r9d
mov eax, ecx
jmp 0x14001f1bc
add r10, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
mov rcx, r10
cmp eax, ebp
jae 0x14001f1cd
inc dword [rsp + 0x58]
je 0x14001f3f0
cmp eax, ebp
jne 0x14001f12e
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 0x14001f2dc
mov esi, 0x61
cmp eax, 0x1a
jb 0x14001f227
mov esi, 0x16
cmp eax, 0x24
jae case.0x14001bc82.1
cmp r8, qword [r15]
mov ebx, 0xd41d41d5
mov r12, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x1b8]
jne 0x14001f251
mov rcx, r15
mov rdx, r8
mov edi, eax
call fcn.140086540
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.0x14001bc82.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 0x14001f381
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 0x14001f2b0
jmp 0x14001f384
mov r12d, r14d
neg r12d
mov r13d, 0x48
jmp 0x14001f327
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 0x14001f20f
mov r9d, ecx
sub r9d, 0x24
je case.0x14001bc82.1
sub eax, ecx
neg r9d
xor edx, edx
div r9d
mov esi, edx
add esi, ecx
mov ebx, 0x61
cmp esi, 0x1a
jb 0x14001f35a
mov ebx, 0x16
cmp esi, 0x24
jae case.0x14001bc82.1
cmp r8, qword [r15]
jne 0x14001f2f0
mov rcx, r15
mov rdx, r8
mov r15d, eax
call fcn.140086540
mov eax, r15d
mov r15, qword [rsp + 0x330]
mov r8, qword [r15 + 0x10]
jmp 0x14001f2f0
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 0x14001f141
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 0x14001efdb
jmp 0x14001eca5
mov r10d, edi
mov r9d, dword [rsp + 0x58]
jmp 0x14001f3b7
mov byte [rsp + 0x130], 1
xor esi, esi
mov rcx, qword [rsp + 0x1b0]
cmp r8, rcx
mov rdi, qword [rsp + 0x188]
jb 0x14001eca5
test rcx, rcx
je 0x14001ec97
mov byte [rsp + 0x130], 1
cmp r8, rcx
jbe 0x14001ec9f
mov rax, qword [r15 + 8]
cmp byte [rax + rcx], 0xbf
jg 0x14001ec9f
jmp case.0x14001bc82.1
mov rbx, qword [rsp + 0x330]
mov rcx, rbx
mov r8, rdx
mov rdx, rsi
mov r15, r8
call fcn.1400e2df0
mov rsi, qword [rbx + 0x10]
jmp 0x14001ef2e
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 0x14001c615