Function at 0x14006a7e0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2b8
movdqa xmmword [rsp + 0x2a0], xmm15
movdqa xmmword [rsp + 0x290], xmm14
movdqa xmmword [rsp + 0x280], xmm13
movdqa xmmword [rsp + 0x270], xmm12
movdqa xmmword [rsp + 0x260], xmm11
movdqa xmmword [rsp + 0x250], xmm10
movdqa xmmword [rsp + 0x240], xmm9
movdqa xmmword [rsp + 0x230], xmm8
movdqa xmmword [rsp + 0x220], xmm7
movaps xmmword [rsp + 0x210], xmm6
mov qword [rsp + 0x1f0], rcx
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x320]
mov qword [rsp + 0x110], r9
mov qword [rcx + 0x10], 0
mov dword [rsp + 0xe8], 0
mov qword [rsp + 0xe0], 0
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x1e8], rax
add r8, rdx
xorps xmm6, xmm6
movups xmmword [rsp + 0x13a], xmm6
movzx eax, word [rsp + 0x148]
mov word [rsp + 0xce], ax
movups xmm0, xmmword [rsp + 0x138]
movups xmmword [rsp + 0xbe], xmm0
movups xmmword [rsp + 0x11b], xmm6
mov byte [rsp + 0x12b], 0
mov qword [rsp + 0x38], 0
lea r12, [rsp + 0x48]
mov dword [rsp + 0x48], 0
mov word [rsp + 0x4c], 0
mov byte [rsp + 0x50], 0
mov dword [rsp + 0x54], 0
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x5c], 0
mov byte [rsp + 0x60], 0
mov dword [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], r8
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 0
mov rax, r9
shr rax, 0x20
mov byte [rsp + 0x9c], al
mov qword [rsp + 0x190], r9
mov dword [rsp + 0x98], r9d
mov eax, dword [rsp + 0x128]
mov dword [rsp + 0xad], eax
movdqu xmm0, xmmword [rsp + 0x118]
movdqu xmmword [rsp + 0x9d], xmm0
mov dword [rsp + 0xb8], 0
mov word [rsp + 0xbc], 0
mov dword [rsp + 0xd8], 0x110000
mov byte [rsp + 0xdc], 0
lea r15, [0x140237540]
mov edi, 0xff
lea r13, [0x14023b010]
xor eax, eax
test rax, rax
je 0x14006aab0
cmp rax, 1
jne 0x14006b4ae
mov rax, qword [rsp + 0x40]
cmp dword [rsp + 0xb8], 0
je 0x14006aa0d
cmp rax, qword [rsp + 0xd0]
jb 0x14006b4d2
mov qword [rsp + 0xd0], 0
jmp 0x14006aa3d
movzx ecx, word [rsp + 0xbc]
cmp rcx, 4
ja 0x14006d3e3
cmp rax, rcx
jb 0x14006b512
cmp word [rsp + 0xbc], 0
je 0x14006aa3d
mov word [rsp + 0xbc], 0
mov qword [rsp + 0x38], 0
jmp 0x14006aab0
movzx ebx, bp
imul esi, ebx, 0x6f75
shr esi, 0x18
lea edx, [rsi + 0x1100]
mov rcx, r12
call fcn.14006ec20
imul eax, esi, 0x24c
sub ebp, eax
movzx eax, bp
imul edx, eax, 0x925
shr edx, 0x10
add edx, 0x1161
mov rcx, r12
call fcn.14006ec20
mov eax, ebx
shr eax, 2
imul eax, eax, 0x4925
shr eax, 0x11
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
sub bx, cx
je 0x14006aab0
add ebx, 0x11a7
movzx edx, bx
mov rcx, r12
call fcn.14006ec20
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
jne 0x14006ae00
movzx ecx, byte [rsp + 0x98]
cmp cl, 2
je 0x14006b262
mov rbx, qword [rsp + 0x88]
mov r10, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
movzx r9d, byte [rsp + 0x99]
mov r11, qword [rsp + 0x90]
test rbx, rbx
je 0x14006aba5
cmp rbx, r11
je 0x14006ab99
lea rdx, [rbx + 1]
mov qword [rsp + 0x88], rdx
movzx edx, byte [rbx]
test dl, dl
jns 0x14006b0b6
mov ebp, edx
and ebp, 0x1f
lea rsi, [rbx + 2]
mov qword [rsp + 0x88], rsi
movzx esi, byte [rbx + 1]
and esi, 0x3f
cmp dl, 0xdf
jbe 0x14006b3aa
lea r14, [rbx + 3]
mov qword [rsp + 0x88], r14
movzx r14d, byte [rbx + 2]
shl esi, 6
and r14d, 0x3f
or r14d, esi
cmp dl, 0xf0
jb 0x14006b3b6
lea rdx, [rbx + 4]
mov qword [rsp + 0x88], rdx
movzx edx, byte [rbx + 3]
and ebp, 7
shl ebp, 0x12
shl r14d, 6
and edx, 0x3f
or edx, r14d
or edx, ebp
cmp edx, 0x110000
jne case.0x14006ad5a.0
mov qword [rsp + 0x88], 0
cmp r10, r8
je 0x14006b25a
lea rdx, [r10 + 1]
mov qword [rsp + 0x70], rdx
movzx ebx, byte [r10]
test bl, bl
js 0x14006abe0
mov r10, rdx
mov edx, ebx
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14006ac70
jmp 0x14006b0b6
mov edx, ebx
and edx, 0x1f
lea r14, [r10 + 2]
mov qword [rsp + 0x70], r14
movzx esi, byte [r10 + 1]
and esi, 0x3f
cmp bl, 0xdf
jbe 0x14006ac39
lea r14, [r10 + 3]
mov qword [rsp + 0x70], r14
movzx ebp, byte [r10 + 2]
shl esi, 6
and ebp, 0x3f
or ebp, esi
cmp bl, 0xf0
jb 0x14006ac4e
lea rsi, [r10 + 4]
mov qword [rsp + 0x70], rsi
movzx ebx, byte [r10 + 3]
and edx, 7
shl edx, 0x12
shl ebp, 6
and ebx, 0x3f
or ebx, ebp
or ebx, edx
mov r10, rsi
jmp 0x14006abc2
shl edx, 6
or edx, esi
mov r10, r14
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14006ac70
jmp 0x14006b0b6
shl edx, 0xc
or ebp, edx
mov r10, r14
mov edx, ebp
lea esi, [rdx - 0x2d]
cmp esi, 2
jb 0x14006b0b6
nop word cs:[rax + rax]
cmp edx, 0x110000
je 0x14006b25a
lea esi, [rdx - 0x61]
cmp esi, 0x1a
jb 0x14006b0b6
lea esi, [rdx - 0x30]
cmp esi, 0xa
jb 0x14006b0b6
mov ebx, 0x75a
xor ebp, ebp
mov r14d, 0x75a
jmp 0x14006acb8
mov r14, rbx
sub rbx, rbp
jbe 0x14006aceb
shr rbx, 1
add rbx, rbp
xor esi, esi
cmp dword [r15 + rbx*8], edx
setne sil
cmovb esi, edi
cmp sil, 1
je 0x14006acb0
movzx esi, sil
cmp esi, 0xff
jne 0x14006acfe
inc rbx
mov rbp, rbx
mov rbx, r14
sub rbx, rbp
ja 0x14006acb8
dec rbp
mov rbx, rbp
cmp rbp, 0x759
ja 0x14006d3e3
movzx r14d, word [r15 + rbx*8 + 4]
mov ebp, r14d
and ebp, 0x7fff
movzx esi, bp
test r14w, r14w
js 0x14006ad25
movzx ebx, word [r15 + rbx*8]
mov ebp, edx
sub bp, bx
add ebp, esi
movzx esi, bp
cmp esi, 0x1f73
jae 0x14006d3e3
movzx r14d, bp
movzx esi, byte [r13 + r14*4]
mov ebx, 0
cmp esi, 1
je case.default.0x14006ad5a
mov r11d, esi
lea rsi, [0x1401f98a0]
movsxd r11, dword [rsi + r11*4]
add r11, rsi
jmp r11
mov ecx, dword [rsp + 0x48]
lea rsi, [rsp + 0x50]
mov rax, qword [rsp + 0xa0]
test ecx, ecx
je 0x14006ae21
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x60]
jmp 0x14006ae34
movzx r9d, word [rsp + 0x4c]
mov r8, rsi
cmp r9, 5
jae 0x14006d3e3
cmp rax, r9
jae 0x14006d3e3
mov r14d, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x14006af00
test ecx, ecx
je 0x14006af0a
mov rax, qword [rsp + 0x60]
sub rax, rdx
je 0x14006af18
xor ecx, ecx
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0xa8]
add rdx, rcx
cmp dword [rsp + 0x48], 0
je 0x14006aea0
mov r8, qword [rsp + 0x60]
cmp rdx, r8
jae 0x14006d3e3
mov r9, qword [rsp + 0x50]
jmp 0x14006aebc
movzx r8d, word [rsp + 0x4c]
cmp r8, 5
jae 0x14006d3e3
mov r9, rsi
cmp rdx, r8
jae 0x14006d3e3
cmp rcx, r8
jae 0x14006d3e3
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 0x14006ae70
mov ecx, dword [rsp + 0x48]
test ecx, ecx
jne 0x14006af1c
movzx ecx, word [rsp + 0x4c]
cmp rax, rcx
jae 0x14006af28
mov word [rsp + 0x4c], ax
jmp 0x14006af28
mov qword [rsp + 0xa0], rax
jmp 0x14006af2e
movzx eax, word [rsp + 0x4c]
sub rax, rdx
jne 0x14006ae64
test ecx, ecx
je 0x14006aeec
cmp qword [rsp + 0x60], rax
jb 0x14006af28
mov qword [rsp + 0x60], rax
movups xmmword [r12 + 0x58], xmm6
imul eax, r14d, 0x9e3779b9
imul ecx, r14d, 0x31415926
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x1f
and eax, 0xfffffffe
lea rdx, [0x1402a7524]
movzx eax, word [rax + rdx]
add eax, r14d
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x1e
and eax, 0xfffffffc
lea rcx, [0x1402a7c58]
mov ebp, dword [rax + rcx]
mov eax, ebp
shr eax, 8
cmp eax, r14d
mov eax, 0
cmovne ebp, eax
mov ebx, dword [rsp + 0xd8]
cmp ebx, 0x110000
jne 0x14006afb0
test bpl, bpl
jne 0x14006b430
mov dword [rsp + 0xd8], r14d
jmp 0x14006aab0
cmp byte [rsp + 0xdc], 0
je 0x14006afe1
cmp byte [rsp + 0xdd], bpl
jae 0x14006b000
mov ecx, ebx
mov edx, r14d
call fcn.1401df110
cmp eax, 0x110000
je 0x14006b009
mov dword [rsp + 0xd8], eax
jmp 0x14006aab0
mov ecx, ebx
mov edx, r14d
call fcn.1401df110
cmp eax, 0x110000
jne 0x14006b2f0
test bpl, bpl
jne 0x14006b009
jmp 0x14006b4a1
test bpl, bpl
je 0x14006b47a
cmp dword [rsp + 0xb8], 0
je 0x14006b050
mov rdx, qword [rsp + 0xd0]
cmp rdx, qword [rsp + 0xc8]
jne 0x14006b03a
lea rcx, [rsp + 0xc0]
call fcn.140126ca0
mov rdx, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xc0]
mov dword [rax + rdx*4], r14d
inc qword [rsp + 0xd0]
jmp 0x14006b074
movzx eax, word [rsp + 0xbc]
cmp rax, 3
ja 0x14006b3c4
mov dword [rsp + rax*4 + 0xc0], r14d
inc eax
mov word [rsp + 0xbc], ax
mov byte [rsp + 0xdc], 1
mov byte [rsp + 0xdd], bpl
jmp 0x14006aab0
cmp edx, 0x110000
je 0x14006b25a
cmp byte [rsp + 0xb0], 0
je 0x14006b181
cmp edx, 0x80
jb 0x14006aaa8
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x14006aa48
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x1f
and r8d, 0xfffffffe
lea r9, [0x1402b34bc]
movzx r8d, word [r8 + r9]
add r8d, edx
imul r8d, r8d, 0x9e3779b9
xor r8d, eax
imul r8, r8, 0xee4
shr r8, 0x1d
and r8d, 0xfffffff8
lea r9, [0x1402b5284]
mov rbx, qword [r8 + r9]
cmp edx, ebx
jne 0x14006b2fc
mov rax, rbx
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0x1667
ja 0x14006d3e3
shr rbx, 0x30
movzx eax, ax
mov ecx, 0x1667
sub rcx, rax
cmp rcx, rbx
jb 0x14006d3e3
lea rcx, [0x1402bc9a4]
lea r14, [rcx + rax*4]
test rbx, rbx
jne 0x14006b37d
jmp 0x14006aab0
cmp edx, 0x80
jb 0x14006aaa8
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x14006aa48
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x1402aaf00]
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, [0x1402abf1c]
mov rbx, qword [rcx + rax*8]
cmp edx, ebx
jne 0x14006aaa8
mov rax, rbx
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0xd4e
ja 0x14006d3e3
shr rbx, 0x30
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, rbx
jb 0x14006d3e3
test rbx, rbx
je 0x14006aab0
lea rcx, [0x1402aff84]
lea rsi, [rcx + rax*4]
shl rbx, 2
xor r14d, r14d
nop word cs:[rax + rax]
mov edx, dword [rsi + r14]
mov rcx, r12
call fcn.14006ec20
add r14, 4
cmp rbx, r14
jne 0x14006b240
jmp 0x14006aab0
mov byte [rsp + 0x98], 2
mov r8d, dword [rsp + 0x48]
test r8d, r8d
mov rcx, qword [rsp + 0x60]
movzx edx, word [rsp + 0x4c]
mov rax, rcx
cmove rax, rdx
test rax, rax
je 0x14006b440
mov rax, qword [rsp + 0xa8]
test r8d, r8d
je 0x14006b2a0
mov r8, qword [rsp + 0x50]
mov rdx, rcx
lea rsi, [rsp + 0x50]
jmp 0x14006b2b2
lea rsi, [rsp + 0x50]
mov r8, rsi
cmp dx, 5
jae 0x14006d3e3
sub rdx, rax
jb 0x14006d3e3
lea rcx, [r8 + rax*8]
call fcn.140069fa0
mov ecx, dword [rsp + 0x48]
test ecx, ecx
je 0x14006b2de
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rdx
jmp 0x14006ae09
movzx edx, word [rsp + 0x4c]
mov qword [rsp + 0xa8], rdx
jmp 0x14006ae09
mov dword [rsp + 0xd8], eax
jmp 0x14006aab0
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x1402aaf00]
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, [0x1402abf1c]
mov rbx, qword [rcx + rax*8]
cmp edx, ebx
jne 0x14006aaa8
mov rax, rbx
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0xd4e
ja 0x14006d3e3
shr rbx, 0x30
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, rbx
jb 0x14006d3e3
lea rcx, [0x1402aff84]
lea r14, [rcx + rax*4]
test rbx, rbx
je 0x14006aab0
shl rbx, 2
xor esi, esi
nop word cs:[rax + rax]
mov edx, dword [r14 + rsi]
mov rcx, r12
call fcn.14006ec20
add rsi, 4
cmp rbx, rsi
jne 0x14006b390
jmp 0x14006aab0
shl ebp, 6
or ebp, esi
mov edx, ebp
jmp 0x14006b0b6
shl ebp, 0xc
or r14d, ebp
mov edx, r14d
jmp 0x14006b0b6
lea rcx, [rsp + 0x138]
lea rdx, [rsp + 0xbc]
mov r8d, r14d
call fcn.14006eff0
cmp dword [rsp + 0xb8], 0
je 0x14006b407
cmp qword [rsp + 0xc8], 0
je 0x14006b407
mov r8, qword [rsp + 0xc0]
mov rcx, qword [0x1402d9150]
xor edx, edx
call sub.kernel32.dll_HeapFree
movdqu xmm0, xmmword [rsp + 0x138]
movdqu xmm1, xmmword [rsp + 0x148]
movdqu xmmword [r12 + 0x80], xmm1
movdqu xmmword [r12 + 0x70], xmm0
jmp 0x14006b074
mov ebx, r14d
jmp 0x14006b580
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x40], 0
mov ebx, dword [rsp + 0xd8]
mov eax, 2
cmp ebx, 0x110000
je 0x14006a9cf
mov dword [rsp + 0xd8], 0x110000
jmp 0x14006b580
mov dword [rsp + 0xd8], r14d
mov byte [rsp + 0xdc], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
jmp 0x14006b580
mov dword [rsp + 0xd8], r14d
jmp 0x14006b580
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xb8]
test eax, eax
je 0x14006b4dc
cmp rcx, qword [rsp + 0xd0]
jae 0x14006b530
mov rdx, qword [rsp + 0xc0]
jmp 0x14006b4fc
mov rcx, qword [rsp + 0xc0]
jmp 0x14006b51a
movzx r8d, word [rsp + 0xbc]
cmp r8, 5
jae 0x14006d3e3
lea rdx, [rsp + 0xc0]
cmp rcx, r8
jae 0x14006b53e
mov ebx, dword [rdx + rcx*4]
inc rcx
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x40], rcx
jmp 0x14006b580
lea rcx, [rsp + 0xc0]
mov ebx, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rax
jmp 0x14006b580
mov qword [rsp + 0xd0], 0
jmp 0x14006b553
cmp word [rsp + 0xbc], 0
je 0x14006b553
mov word [rsp + 0xbc], 0
mov ebx, dword [rsp + 0xd8]
mov dword [rsp + 0xd8], 0x110000
cmp ebx, 0x110000
je 0x14006b6ce
nop word cs:[rax + rax]
cmp ebx, 0x80
jae 0x14006b5c0
mov rsi, qword [rsp + 0x320]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi + 8]
jne 0x14006b5a6
mov rcx, rsi
call fcn.1401b5b60
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi]
mov byte [rax + rdx], bl
inc rdx
mov qword [rsi + 0x10], rdx
mov rax, qword [rsp + 0x38]
jmp 0x14006a9cf
mov dword [rsp + 0x138], 0
mov eax, ebx
cmp ebx, 0x800
jae 0x14006b5f5
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x138], al
and bl, 0x3f
or bl, 0x80
mov byte [rsp + 0x139], bl
mov ebx, 2
jmp 0x14006b66b
cmp ebx, 0x10000
jae 0x14006b62d
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x138], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x139], al
and bl, 0x3f
or bl, 0x80
mov byte [rsp + 0x13a], bl
mov ebx, 3
jmp 0x14006b66b
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x138], al
mov eax, ebx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x139], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x13a], al
and bl, 0x3f
or bl, 0x80
mov byte [rsp + 0x13b], bl
mov ebx, 4
mov rcx, qword [rsp + 0x320]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
sub rax, r14
cmp rax, rbx
jb 0x14006b6b2
mov rsi, qword [rsp + 0x320]
mov rcx, qword [rsi]
add rcx, r14
lea rdx, [rsp + 0x138]
mov r8, rbx
call sub.msvcrt.dll_memcpy
add r14, rbx
mov qword [rsi + 0x10], r14
mov rax, qword [rsp + 0x38]
jmp 0x14006a9cf
mov rsi, qword [rsp + 0x320]
mov rcx, rsi
mov rdx, r14
mov r8, rbx
call fcn.140089e50
mov r14, qword [rsi + 0x10]
jmp 0x14006b683
cmp dword [rsp + 0x48], 0
je 0x14006b711
cmp qword [rsp + 0x58], 0
mov r12, qword [rsp + 0x328]
mov r15, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x320]
je 0x14006b729
mov r8, qword [rsp + 0x50]
mov rcx, qword [0x1402d9150]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov eax, dword [rsp + 0xb8]
jmp 0x14006b729
mov r12, qword [rsp + 0x328]
mov r15, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x320]
test eax, eax
je 0x14006b74e
cmp qword [rsp + 0xc8], 0
je 0x14006b74e
mov r8, qword [rsp + 0xc0]
mov rcx, qword [0x1402d9150]
xor edx, edx
call sub.kernel32.dll_HeapFree
movabs r13, 0x8080808080808080
mov qword [rsp + 0x118], 8
xorps xmm6, xmm6
movups xmmword [rsp + 0x120], xmm6
mov rax, qword [rsi]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rcx
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x170], rax
mov word [rsp + 0x178], 1
and qword [rsp + 0x190], 0xffffffffffff00ff
mov dil, 1
lea r14, [0x1402a315c]
mov ebx, 0xff
movdqa xmm7, xmmword [0x1401f93a0]
movdqa xmm8, xmmword [0x1401f93b0]
movdqa xmm14, xmmword [0x1401f9410]
movdqa xmm15, xmmword [0x1401f9420]
movdqa xmm9, xmmword [0x1401f9430]
movdqa xmm10, xmmword [0x1401f9440]
movdqa xmm12, xmmword [0x1401f9460]
movdqa xmm13, xmmword [0x1401f9470]
movdqa xmm11, xmmword [0x1401f9480]
mov dword [rsp + 0x24], 0
jmp 0x14006b886
movabs rax, 0x8080808080808080
test qword [r8 + rcx], rax
je 0x14006bd19
mov byte [rsp + 0xe0], 1
mov al, 1
mov dword [rsp + 0x24], eax
xor edi, edi
mov r15, qword [rsp + 0x110]
movabs r13, 0x8080808080808080
mov ebx, 0xff
lea rcx, [rsp + 0x138]
call fcn.14006dcf0
test rax, rax
je 0x14006d3c2
mov rsi, rax
mov rbp, rdx
test dil, 1
jne 0x14006b8d1
mov rdx, qword [r12 + 0x10]
cmp rdx, qword [r12 + 8]
jne 0x14006b8c1
mov rcx, r12
call fcn.1401b5b60
mov rdx, qword [r12 + 0x10]
mov rax, qword [r12]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [r12 + 0x10], rdx
cmp rbp, 4
jb 0x14006b8e3
cmp dword [rsi], 0x2d2d6e78
je 0x14006baa0
test byte [rsp + 0x24], 1
jne 0x14006ba4e
test rbp, rbp
je 0x14006ba46
mov rax, rsi
add rax, rbp
mov rcx, rsi
jmp 0x14006b90b
cmp rcx, rax
je 0x14006ba46
movzx edx, byte [rcx]
test dl, dl
js 0x14006b924
inc rcx
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14006b902
jmp 0x14006b9bc
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14006b983
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14006b9a0
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 0x14006ba46
add rcx, 4
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14006b902
jmp 0x14006b9bc
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jae 0x14006b9bc
jmp 0x14006b902
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14006b902
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14006b9dc
mov r9, r8
sub r8, r10
jbe 0x14006b902
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor edi, edi
cmp dword [r14 + r11*4], edx
seta dil
cmp dword [r14 + r11*4 + 4], edx
cmovb edi, ebx
cmp dil, 1
je 0x14006b9d0
movzx r10d, dil
cmp r10d, 0xff
jne 0x14006ba1e
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x14006b9dc
jmp 0x14006b902
movzx edx, byte [r14 + r11*4 + 8]
cmp rdx, 0x11
ja 0x14006b902
mov r8d, 0x20003
bt r8, rdx
jae 0x14006b902
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x14006ba4e
mov dword [rsp + 0x24], 0
mov rcx, rsi
mov rdx, rbp
mov r8, r15
lea r9, [rsp + 0xe0]
call fcn.14006df40
mov rax, qword [r12 + 8]
mov rbx, qword [r12 + 0x10]
sub rax, rbx
cmp rax, rbp
jb 0x14006bca4
mov rcx, qword [r12]
add rcx, rbx
mov rdx, rsi
mov r8, rbp
call sub.msvcrt.dll_memcpy
add rbp, rbx
mov qword [r12 + 0x10], rbp
xor edi, edi
mov ebx, 0xff
jmp 0x14006b886
lea r15, [rsi + 4]
add rbp, 0xfffffffffffffffc
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], 1
movabs rax, 0x2d0000002d
mov qword [rsp + 0x60], rax
lea rax, [rsi + 0xb]
and rax, 0xfffffffffffffff8
sub rax, r15
mov rcx, rsi
add rcx, 3
mov rdi, rbp
jmp 0x14006bb09
mov qword [rsp + 0x50], rdi
cmp rdi, rbp
ja 0x14006bbfe
mov rdx, rdi
mov r8, rdi
cmp rdi, rax
jb 0x14006bb2d
mov r9d, edi
sub r9d, eax
and r9d, 0xf
mov rdx, rdi
mov r8, rax
sub rdx, r9
jb 0x14006d3e3
lea r9, [r15 + rdi]
sub r9, r15
sub r9, rdx
lea r10, [rcx + rdi]
nop dword [rax + rax]
test r9, r9
je 0x14006bb5a
dec r9
cmp byte [r10], 0x2d
lea r10, [r10 - 1]
jne 0x14006bb40
add r9, rdx
mov rdi, r9
jmp 0x14006bbad
mov r9, rdx
cmp rdx, r8
jbe 0x14006bb91
lea rdx, [r9 - 0x10]
movdqu xmm0, xmmword [rsi + r9 - 0xc]
movdqa xmm1, xmm0
pxor xmm1, xmm7
paddq xmm1, xmm8
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
test r10, r13
je 0x14006bb5a
cmp r9, rdi
ja 0x14006d3e3
mov rdi, r9
sub rdi, 1
jb 0x14006bbfe
cmp byte [rcx + r9], 0x2d
mov r9, rdi
jne 0x14006bb9d
cmp rdi, rbp
jae 0x14006bafb
mov dl, 0x2d
cmp byte [r15 + rdi], dl
jne 0x14006bafb
test rdi, rdi
je 0x14006bcbc
cmp rdi, rbp
jae 0x14006bbdb
cmp byte [r15 + rdi], 0xbf
jle 0x14006d3e3
lea rcx, [rdi + 1]
mov rax, rbp
sub rax, rcx
jbe 0x14006bcd5
cmp byte [r15 + rcx], 0xbf
mov rbp, rcx
jg 0x14006bcdb
jmp 0x14006d3e3
lea rax, str.combase.dll
mov qword [rsp + 0xf8], rax
xor edi, edi
mov rcx, rdi
cmp rdi, 8
jb 0x14006bcf9
mov rcx, qword [rsp + 0xf8]
lea rdx, [rcx + 7]
and rdx, 0xfffffffffffffff8
mov rax, rdx
sub rax, rcx
mov rcx, rdi
cmp rax, rdi
ja 0x14006bcf9
movabs rcx, 0x8080808080808080
mov r8, qword [rsp + 0xf8]
test qword [r8], rcx
jne 0x14006b85f
mov r8, qword [rsp + 0xf8]
cmp rdx, r8
mov ecx, 8
cmove rax, rcx
lea rcx, [rdi - 8]
cmp rax, rcx
jae 0x14006b84b
movabs rdx, 0x8080808080808080
test qword [r8 + rax], rdx
jne 0x14006b85f
add rax, 8
cmp rax, rcx
mov r8, qword [rsp + 0xf8]
jb 0x14006bc7a
jmp 0x14006b84b
mov rcx, r12
mov rdx, rbx
mov r8, rbp
call fcn.140089e50
mov rbx, qword [r12 + 0x10]
jmp 0x14006ba7a
mov qword [rsp + 0xf8], r15
xor edi, edi
mov rcx, rdi
cmp rdi, 8
jae 0x14006bc1c
jmp 0x14006bcf9
jne 0x14006d3e3
add rbp, r15
mov qword [rsp + 0xf8], r15
mov r15, rbp
mov rbp, rax
mov rcx, rdi
cmp rdi, 8
jae 0x14006bc1c
mov rax, rcx
sub rax, 1
jb 0x14006bd19
mov rdx, qword [rsp + 0xf8]
cmp byte [rdx + rcx - 1], 0
mov rcx, rax
jns 0x14006bcf9
jmp 0x14006b85f
add rbp, r15
mov dword [rsp + 0x28], pe_nt_image_headers64
mov r13d, 0x48
xor edx, edx
xor ecx, ecx
mov ebx, edi
cmp r15, rbp
mov rax, rdx
mov qword [rsp + 0x30], rdx
je 0x14006bf8a
lea r9d, [r13 + 0x1a]
inc r15
mov r10d, r13d
neg r10d
mov r11d, 1
mov esi, 0x24
mov dword [rsp + 0x108], ecx
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jb 0x14006bd82
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x14006bd86
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x14006bd86
jmp 0x14006b85f
add al, 0xea
mov edx, eax
test r11d, r11d
je 0x14006d3e3
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x14006b85f
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + rsi]
cmp esi, r9d
mov edx, 0x1a
cmovae eax, edx
cmp esi, r13d
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x14006be0b
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x14006b85f
cmp r15, rbp
je 0x14006b85f
add esi, 0x24
imul r11d, r8d
inc r15
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x14006bd6d
jmp 0x14006bd82
inc ebx
je 0x14006d3e3
mov eax, ecx
mov edx, dword [rsp + 0x108]
sub eax, edx
test edx, edx
mov r8d, 2
mov edx, 0x2bc
cmove r8d, edx
xor r13d, r13d
xor edx, edx
div r8d
mov r8d, eax
xor edx, edx
div ebx
add eax, r8d
cmp eax, 0x1c8
jb 0x14006be7b
xor r13d, r13d
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 r13d, 0x24
cmp eax, 0x3e57
mov eax, r8d
ja 0x14006be51
jmp 0x14006be7e
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov r10d, eax
mov eax, ecx
xor edx, edx
mov dword [rsp + 0x108], ebx
div ebx
add dword [rsp + 0x28], eax
jb 0x14006b85f
cmp dword [rsp + 0x28], 0x110000
je 0x14006b85f
mov eax, dword [rsp + 0x28]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x14006b85f
mov esi, edx
mov rax, qword [rsp + 0x118]
mov r12d, edx
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x14006bf12
mov rcx, rdx
shl rcx, 4
xor r9d, r9d
jmp 0x14006bf00
add r9, 0x10
cmp rcx, r9
je 0x14006bf12
mov r8, qword [rax + r9]
cmp r8, r12
jb 0x14006bef7
inc r8
mov qword [rax + r9], r8
jmp 0x14006bef7
cmp rdx, qword [rsp + 0x120]
jne 0x14006bf3f
lea rcx, [rsp + 0x118]
mov ebx, r10d
call fcn.14008a0c0
mov r10d, ebx
mov rax, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x128]
mov ebx, dword [rsp + 0x108]
movzx ecx, r10w
add r13d, ecx
mov rcx, rdx
shl rcx, 4
mov qword [rax + rcx], r12
mov r8d, dword [rsp + 0x28]
mov dword [rax + rcx + 8], r8d
inc rdx
mov qword [rsp + 0x128], rdx
mov ecx, esi
inc ecx
mov r12, qword [rsp + 0x328]
cmp r15, rbp
mov rax, rdx
mov qword [rsp + 0x30], rdx
jne 0x14006bd41
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0xf0], rax
cmp rdx, 0x15
jae 0x14006bfc9
cmp qword [rsp + 0x30], 1
jbe 0x14006c6a9
mov r8d, 1
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x30]
call fcn.14006a6a0
jmp 0x14006c6a9
movzx eax, byte [0x1402d9160]
mov rax, qword [0x1402d9150]
test rax, rax
jne 0x14006bff1
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006d3e3
mov qword [0x1402d9150], rax
mov rcx, qword [rsp + 0x30]
lea r8, [rcx*8]
movabs rcx, 0x7ffffffffffffff0
and r8, rcx
mov rcx, rax
xor edx, edx
call sub.kernel32.dll_HeapAlloc
mov qword [rsp + 0x100], rax
test rax, rax
je 0x14006d3e3
movzx eax, byte [0x1402d9160]
mov rax, qword [0x1402d9150]
test rax, rax
jne 0x14006c04e
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006d3e3
mov qword [0x1402d9150], rax
mov r8d, 0x100
mov rcx, rax
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14006d3e3
mov rbp, rax
mov r12, qword [rsp + 0xf0]
lea rax, [r12 + 0x20]
mov qword [rsp + 0x180], rax
lea rax, [r12 + 8]
mov qword [rsp + 0x1a0], rax
lea rax, [r12 - 8]
mov qword [rsp + 0x198], rax
lea rax, [r12 - 0x10]
mov qword [rsp + 0x1a8], rax
mov eax, 0x10
mov qword [rsp + 0x188], rax
xor r13d, r13d
xor ebx, ebx
mov r11, qword [rsp + 0x30]
mov r15, qword [rsp + 0x100]
jmp 0x14006c0dd
mov ebx, 1
mov r13, qword [rsp + 0x130]
cmp r13, r11
jae 0x14006c687
mov r8, r11
sub r8, r13
mov rax, r13
shl rax, 4
lea rcx, [r12 + rax]
cmp r8, 2
jae 0x14006c0fc
mov rdx, r11
jmp 0x14006c236
mov rdx, qword [rcx]
mov r9, qword [rcx + 0x10]
cmp r9, rdx
jae 0x14006c11d
cmp r8, 2
jne 0x14006c132
lea rdx, [r13 + 2]
mov r8d, 2
jmp 0x14006c1b6
cmp r8, 2
jne 0x14006c165
lea rdx, [r13 + 2]
mov r8d, 2
jmp 0x14006c236
mov qword [rsp + 0x28], rbx
mov r10, qword [rsp + 0x180]
lea r11, [r10 + rax]
mov r10d, 2
mov rsi, r9
mov rbx, rsi
mov rsi, qword [r11]
cmp rsi, rbx
jae 0x14006c199
inc r10
add r11, 0x10
cmp r8, r10
jne 0x14006c14c
jmp 0x14006c196
mov qword [rsp + 0x28], rbx
mov r10, qword [rsp + 0x180]
lea r11, [r10 + rax]
mov r10d, 2
mov rsi, r9
mov rbx, rsi
mov rsi, qword [r11]
cmp rsi, rbx
jb 0x14006c199
inc r10
add r11, 0x10
cmp r8, r10
jne 0x14006c17f
mov r10, r8
mov r11, qword [rsp + 0x30]
lea rsi, [r10 + r13]
mov r8, r10
cmp r9, rdx
mov rdx, rsi
mov rbx, qword [rsp + 0x28]
jae 0x14006c236
cmp r13, rdx
ja 0x14006d3e3
cmp rdx, r11
ja 0x14006d3e3
cmp r8, 2
jb 0x14006c236
mov r9, r13
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x28], rbx
mov rdx, r8
shr rdx, 1
add rax, qword [rsp + 0x1a0]
lea r9, [r8 + r13]
shl r9, 4
add r9, qword [rsp + 0x198]
mov r10, qword [rax - 8]
mov r11d, dword [rax]
mov rsi, qword [r9 - 8]
mov ebx, dword [r9]
mov qword [rax - 8], rsi
mov dword [rax], ebx
mov qword [r9 - 8], r10
mov dword [r9], r11d
add rax, 0x10
add r9, 0xfffffffffffffff0
dec rdx
jne 0x14006c1fc
mov r11, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x130]
mov rsi, rdx
sub rsi, r13
jb 0x14006d3e3
cmp rdx, r11
ja 0x14006d3e3
jae 0x14006c286
cmp r8, 0xa
jae 0x14006c286
lea rsi, [r13 + 0xa]
cmp rsi, r11
cmovae rsi, r11
mov qword [rsp + 0x130], rsi
sub rsi, r13
jb 0x14006d3e3
cmp r8, 1
adc r8, 0
mov rdx, rsi
call fcn.14006a6a0
mov r11, qword [rsp + 0x30]
jmp 0x14006c28e
mov qword [rsp + 0x130], rdx
cmp rbx, qword [rsp + 0x188]
jne 0x14006c32c
mov qword [rsp + 0x28], r13
movzx eax, byte [0x1402d9160]
mov rax, qword [0x1402d9150]
test rax, rax
jne 0x14006c2c9
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006d3e3
mov qword [0x1402d9150], rax
mov r8, rbx
shl r8, 5
mov rcx, rax
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14006d3e3
mov r13, rbx
mov rbx, rax
lea rax, [r13*2]
mov qword [rsp + 0x188], rax
mov r8, r13
shl r8, 4
mov rcx, rbx
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x1402d9150]
xor edx, edx
mov r8, rbp
call sub.kernel32.dll_HeapFree
mov rbp, rbx
mov r11, qword [rsp + 0x30]
mov rbx, r13
mov r13, qword [rsp + 0x28]
mov rax, rbx
shl rax, 4
mov qword [rbp + rax], rsi
mov qword [rbp + rax + 8], r13
inc rbx
mov rax, rbx
cmp rbx, 2
mov qword [rsp + 0x1b0], rbp
jae 0x14006c3e3
jmp 0x14006c0cc
mov r15, qword [rsp + 0x100]
mov rdx, r15
sub rbx, rdx
mov rcx, rsi
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x1d0]
add rax, r14
mov rcx, qword [rsp + 0x1c0]
mov qword [rcx], rax
mov rax, qword [rsp + 0x1d8]
mov rcx, qword [rsp + 0x1b8]
mov qword [rcx], rax
mov rcx, qword [rsp + 0x1c8]
lea rdx, [rcx + 0x10]
mov rax, qword [rsp + 0x108]
not rax
mov r8, qword [rsp + 0x28]
add r8, rax
shl r8, 4
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x1e0]
cmp rax, 1
mov r11, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x1b0]
jbe 0x14006c0c7
mov rbx, rax
lea r10, [rax - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [rbp + rcx]
mov rcx, qword [rbp + rcx + 8]
add rcx, rax
cmp rcx, r11
je 0x14006c450
mov rdx, rbx
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x14006c450
cmp rbx, 2
jbe 0x14006c673
lea rsi, [rbx - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14006c466
cmp rbx, 3
jbe 0x14006c67d
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x14006c466
jmp 0x14006c0cc
cmp rbx, 3
jb 0x14006c46b
lea rsi, [rbx - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x14006c46f
lea rsi, [rbx - 2]
cmp rbx, rsi
jbe 0x14006d3e3
lea rax, [rsi + 1]
cmp rbx, rax
jbe 0x14006d3e3
mov rcx, rsi
shl rcx, 4
mov rdx, qword [rbp + rcx + 8]
shl rax, 4
mov r8, qword [rbp + rax]
mov r13, qword [rbp + rax + 8]
add r13, r8
mov r15, r13
sub r15, rdx
jb 0x14006d3e3
mov qword [rsp + 0x108], rsi
mov qword [rsp + 0x28], rbx
cmp r13, r11
ja 0x14006d3e3
mov qword [rsp + 0x1d0], r8
mov qword [rsp + 0x1e0], r10
lea r8, [rcx + rbp]
mov qword [rsp + 0x1c8], r8
mov r14, qword [rbp + rcx]
lea rcx, [rbp + rax]
mov qword [rsp + 0x1c0], rcx
lea rax, [rbp + rax + 8]
mov qword [rsp + 0x1b8], rax
mov qword [rsp + 0x1d8], rdx
mov rsi, rdx
shl rsi, 4
add rsi, r12
mov rbx, r14
shl rbx, 4
lea rbp, [rsi + rbx]
shl r13, 4
mov r12, r15
sub r12, r14
cmp r12, r14
jae 0x14006c5ce
mov rbx, r12
shl rbx, 4
mov r15, qword [rsp + 0x100]
mov rcx, r15
mov rdx, rbp
mov r8, rbx
call sub.msvcrt.dll_memcpy
add rbx, r15
test r14, r14
jle 0x14006c656
test r12, r12
jle 0x14006c656
add r13, qword [rsp + 0x1a8]
mov r12, qword [rsp + 0xf0]
mov rax, rbp
mov rcx, rbx
mov rdx, qword [rbx - 0x10]
mov r8, qword [rbp - 0x10]
cmp rdx, r8
mov ebp, 0
sbb rbp, rbp
cmp rdx, r8
mov ebx, 0
adc rbx, 0xffffffffffffffff
shl rbp, 4
add rbp, rax
shl rbx, 4
add rbx, rcx
cmp rdx, r8
mov rax, rbx
cmovb rax, rbp
movdqu xmm0, xmmword [rax]
movdqu xmmword [r13], xmm0
cmp rbp, rsi
jbe 0x14006c5c6
add r13, 0xfffffffffffffff0
cmp rbx, r15
ja 0x14006c571
mov rsi, rbp
jmp 0x14006c362
mov r12, qword [rsp + 0x100]
mov rcx, r12
mov rdx, rsi
mov r8, rbx
call sub.msvcrt.dll_memcpy
add rbx, r12
test r14, r14
jle 0x14006c65b
cmp r15, r14
mov r12, qword [rsp + 0xf0]
jle 0x14006c35a
add r13, r12
mov r15, qword [rsp + 0x100]
mov rdx, r15
mov r8, rdx
mov rcx, qword [rbp]
xor edx, edx
xor eax, eax
cmp rcx, qword [r8]
setae dl
setb cl
mov r9, r8
cmovb r9, rbp
movdqu xmm0, xmmword [r9]
movdqu xmmword [rsi], xmm0
add rsi, 0x10
shl rdx, 4
add rdx, r8
cmp rdx, rbx
jae 0x14006c365
mov al, cl
shl rax, 4
add rbp, rax
cmp rbp, r13
jb 0x14006c60b
jmp 0x14006c365
mov rsi, rbp
jmp 0x14006c663
mov r15, qword [rsp + 0x100]
mov rdx, r15
mov r12, qword [rsp + 0xf0]
jmp 0x14006c365
mov ebx, 2
jmp 0x14006c0cc
mov ebx, 3
jmp 0x14006c0cc
mov rcx, qword [0x1402d9150]
xor edx, edx
mov r8, rbp
call sub.kernel32.dll_HeapFree
mov rcx, qword [0x1402d9150]
xor edx, edx
mov r8, r15
call sub.kernel32.dll_HeapFree
mov r10, qword [rsp + 0x30]
lea r8, [r10 + rdi]
mov r12, qword [rsp + 0x328]
mov rax, qword [r12 + 8]
mov rdx, qword [r12 + 0x10]
mov rcx, rdx
mov qword [rsp + 0x28], rdx
sub rax, rdx
cmp rax, r8
jb 0x14006d2f1
mov r13, qword [rsp + 0xf8]
add rdi, r13
xor ebp, ebp
xor r15d, r15d
cmp rbp, r10
jb 0x14006c796
cmp r13, rdi
je 0x14006c970
movzx r8d, byte [r13]
test r8b, r8b
js 0x14006c713
inc r13
movzx esi, r8b
inc r15
jmp 0x14006c85d
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [r13 + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x14006c76b
movzx edx, byte [r13 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14006c774
movzx esi, byte [r13 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and esi, 0x3f
or esi, edx
or esi, eax
cmp esi, 0x110000
je 0x14006c970
add r13, 4
mov rcx, r13
jmp 0x14006c818
add r13, 2
jmp 0x14006c83a
add r13, 3
jmp 0x14006c84b
mov rax, qword [r12]
mov byte [rax + rdx], sil
inc rdx
mov qword [r12 + 0x10], rdx
cmp rbp, r10
jae 0x14006c6f1
mov rax, rbp
shl rax, 4
mov rcx, qword [rsp + 0xf0]
cmp qword [rcx + rax], r15
jne 0x14006c7b7
inc rbp
mov esi, dword [rcx + rax + 8]
jmp 0x14006c852
mov rcx, r13
mov r13, rdi
cmp rcx, rdi
je 0x14006c7b7
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x14006c828
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x14006c833
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14006c844
movzx esi, byte [rcx + 3]
add rcx, 4
and eax, 7
shl eax, 0x12
shl edx, 6
and esi, 0x3f
or esi, edx
or esi, eax
mov r13, rcx
cmp esi, 0x110000
je 0x14006c7b7
mov r13, rcx
cmp esi, 0x110000
jne 0x14006c852
jmp 0x14006c970
inc rcx
mov r13, rcx
jmp 0x14006c707
add rcx, 2
mov r13, rcx
shl eax, 6
or eax, r9d
mov esi, eax
jmp 0x14006c852
add rcx, 3
mov r13, rcx
shl eax, 0xc
or eax, edx
mov esi, eax
inc r15
cmp esi, 0x80
jae 0x14006c884
mov rdx, qword [r12 + 0x10]
cmp rdx, qword [r12 + 8]
jne 0x14006c77d
mov rcx, r12
call fcn.1401b5b60
mov r10, qword [rsp + 0x30]
mov rdx, qword [r12 + 0x10]
jmp 0x14006c77d
mov dword [rsp + 0x38], 0
mov eax, esi
cmp esi, 0x800
jae 0x14006c8b3
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x38], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x39], sil
mov esi, 2
jmp 0x14006c91a
cmp esi, 0x10000
jae 0x14006c8e5
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x38], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x39], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x3a], sil
mov esi, 3
jmp 0x14006c91a
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x38], al
mov eax, esi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x39], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x3a], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x3b], sil
mov esi, 4
mov rax, qword [r12 + 8]
mov rbx, qword [r12 + 0x10]
sub rax, rbx
cmp rax, rsi
jb 0x14006c95b
mov rcx, qword [r12]
add rcx, rbx
lea rdx, [rsp + 0x38]
mov r8, rsi
call sub.msvcrt.dll_memcpy
add rbx, rsi
mov qword [r12 + 0x10], rbx
mov r10, qword [rsp + 0x30]
cmp rbp, r10
jae 0x14006c6f1
jmp 0x14006c796
mov rcx, r12
mov rdx, rbx
mov r8, rsi
call fcn.140089e50
mov rbx, qword [r12 + 0x10]
jmp 0x14006c92c
mov rsi, qword [r12]
mov rbp, qword [r12 + 0x10]
cmp qword [rsp + 0x28], 0
je 0x14006c99e
sub rbp, qword [rsp + 0x28]
jbe 0x14006c998
mov rax, qword [rsp + 0x28]
cmp byte [rsi + rax], 0xbf
jg 0x14006c99e
jmp 0x14006d3e3
jne 0x14006d3e3
add rsi, qword [rsp + 0x28]
test byte [rsp + 0x24], 1
jne 0x14006cafd
test rbp, rbp
je 0x14006caf5
lea rax, [rsi + rbp]
mov rcx, rsi
mov ebx, 0xff
lea r14, [0x1402a315c]
jmp 0x14006c9d5
cmp rcx, rax
je 0x14006caf5
movzx edx, byte [rcx]
test dl, dl
js 0x14006c9e1
inc rcx
jmp 0x14006ca60
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14006ca42
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14006ca52
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 0x14006caf5
add rcx, 4
mov ebx, 0xff
lea r14, [0x1402a315c]
jmp 0x14006ca60
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14006ca60
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14006c9cc
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14006ca8b
mov r9, r8
sub r8, r10
jbe 0x14006c9cc
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor edi, edi
cmp dword [r14 + r11*4], edx
seta dil
cmp dword [r14 + r11*4 + 4], edx
cmovb edi, ebx
cmp dil, 1
je 0x14006ca7f
movzx r10d, dil
cmp r10d, 0xff
jne 0x14006cacd
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x14006ca8b
jmp 0x14006c9cc
movzx edx, byte [r14 + r11*4 + 8]
cmp rdx, 0x11
ja 0x14006c9cc
mov r8d, 0x20003
bt r8, rdx
jae 0x14006c9cc
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x14006cafd
mov dword [rsp + 0x24], 0
movq xmm0, qword [rsp + 0xe0]
movzx eax, byte [rsp + 0xe9]
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd ecx, xmm1
or cl, byte [rsp + 0xe8]
or al, byte [rsp + 0xea]
or al, cl
xor edi, edi
or al, byte [rsp + 0xeb]
mov r12, qword [rsp + 0x328]
mov r15, qword [rsp + 0x110]
movabs r13, 0x8080808080808080
mov ebx, 0xff
lea r14, [0x1402a315c]
jne 0x14006b886
test rbp, rbp
je 0x14006d37a
lea rdi, [rsi + rbp]
xor r8d, r8d
xor eax, eax
mov rcx, rsi
movzx edx, byte [rcx]
test dl, dl
js 0x14006cb9e
inc rcx
jmp 0x14006cc2a
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xe0
jb 0x14006cbf3
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x14006cc03
movzx edx, byte [rcx + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and edx, 0x3f
or edx, r10d
or edx, r9d
cmp edx, 0x110000
je 0x14006d18c
add rcx, 4
jmp 0x14006cc11
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
jmp 0x14006cc11
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
cmp edx, 0x7f
jbe 0x14006cc2a
jmp 0x14006ccb8
inc rcx
cmp edx, 0x80
jae 0x14006ccb5
cmp rcx, rdi
je 0x14006d18c
movzx edx, byte [rcx]
test dl, dl
jns 0x14006cc1b
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14006cc8f
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14006cca2
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 0x14006d18c
add rcx, 4
jmp 0x14006cc1e
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14006cc1e
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
jmp 0x14006cc1e
xor r8d, r8d
mov r9d, r8d
imul r8d, edx, 0x9e3779b9
imul r10d, edx, 0x31415926
xor r8d, r10d
imul r8, r8, 0x39a
shr r8, 0x1f
and r8d, 0xfffffffe
lea r11, [0x1402a7524]
movzx r8d, word [r8 + r11]
add r8d, edx
imul r8d, r8d, 0x9e3779b9
xor r8d, r10d
imul r8, r8, 0x39a
shr r8, 0x1e
and r8d, 0xfffffffc
lea r10, [0x1402a7c58]
mov r8d, dword [r8 + r10]
mov r10d, r8d
shr r10d, 8
cmp r10d, edx
mov r10d, 0
cmovne r8d, r10d
cmp r9b, r8b
jbe 0x14006cd30
test r8b, r8b
jne case.0x14006cee4.3907
lea r9d, [rdx - 0x340]
cmp r9d, 4
ja 0x14006cd47
cmp r9d, 2
jne case.0x14006cee4.3907
cmp edx, 0xd56
jg 0x14006cdae
cmp edx, 0x9de
jg 0x14006cdef
cmp edx, 0x93b
jg 0x14006cf10
lea r9d, [rdx - 0x30f]
cmp r9d, 0x36
ja 0x14006cd88
movabs r10, 0x48020000001005
bt r10, r9
jb 0x14006cffd
lea r9d, [rdx - 0x374]
cmp r9d, 0x13
ja case.0x14006cee4.3908
mov r10d, 0x80401
bt r10d, r9d
jb case.0x14006cee4.3907
jmp case.0x14006cee4.3908
cmp edx, 0x11126
jg 0x14006ce56
cmp edx, 0x102d
jle 0x14006ce9c
cmp edx, 0x1f70
jg 0x14006cf62
cmp edx, 0x102e
je 0x14006cffd
cmp edx, 0x1b35
je 0x14006cffd
jmp case.0x14006cee4.3908
cmp edx, 0xbd6
jg 0x14006cee7
cmp edx, 0xbbd
jg 0x14006cff5
lea r9d, [rdx - 0xb3e]
cmp r9d, 0x19
ja 0x14006ce24
mov r10d, 0x3000001
bt r10d, r9d
jb 0x14006cffd
lea r9d, [rdx - 0xa33]
cmp r9d, 0x2b
ja 0x14006ce45
movabs r10, 0x80000000009
bt r10, r9
jb case.0x14006cee4.3907
cmp edx, 0x9df
jne case.0x14006cee4.3908
jmp case.0x14006cee4.3907
cmp edx, 0x114af
jle 0x14006cf39
lea r9d, [rdx - 0x114b0]
cmp r9d, 0xd
ja 0x14006ce7f
mov r10d, 0x2401
bt r10d, r9d
jb 0x14006cffd
cmp edx, 0x115af
je 0x14006cffd
cmp edx, 0x11930
je 0x14006cffd
jmp case.0x14006cee4.3908
lea r9d, [rdx - 0xdca]
cmp r9d, 0x15
ja 0x14006ceb9
mov r10d, 0x200021
bt r10d, r9d
jb 0x14006cffd
cmp edx, 0xd57
je 0x14006cffd
lea r9d, [rdx - 0xf43]
cmp r9d, 0x76
ja case.0x14006cee4.3908
lea r10, [0x1401f9490]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xcc1
jg 0x14006cfba
cmp edx, 0xbd7
je 0x14006cffd
cmp edx, 0xc56
je 0x14006cffd
jmp case.0x14006cee4.3908
cmp edx, 0x93c
je 0x14006cffd
cmp edx, 0x9be
je 0x14006cffd
cmp edx, 0x9d7
je 0x14006cffd
jmp case.0x14006cee4.3908
cmp edx, 0x11127
je 0x14006cffd
cmp edx, 0x1133e
je 0x14006cffd
cmp edx, 0x11357
je 0x14006cffd
jmp case.0x14006cee4.3908
cmp edx, 0xfa0f
jle 0x14006cfcc
cmp edx, 0x110ba
je 0x14006cffd
lea r9d, [rdx - 0xfa10]
cmp r9d, 0x12
ja 0x14006cf93
mov r10d, 0x50005
bt r10d, r9d
jb case.0x14006cee4.3907
lea r9d, [rdx - 0xfb1d]
cmp r9d, 0x21
ja case.0x14006cee4.3908
movabs r10, 0x200000005
bt r10, r9
jb case.0x14006cee4.3907
jmp case.0x14006cee4.3908
cmp edx, 0xcc2
je 0x14006cffd
cmp edx, 0xd3e
je 0x14006cffd
jmp case.0x14006cee4.3908
cmp edx, 0x2125
jg 0x14006d00d
lea r9d, [rdx - 0x1f71]
cmp r9d, 0x8c
ja case.0x14006cee4.3908
lea r10, [0x1401f966c]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xbbe
jne case.0x14006cee4.3908
mov al, 2
cmp rcx, rdi
jne 0x14006cb8f
jmp 0x14006d18c
lea r9d, [rdx - 0x2329]
cmp r9d, 2
jb case.0x14006cee4.3907
cmp edx, 0x2126
je case.0x14006cee4.3907
cmp edx, 0x2adc
je case.0x14006cee4.3907
movd xmm1, edx
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x1401f93d0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401f93e0]
pxor xmm3, xmm14
movdqa xmm4, xmm9
pcmpgtd xmm4, xmm3
pxor xmm2, xmm14
movdqa xmm3, xmm10
pcmpgtd xmm3, xmm2
packssdw xmm3, xmm4
pmovmskb r9d, xmm3
test r9d, r9d
jne case.0x14006cee4.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x1401f93c0]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x1401f93f0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1401f9400]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r9d, xmm4
test r9b, r9b
jne case.0x14006cee4.3907
lea r9d, [rdx - 0x1d1bb]
cmp r9d, 6
jb case.0x14006cee4.3907
lea r9d, [rdx - 0x2f800]
cmp r9d, 0x21e
jb case.0x14006cee4.3907
movd r9d, xmm1
cmp r9d, 0x2000
je case.0x14006cee4.3907
cmp r9d, 0x212a
je case.0x14006cee4.3907
cmp r9d, 0xfb40
je case.0x14006cee4.3907
movdqa xmm1, xmm0
paddd xmm1, xmmword [0x1401f9450]
paddd xmm0, xmm12
pxor xmm0, xmm14
movdqa xmm2, xmm13
pcmpgtd xmm2, xmm0
pxor xmm1, xmm14
movdqa xmm0, xmm11
pcmpgtd xmm0, xmm1
packssdw xmm2, xmm0
pmovmskb r10d, xmm2
test r10d, r10d
jne 0x14006cffd
lea r10d, [rdx - 0x11a8]
cmp r10d, 0x1b
jb 0x14006cffd
add edx, 0xffffcf67
cmp edx, 2
jb 0x14006cffd
cmp r9d, 0x330
jne 0x14006cfff
jmp 0x14006cffd
test al, al
je 0x14006d37a
movzx eax, al
cmp eax, 1
je case.0x14006cee4.3907
lea rax, [rsp + 0x200]
movups xmmword [rax], xmm6
movzx eax, word [rsp + 0x20e]
lea rcx, [rsp + 0x80]
mov word [rcx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x1fe]
movdqu xmmword [rcx + 0x1e], xmm0
movups xmmword [rcx], xmm6
mov byte [rcx + 0x10], 0
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x48], 0
mov word [rsp + 0x4c], 0
mov byte [rsp + 0x50], 0
mov dword [rsp + 0x54], 0
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x5c], 0
mov byte [rsp + 0x60], 0
mov dword [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rdi
mov dword [rsp + 0x98], 0
mov word [rsp + 0x9c], 0
mov dword [rsp + 0xb8], 0x110000
mov byte [rsp + 0xbc], 0
mov rbx, rsi
cmp rbx, rdi
je 0x14006d308
movzx r15d, byte [rbx]
test r15b, r15b
js 0x14006d26c
inc rbx
jmp 0x14006d2d2
mov eax, r15d
and eax, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp r15b, 0xdf
jbe 0x14006d2b8
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp r15b, 0xf0
jb 0x14006d2c6
movzx r15d, byte [rbx + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and r15d, 0x3f
or r15d, ecx
or r15d, eax
cmp r15d, 0x110000
je 0x14006d308
add rbx, 4
jmp 0x14006d2d2
add rbx, 2
shl eax, 6
or eax, edx
mov r15d, eax
jmp 0x14006d2d2
add rbx, 3
shl eax, 0xc
or ecx, eax
mov r15d, ecx
lea rcx, [rsp + 0x38]
call fcn.14006e1f0
mov r12b, 1
cmp eax, 0x110000
je 0x14006d31e
cmp eax, r15d
je 0x14006d255
jmp 0x14006d31e
mov rcx, r12
mov rdx, qword [rsp + 0x28]
call fcn.140089e50
mov r10, qword [rsp + 0x30]
jmp 0x14006c6d8
lea rcx, [rsp + 0x38]
call fcn.14006e1f0
cmp eax, 0x110000
setne r12b
neg r12b
cmp dword [rsp + 0x48], 0
je 0x14006d340
cmp qword [rsp + 0x58], 0
je 0x14006d340
mov r8, qword [rsp + 0x50]
mov rcx, qword [0x1402d9150]
xor edx, edx
call sub.kernel32.dll_HeapFree
cmp dword [rsp + 0x98], 0
je 0x14006d36b
cmp qword [rsp + 0xa8], 0
je 0x14006d36b
mov r8, qword [rsp + 0xa0]
mov rcx, qword [0x1402d9150]
xor edx, edx
call sub.kernel32.dll_HeapFree
test r12b, r12b
je 0x14006d37a
mov byte [rsp + 0xe5], 1
jmp 0x14006d395
mov rcx, rsi
mov rdx, rbp
mov r8, qword [rsp + 0x190]
lea r9, [rsp + 0xe0]
call fcn.14006df40
xor edi, edi
mov r12, qword [rsp + 0x328]
mov r15, qword [rsp + 0x110]
movabs r13, 0x8080808080808080
mov ebx, 0xff
lea r14, [0x1402a315c]
jmp 0x14006b886
mov rcx, qword [r12]
mov rax, qword [r12 + 0x10]
mov rdx, qword [rsp + 0x1e8]
test rdx, rdx
je 0x14006d3e9
sub rax, rdx
jbe 0x14006d3e7
cmp byte [rcx + rdx], 0xbf
jg 0x14006d3e9
ud2
jne 0x14006d3e3
add rcx, rdx
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x70], rax
mov word [rsp + 0x78], 1
test byte [rsp + 0x24], 1
jne 0x14006d44f
lea rsi, [rsp + 0x38]
mov rcx, rsi
call fcn.14006dcf0
test rax, rax
jne 0x14006d43d
jmp 0x14006dc39
lea rsi, [rsp + 0x38]
mov edi, 0xff
mov ebx, 0x62f8
mov rcx, rsi
call fcn.14006dcf0
test rax, rax
je 0x14006dc39
test rdx, rdx
je 0x14006d45e
movzx ecx, byte [rax]
test cl, cl
js 0x14006d481
lea r9, [rax + 1]
jmp 0x14006d4f0
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x14006d4d2
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x14006d4e2
movzx ecx, byte [rax + 3]
and r8d, 7
shl r8d, 0x12
shl r10d, 6
and ecx, 0x3f
or ecx, r10d
or ecx, r8d
cmp ecx, 0x110000
je 0x14006d45e
lea r9, [rax + 4]
jmp 0x14006d4f0
lea r9, [rax + 2]
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x14006d4f0
lea r9, [rax + 3]
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
add rdx, rax
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14006d50c
mov r10, r8
sub r8, r11
jbe 0x14006d56c
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
xor ebp, ebp
cmp dword [r14 + r13*4], ecx
seta bpl
cmp dword [r14 + r13*4 + 4], ecx
cmovb ebp, edi
cmp bpl, 1
je 0x14006d504
movzx r11d, bpl
cmp r11d, 0xff
jne 0x14006d54b
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x14006d50c
jmp 0x14006d56c
movzx ecx, byte [r14 + r13*4 + 8]
test rcx, rcx
je 0x14006d704
cmp ecx, 0x11
je 0x14006d704
cmp ecx, 9
jne 0x14006dc31
cmp r9, rdx
je 0x14006d67d
movzx ecx, byte [r9]
test cl, cl
js 0x14006d582
inc r9
jmp 0x14006d5f6
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [r9 + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x14006d5d8
movzx r10d, byte [r9 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x14006d5e8
movzx ecx, byte [r9 + 3]
and r8d, 7
shl r8d, 0x12
shl r10d, 6
and ecx, 0x3f
or ecx, r10d
or ecx, r8d
cmp ecx, 0x110000
je 0x14006d67d
add r9, 4
jmp 0x14006d5f6
add r9, 2
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x14006d5f6
add r9, 3
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14006d61c
mov r10, r8
sub r8, r11
jbe 0x14006d56c
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
xor ebp, ebp
cmp dword [r14 + r13*4], ecx
seta bpl
cmp dword [r14 + r13*4 + 4], ecx
cmovb ebp, edi
cmp bpl, 1
je 0x14006d610
movzx r11d, bpl
cmp r11d, 0xff
jne 0x14006d65e
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x14006d61c
jmp 0x14006d56c
movzx ecx, byte [r14 + r13*4 + 8]
cmp rcx, 0xe
ja 0x14006dc31
bt rbx, rcx
jb 0x14006d56c
jmp 0x14006dc31
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14006da49
dec rdx
cmp rdx, rax
jne 0x14006daa9
cmp ecx, 0x110000
je 0x14006d45e
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14006d6bc
mov rdx, rax
sub rax, r8
jbe 0x14006d8ce
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
xor r10d, r10d
cmp dword [r14 + r9*4], ecx
seta r10b
cmp dword [r14 + r9*4 + 4], ecx
cmovb r10d, edi
cmp r10b, 1
je 0x14006d6b0
movzx r8d, r10b
cmp r8d, 0xff
jne 0x14006d8c2
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x14006d6bc
jmp 0x14006d8ce
cmp r9, rdx
je 0x14006d835
xor r8d, r8d
xor ecx, ecx
movzx r10d, byte [r9]
test r10b, r10b
js 0x14006d720
inc r9
jmp 0x14006d796
mov r11d, r10d
and r11d, 0x1f
movzx r13d, byte [r9 + 1]
and r13d, 0x3f
cmp r10b, 0xdf
jbe 0x14006d778
movzx ebp, byte [r9 + 2]
shl r13d, 6
and ebp, 0x3f
or ebp, r13d
cmp r10b, 0xf0
jb 0x14006d788
movzx r10d, byte [r9 + 3]
and r11d, 7
shl r11d, 0x12
shl ebp, 6
and r10d, 0x3f
or r10d, ebp
or r10d, r11d
cmp r10d, 0x110000
je 0x14006d83a
add r9, 4
jmp 0x14006d796
add r9, 2
shl r11d, 6
or r11d, r13d
mov r10d, r11d
jmp 0x14006d796
add r9, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
mov r11d, 0x5a6
xor ebp, ebp
mov r13d, 0x5a6
jmp 0x14006d7b2
mov r13, r11
sub r11, rbp
jbe 0x14006dc31
shr r11, 1
add r11, rbp
lea r12, [r11 + r11*2]
xor r15d, r15d
cmp dword [r14 + r12*4], r10d
seta r15b
cmp dword [r14 + r12*4 + 4], r10d
cmovb r15d, edi
cmp r15b, 1
je 0x14006d7a6
movzx ebp, r15b
cmp ebp, 0xff
jne 0x14006d7f5
inc r11
mov rbp, r11
mov r11, r13
sub r11, rbp
ja 0x14006d7b2
jmp 0x14006dc31
movzx r10d, byte [r14 + r12*4 + 8]
cmp r10d, 1
je 0x14006d80b
cmp r10d, 5
jne 0x14006d810
mov cl, 1
jmp 0x14006d82a
mov r8b, 1
jmp 0x14006d82a
cmp r10, 0x11
ja 0x14006dc31
mov r11d, 0x260fb
bt r11, r10
jae 0x14006dc31
cmp r9, rdx
jne 0x14006d712
jmp 0x14006d83a
xor ecx, ecx
xor r8d, r8d
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x14006db3d
dec rdx
cmp rdx, rax
jne 0x14006db9b
cmp r9d, 0x110000
je 0x14006dc31
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x14006d87c
mov rdx, rax
sub rax, r10
jbe 0x14006d9b5
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
xor ebp, ebp
cmp dword [r14 + r11*4], r9d
seta bpl
cmp dword [r14 + r11*4 + 4], r9d
cmovb ebp, edi
cmp bpl, 1
je 0x14006d870
movzx r10d, bpl
cmp r10d, 0xff
jne 0x14006d9a9
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x14006d87c
jmp 0x14006d9b5
cmp byte [r14 + r9*4 + 8], 0xd
je 0x14006d45e
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14006d8e9
mov rdx, rax
sub rax, r8
jbe 0x14006d45e
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
xor r10d, r10d
cmp dword [r14 + r9*4], ecx
seta r10b
cmp dword [r14 + r9*4 + 4], ecx
cmovb r10d, edi
cmp r10b, 1
je 0x14006d8dd
movzx r8d, r10b
cmp r8d, 0xff
jne 0x14006d92d
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x14006d8e9
jmp 0x14006d45e
cmp byte [r14 + r9*4 + 8], 9
je 0x14006d45e
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14006d954
mov rdx, rax
sub rax, r8
jbe 0x14006dc31
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
xor r10d, r10d
cmp dword [r14 + r9*4], ecx
seta r10b
cmp dword [r14 + r9*4 + 4], ecx
cmovb r10d, edi
cmp r10b, 1
je 0x14006d948
movzx r8d, r10b
cmp r8d, 0xff
jne 0x14006d998
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x14006d954
jmp 0x14006dc31
cmp byte [r14 + r9*4 + 8], 5
je 0x14006d45e
jmp 0x14006dc31
cmp byte [r14 + r11*4 + 8], 0xd
je 0x14006dc31
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x14006d9d0
mov rdx, rax
sub rax, r10
jbe 0x14006dc31
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
xor ebp, ebp
cmp dword [r14 + r11*4], r9d
seta bpl
cmp dword [r14 + r11*4 + 4], r9d
cmovb ebp, edi
cmp bpl, 1
je 0x14006d9c4
movzx r10d, bpl
cmp r10d, 0xff
jne 0x14006da12
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x14006d9d0
jmp 0x14006dc31
movzx eax, byte [r14 + r11*4 + 8]
cmp rax, 0x11
ja 0x14006dc31
mov edx, 0x20023
bt rdx, rax
jae 0x14006dc31
test r8b, 1
je 0x14006d45e
and cl, 1
je 0x14006d45e
jmp 0x14006dc31
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14006da79
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jge 0x14006da83
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x14006da8b
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x14006da96
add rdx, 0xfffffffffffffffd
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp rdx, rax
je 0x14006d695
cmp ecx, 0x110000
je 0x14006d45e
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14006dad2
mov r9, r8
sub r8, r10
jbe 0x14006d8ce
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor ebp, ebp
cmp dword [r14 + r11*4], ecx
seta bpl
cmp dword [r14 + r11*4 + 4], ecx
cmovb ebp, edi
cmp bpl, 1
je 0x14006dac6
movzx r10d, bpl
cmp r10d, 0xff
jne 0x14006db14
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x14006dad2
jmp 0x14006d8ce
cmp byte [r14 + r11*4 + 8], 0xd
jne 0x14006d8ce
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14006da49
dec rdx
cmp rdx, rax
jne 0x14006daa9
jmp 0x14006d695
movzx r10d, byte [rdx - 2]
cmp r10b, 0xc0
jge 0x14006db6a
movzx r11d, byte [rdx - 3]
cmp r11b, 0xc0
jge 0x14006db74
movzx ebp, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and ebp, 7
shl ebp, 6
and r11d, 0x3f
or r11d, ebp
jmp 0x14006db7c
add rdx, 0xfffffffffffffffe
and r10d, 0x1f
jmp 0x14006db87
add rdx, 0xfffffffffffffffd
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp rdx, rax
je 0x14006d854
cmp r9d, 0x110000
je 0x14006dc31
mov r10d, 0x5a6
xor r13d, r13d
mov r11d, 0x5a6
jmp 0x14006dbc5
mov r11, r10
sub r10, r13
jbe 0x14006d9b5
shr r10, 1
add r10, r13
lea r12, [r10 + r10*2]
xor ebp, ebp
cmp dword [r14 + r12*4], r9d
seta bpl
cmp dword [r14 + r12*4 + 4], r9d
cmovb ebp, edi
cmp bpl, 1
je 0x14006dbb9
movzx ebp, bpl
cmp ebp, 0xff
jne 0x14006dc06
inc r10
mov r13, r10
mov r10, r11
sub r10, r13
ja 0x14006dbc5
jmp 0x14006d9b5
cmp byte [r14 + r12*4 + 8], 0xd
jne 0x14006d9b5
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x14006db3d
dec rdx
cmp rdx, rax
jne 0x14006db9b
jmp 0x14006d854
mov byte [rsp + 0xe2], 1
mov eax, dword [rsp + 0xe8]
mov rcx, qword [rsp + 0x1f0]
mov dword [rcx + 8], eax
mov rax, qword [rsp + 0xe0]
mov qword [rcx], rax
cmp qword [rsp + 0x120], 0
je 0x14006dc77
mov r8, qword [rsp + 0x118]
mov rcx, qword [0x1402d9150]
xor edx, edx
call sub.kernel32.dll_HeapFree
movaps xmm6, xmmword [rsp + 0x210]
movaps xmm7, xmmword [rsp + 0x220]
movaps xmm8, xmmword [rsp + 0x230]
movaps xmm9, xmmword [rsp + 0x240]
movaps xmm10, xmmword [rsp + 0x250]
movaps xmm11, xmmword [rsp + 0x260]
movaps xmm12, xmmword [rsp + 0x270]
movaps xmm13, xmmword [rsp + 0x280]
movaps xmm14, xmmword [rsp + 0x290]
movaps xmm15, xmmword [rsp + 0x2a0]
add rsp, 0x2b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2