Function at 0x140034d10
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov rdi, rcx
cmp byte [rdx + 0x4d], 0
jne 0x140034e10
mov rbx, rdx
mov r12, qword [rdx + 0x10]
test r12, r12
je 0x140034e10
movabs rax, 0x555555555555555
cmp r12, rax
ja 0x1400360a7
mov r13, qword [rbx + 8]
lea rax, [r12*8]
lea rdx, [rax + rax*2]
movzx eax, byte [0x14017a148]
xor ecx, ecx
mov qword [rsp + 0x28], rdx
call fcn.1400dbb10
test rax, rax
je 0x1400360a7
mov rsi, rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x38], rdi
xor ebp, ebp
mov qword [rsp + 0x30], r12
jmp 0x140034dd4
mov r15d, 1
xor edi, edi
dec r12
add r13, 0x18
mov rcx, r15
mov rdx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov qword [rsi + rbp], rdi
mov qword [rsi + rbp + 8], r15
mov qword [rsi + rbp + 0x10], rbx
add rbp, 0x18
test r12, r12
je 0x140034e26
cmp qword [rsp + 0x28], rbp
je 0x140034e26
mov r14, qword [r13 + 8]
mov rbx, qword [r13 + 0x10]
test rbx, rbx
je 0x140034da0
js 0x1400360a7
movzx eax, byte [0x14017a148]
xor ecx, ecx
mov rdx, rbx
call fcn.1400dbb10
test rax, rax
je 0x1400360a7
mov r15, rax
mov rdi, rbx
jmp 0x140034da8
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rdi], rax
jmp 0x140036093
mov rax, qword [rsp + 0x70]
mov rdi, qword [rax + 0x20]
mov r14, qword [rax + 0x28]
test r14, r14
mov qword [rsp + 0x40], r14
je 0x140034e79
mov rax, r14
shr rax, 0x3d
jne 0x1400360a7
lea r15, [r14*4]
movzx eax, byte [0x14017a148]
xor ecx, ecx
mov rdx, r15
call fcn.1400dbb10
mov r14, qword [rsp + 0x40]
test rax, rax
je 0x1400360a7
mov r12, rax
mov rbx, r14
jmp 0x140034e84
mov r12d, 4
xor r15d, r15d
xor ebx, ebx
mov rcx, r12
mov rdx, rdi
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rsi
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x128], r12
mov qword [rsp + 0x130], r14
mov rax, qword [rsp + 0x70]
movdqu xmm0, xmmword [rax + 0x30]
movdqu xmmword [rsp + 0x138], xmm0
movzx eax, byte [rax + 0x48]
mov byte [rsp + 0x148], al
test al, al
mov rdx, r14
mov rdi, r12
mov qword [rsp + 0x50], r12
je 0x140034f2f
lea rax, [rsp + 0x108]
mov qword [rsp + 0x90], rax
cmp rdx, 0x15
jae 0x140034f56
cmp rdx, 1
jbe 0x140035cb8
lea r9, [rsp + 0x90]
mov r8d, 1
mov rcx, rdi
call fcn.14002b010
jmp 0x140035cb8
cmp rdx, 0x15
jae 0x140035645
cmp rdx, 1
jbe 0x140035cb8
mov r8d, 1
mov rcx, rdi
call fcn.14002af80
jmp 0x140035cb8
movabs rax, 0x7ffffffffffffff8
add rdx, rdx
add rax, 4
and rdx, rax
movzx eax, byte [0x14017a148]
xor ecx, ecx
call fcn.1400dbb10
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1400360a7
movzx eax, byte [0x14017a148]
mov edx, 0x100
xor ecx, ecx
call fcn.1400dbb10
test rax, rax
je 0x1400360a7
mov rsi, rax
lea rax, [rdi - 0x10]
mov qword [rsp + 0xe0], rax
lea rax, [rdi + 0x10]
mov qword [rsp + 0x100], rax
lea rax, [rdi - 4]
mov qword [rsp + 0x80], rax
mov eax, 0x10
mov qword [rsp + 0x68], rax
xor r14d, r14d
xor r15d, r15d
mov r10, qword [rsp + 0x40]
jmp 0x140034ff4
mov r15d, 1
mov r14, qword [rsp + 0x78]
cmp r14, r10
jae 0x140035c94
mov rdx, r10
sub rdx, r14
lea rcx, [rdi + r14*4]
cmp rdx, 2
jae 0x140035430
mov r8, rdx
mov rbx, rsi
lea rax, [r8 + r14]
mov r10, qword [rsp + 0x40]
mov rsi, rax
sub rsi, r14
jb 0x1400360a7
cmp rax, r10
ja 0x1400360a7
jae 0x140035078
cmp r8, 0xa
jae 0x140035078
cmp r14, 0xfffffffffffffff6
jae 0x1400360a7
lea rdi, [r14 + 0xa]
cmp rdi, r10
cmovae rdi, r10
cmp rax, r14
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, r14
mov rdx, rsi
lea r9, [rsp + 0x90]
call fcn.14002b010
mov r10, qword [rsp + 0x40]
mov rax, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x78], rax
cmp r15, qword [rsp + 0x68]
jne 0x1400350de
mov rdx, r15
shl rdx, 5
movzx eax, byte [0x14017a148]
xor ecx, ecx
call fcn.1400dbb10
test rax, rax
je 0x1400360a7
mov rdi, rax
lea rax, [r15 + r15]
mov qword [rsp + 0x68], rax
mov r8, r15
shl r8, 4
mov rcx, rdi
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x14017a0c0]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
mov rbx, rdi
mov r10, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
mov rax, r15
shl rax, 4
mov qword [rbx + rax], rsi
mov qword [rbx + rax + 8], r14
inc r15
mov rax, r15
cmp r15, 2
mov rsi, rbx
mov qword [rsp + 0x88], rbx
jae 0x140035186
jmp 0x140034fe6
mov rdi, rsi
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x88]
add r14, rsi
sub r8, rdx
mov rcx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xe8]
add rax, qword [rsp + 0x30]
mov qword [r14], rax
mov rax, qword [rsp + 0x58]
mov qword [r14 + 8], rax
lea rdx, [r13 + 0x10]
mov rax, qword [rsp + 0xf8]
not rax
mov r8, qword [rsp + 0x60]
add r8, rax
shl r8, 4
mov rcx, r13
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0xf0]
cmp rax, 1
mov r10, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
jbe 0x140034fe0
mov r15, rax
lea r11, [rax - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [rsi + rcx]
mov rcx, qword [rsi + rcx + 8]
add rcx, rax
cmp rcx, r10
je 0x140035200
mov rdx, r15
shl rdx, 4
mov r8, qword [rdx + rsi - 0x20]
cmp r8, rax
jbe 0x140035200
cmp r15, 2
je 0x140035557
lea r13, [r15 - 3]
mov rcx, r13
shl rcx, 4
mov rcx, qword [rsi + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140035215
cmp r15, 3
jbe 0x14003563a
add r8, rcx
cmp qword [rdx + rsi - 0x40], r8
jbe 0x140035215
jmp 0x140034fe6
cmp r15, 2
je 0x14003521a
lea r13, [r15 - 3]
mov rcx, r13
shl rcx, 4
mov rcx, qword [rsi + rcx]
cmp rcx, rax
jb 0x14003521e
lea r13, [r15 - 2]
cmp r13, r15
jae 0x1400360a7
lea r14, [r13 + 1]
mov qword [rsp + 0x60], r15
cmp r14, r15
jae 0x1400360a7
mov qword [rsp + 0xf8], r13
shl r13, 4
mov rax, qword [rsi + r13 + 8]
shl r14, 4
mov rcx, qword [rsi + r14]
mov rbx, qword [rsi + r14 + 8]
add rbx, rcx
mov r12, rbx
sub r12, rax
jb 0x1400360a7
cmp rbx, r10
ja 0x1400360a7
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xf0], r11
add r13, rsi
mov rcx, qword [r13]
mov qword [rsp + 0x58], rax
lea rdi, [rdi + rax*4]
lea rsi, [rdi + rcx*4]
mov r15, r12
sub r15, rcx
cmp r15, rcx
mov qword [rsp + 0x30], rcx
jae 0x140035370
lea r8, [r15*4]
mov r12, qword [rsp + 0x28]
mov rcx, r12
mov rdx, rsi
call sub.msvcrt.dll_memcpy
lea r8, [r12 + r15*4]
cmp qword [rsp + 0x30], 0
jle 0x140035110
test r15, r15
jle 0x140035110
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
lea rcx, [rcx + rbx*4]
nop dword [rax]
mov edx, dword [r8 - 4]
mov r10, qword [rax + 0x10]
cmp r10, rdx
jbe 0x1400360a7
mov r9d, dword [rsi - 4]
cmp r10, r9
jbe 0x1400360a7
mov r10, qword [rax + 8]
lea rdx, [rdx + rdx*2]
mov rdx, qword [r10 + rdx*8 + 0x10]
lea r9, [r9 + r9*2]
mov r9, qword [r10 + r9*8 + 0x10]
xor r10d, r10d
xor r11d, r11d
cmp rdx, r9
setbe r10b
seta r11b
shl r11d, 2
sub rsi, r11
shl r10d, 2
sub r8, r10
cmp rdx, r9
mov rdx, r8
cmova rdx, rsi
mov edx, dword [rdx]
mov dword [rcx], edx
cmp rsi, rdi
jbe 0x140035110
add rcx, 0xfffffffffffffffc
cmp r8, qword [rsp + 0x28]
ja 0x1400352f0
jmp 0x140035110
lea r8, [rcx*4]
mov r15, qword [rsp + 0x28]
mov rcx, r15
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x30]
lea r8, [r15 + rax*4]
test rax, rax
jle 0x140035113
cmp r12, rax
jle 0x140035113
mov rax, qword [rsp + 0x50]
lea rax, [rax + rbx*4]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x28]
nop dword [rax]
mov r9d, dword [rsi]
mov r10, qword [rcx + 0x10]
cmp r10, r9
jbe 0x1400360a7
mov r11d, dword [rdx]
cmp r10, r11
jbe 0x1400360a7
mov rbx, qword [rcx + 8]
lea r10, [r9 + r9*2]
mov r15, qword [rbx + r10*8 + 0x10]
lea r12, [r11 + r11*2]
xor ebp, ebp
xor r10d, r10d
cmp r15, qword [rbx + r12*8 + 0x10]
setbe bpl
seta bl
cmovbe r9d, r11d
mov dword [rdi], r9d
add rdi, 4
lea rdx, [rdx + rbp*4]
cmp rdx, r8
jae 0x140035118
mov r10b, bl
lea rsi, [rsi + r10*4]
cmp rsi, rax
jb 0x1400353c0
jmp 0x140035118
mov eax, dword [rcx + 4]
mov r8, qword [rsp + 0x90]
mov r9, qword [r8 + 0x10]
cmp r9, rax
jbe 0x1400360a7
mov r11d, dword [rcx]
cmp r9, r11
jbe 0x1400360a7
mov r10, qword [r8 + 8]
lea rax, [rax + rax*2]
mov rax, qword [r10 + rax*8 + 0x10]
lea r8, [r11 + r11*2]
cmp rax, qword [r10 + r8*8 + 0x10]
jbe 0x1400354f0
mov eax, 2
cmp rdx, 2
je 0x1400354ba
nop dword [rax + rax]
mov r8d, dword [rcx + rax*4]
cmp r9, r8
jbe 0x1400360a7
mov r11d, dword [rcx + rax*4 - 4]
cmp r9, r11
jbe 0x1400360a7
lea r8, [r8 + r8*2]
mov r8, qword [r10 + r8*8 + 0x10]
lea r11, [r11 + r11*2]
cmp r8, qword [r10 + r11*8 + 0x10]
jbe 0x1400354ba
inc rax
cmp rdx, rax
jne 0x140035480
mov rax, rdx
mov rdx, rax
add rdx, r14
jb 0x1400360a7
mov r10, qword [rsp + 0x40]
cmp rdx, r10
ja 0x1400360a7
mov r12, rdx
mov r8d, 1
cmp rax, 2
jae 0x140035540
mov rbx, rsi
mov rax, r12
jmp 0x140035017
mov r8d, 2
cmp rdx, 2
je 0x14003500b
mov eax, dword [rcx + r8*4]
cmp r9, rax
jbe 0x1400360a7
mov r11d, dword [rcx + r8*4 - 4]
cmp r9, r11
jbe 0x1400360a7
lea rax, [rax + rax*2]
mov rax, qword [r10 + rax*8 + 0x10]
lea r11, [r11 + r11*2]
cmp rax, qword [r10 + r11*8 + 0x10]
ja 0x14003500b
inc r8
cmp rdx, r8
jne 0x140035500
jmp 0x140035008
mov rdx, rax
shr rdx, 1
mov rbx, rsi
cmp rax, 0x10
jae 0x140035562
xor r8d, r8d
jmp 0x1400355e6
mov r15d, 2
jmp 0x140034fe6
mov r8, rdx
movabs r9, 0x7ffffffffffffff8
and r8, r9
mov r9, qword [rsp + 0xe0]
lea r9, [r9 + r12*4]
mov r10, qword [rsp + 0x100]
lea r10, [r10 + r14*4]
xor r11d, r11d
nop dword [rax]
movdqu xmm0, xmmword [r10 + r11*4 - 0x10]
movdqu xmm1, xmmword [r10 + r11*4]
movdqu xmm2, xmmword [r9 - 0x10]
movdqu xmm3, xmmword [r9]
pshufd xmm3, xmm3, 0x1b
pshufd xmm2, xmm2, 0x1b
movdqu xmmword [r10 + r11*4 - 0x10], xmm3
movdqu xmmword [r10 + r11*4], xmm2
pshufd xmm0, xmm0, 0x1b
movdqu xmmword [r9], xmm0
pshufd xmm0, xmm1, 0x1b
movdqu xmmword [r9 - 0x10], xmm0
add r11, 8
add r9, 0xffffffffffffffe0
cmp r8, r11
jne 0x140035590
cmp rdx, r8
je 0x14003562a
neg rdx
mov r9, r8
neg r9
shl r8, 2
lea r8, [r8 + r14*4]
add r8, rdi
mov r10, qword [rsp + 0x80]
lea r10, [r10 + r12*4]
nop word cs:[rax + rax]
mov r11d, dword [r8]
mov esi, dword [r10 + r9*4]
mov dword [r8], esi
mov dword [r10 + r9*4], r11d
dec r9
add r8, 4
cmp rdx, r9
jne 0x140035610
mov r8, rax
mov r10, qword [rsp + 0x40]
mov rax, r12
jmp 0x140035017
mov r15d, 3
jmp 0x140034fe6
movabs rax, 0x7ffffffffffffff8
add rdx, rdx
add rax, 4
and rdx, rax
movzx eax, byte [0x14017a148]
xor ecx, ecx
call fcn.1400dbb10
test rax, rax
je 0x1400360a7
mov r15, rax
movzx eax, byte [0x14017a148]
mov edx, 0x100
xor ecx, ecx
call fcn.1400dbb10
test rax, rax
je 0x1400360a7
mov rbp, rax
lea rax, [rdi - 0x10]
mov qword [rsp + 0x68], rax
lea rax, [rdi + 0x10]
mov qword [rsp + 0xe0], rax
lea rax, [rdi - 4]
mov qword [rsp + 0x88], rax
mov eax, 0x10
mov qword [rsp + 0x78], rax
xor ebx, ebx
xor r12d, r12d
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x58], r15
jmp 0x1400356e7
mov r12d, 1
mov rbx, qword [rsp + 0x80]
cmp rbx, r10
jae 0x140035c75
mov rdx, r10
sub rdx, rbx
lea rcx, [rdi + rbx*4]
cmp rdx, 2
jae 0x140035ad0
mov r8, rdx
lea rax, [r8 + rbx]
mov rsi, rax
sub rsi, rbx
jb 0x1400360a7
cmp rax, r10
ja 0x1400360a7
jae 0x14003575b
cmp r8, 0xa
jae 0x14003575b
cmp rbx, 0xfffffffffffffff6
jae 0x1400360a7
lea rdi, [rbx + 0xa]
cmp rdi, r10
cmovae rdi, r10
cmp rax, rbx
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, rbx
mov rdx, rsi
call fcn.14002af80
mov r10, qword [rsp + 0x40]
mov rax, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x80], rax
cmp r12, qword [rsp + 0x78]
jne 0x1400357c4
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x14017a148]
xor ecx, ecx
call fcn.1400dbb10
test rax, rax
je 0x1400360a7
mov rdi, rax
lea rax, [r12 + r12]
mov qword [rsp + 0x78], rax
mov r8, r12
shl r8, 4
mov rcx, rdi
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x14017a0c0]
xor edx, edx
mov r8, rbp
call sub.KERNEL32.dll_HeapFree
mov rbp, rdi
mov r10, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
mov rax, r12
shl rax, 4
mov qword [rbp + rax], rsi
mov qword [rbp + rax + 8], rbx
inc r12
mov rax, r12
cmp r12, 2
mov qword [rsp + 0xe8], rbp
jae 0x140035858
jmp 0x1400356d6
mov rdx, r15
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0xe8]
add r14, rbp
sub r8, rdx
mov rcx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xf0]
add rax, r13
mov qword [r14], rax
mov rax, qword [rsp + 0xf8]
mov qword [r14 + 8], rax
lea rdx, [rsi + 0x10]
not rbx
add r12, rbx
shl r12, 4
mov rcx, rsi
mov r8, r12
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x60]
cmp rax, 1
mov r10, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
jbe 0x1400356d0
mov r12, rax
lea r11, [rax - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [rbp + rcx]
mov rcx, qword [rbp + rcx + 8]
add rcx, rax
cmp rcx, r10
je 0x1400358d0
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x1400358d0
cmp r12, 2
je 0x140035b81
lea rsi, [r12 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x1400358e7
cmp r12, 3
jbe 0x140035c6a
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x1400358e7
jmp 0x1400356d6
cmp r12, 2
je 0x1400358ec
lea rsi, [r12 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x1400358f1
lea rsi, [r12 - 2]
cmp rsi, r12
jae 0x1400360a7
lea r14, [rsi + 1]
cmp r14, r12
jae 0x1400360a7
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x30], rsi
shl rsi, 4
mov rax, qword [rbp + rsi + 8]
shl r14, 4
mov rcx, qword [rbp + r14]
mov rbx, qword [rbp + r14 + 8]
add rbx, rcx
mov r12, rbx
sub r12, rax
jb 0x1400360a7
cmp rbx, r10
ja 0x1400360a7
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0x60], r11
add rsi, rbp
mov r13, qword [rsi]
mov qword [rsp + 0xf8], rax
lea rdi, [rdi + rax*4]
lea rbp, [rdi + r13*4]
mov r15, r12
sub r15, r13
cmp r15, r13
jae 0x140035a20
lea r8, [r15*4]
mov r12, qword [rsp + 0x58]
mov rcx, r12
mov rdx, rbp
call sub.msvcrt.dll_memcpy
lea r8, [r12 + r15*4]
mov rcx, r13
test r13, r13
jle 0x140035aa0
test r15, r15
jle 0x140035aa0
mov rax, qword [rsp + 0x88]
lea rax, [rax + rbx*4]
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
mov r13, rcx
nop word cs:[rax + rax]
mov ecx, dword [r8 - 4]
mov edx, dword [rbp - 4]
cmp ecx, edx
mov r9d, 0
sbb r9, r9
cmp ecx, edx
mov r10d, 0
adc r10, 0xffffffffffffffff
cmp ecx, edx
lea rbp, [rbp + r9*4]
lea r8, [r8 + r10*4]
mov rcx, r8
cmovb rcx, rbp
mov ecx, dword [rcx]
mov dword [rax], ecx
cmp rbp, rdi
jbe 0x140035a12
add rax, 0xfffffffffffffffc
cmp r8, r15
ja 0x1400359d0
mov rdi, rbp
mov rdx, r15
jmp 0x1400357f6
lea r8, [r13*4]
mov r15, qword [rsp + 0x58]
mov rcx, r15
mov rdx, rdi
call sub.msvcrt.dll_memcpy
lea r8, [r15 + r13*4]
test r13, r13
jle 0x140035abd
cmp r12, r13
mov r12, qword [rsp + 0x28]
jle 0x1400357ee
mov rax, qword [rsp + 0x50]
lea rax, [rax + rbx*4]
mov rdx, r15
nop dword [rax + rax]
mov r10d, dword [rbp]
mov r11d, dword [rdx]
xor ebx, ebx
xor ecx, ecx
cmp r10d, r11d
setae bl
setb r9b
cmovb r11d, r10d
mov dword [rdi], r11d
add rdi, 4
lea rdx, [rdx + rbx*4]
cmp rdx, r8
jae 0x1400357f1
mov cl, r9b
lea rbp, [rbp + rcx*4]
cmp rbp, rax
jb 0x140035a60
jmp 0x1400357f1
mov rdi, rbp
mov r15, qword [rsp + 0x58]
mov rdx, r15
mov r12, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
mov r13, rcx
jmp 0x1400357f6
mov rdx, r15
mov r12, qword [rsp + 0x28]
jmp 0x1400357f1
mov r9d, dword [rcx + 4]
cmp r9d, dword [rcx]
jae 0x140035b40
mov eax, 2
cmp rdx, 2
je 0x140035b07
nop word cs:[rax + rax]
mov r8d, r9d
mov r9d, dword [rcx + rax*4]
cmp r9d, r8d
jae 0x140035b07
inc rax
cmp rdx, rax
jne 0x140035af0
mov rax, rdx
mov rdx, rax
add rdx, rbx
jb 0x1400360a7
cmp rdx, r10
ja 0x1400360a7
mov r14, rdx
mov r8d, 1
cmp rax, 2
jae 0x140035b6d
mov rax, r14
jmp 0x140035702
mov r8d, 2
cmp rdx, 2
je 0x1400356fe
mov eax, r9d
mov r9d, dword [rcx + r8*4]
cmp r9d, eax
jb 0x1400356fe
inc r8
cmp rdx, r8
jne 0x140035b50
jmp 0x1400356fb
mov rdx, rax
shr rdx, 1
cmp rax, 0x10
jae 0x140035b8c
xor r8d, r8d
jmp 0x140035c16
mov r12d, 2
jmp 0x1400356d6
mov r8, rdx
movabs r9, 0x7ffffffffffffff8
and r8, r9
mov r9, qword [rsp + 0x68]
lea r9, [r9 + r14*4]
mov r10, qword [rsp + 0xe0]
lea r10, [r10 + rbx*4]
xor r11d, r11d
nop word cs:[rax + rax]
movdqu xmm0, xmmword [r10 + r11*4 - 0x10]
movdqu xmm1, xmmword [r10 + r11*4]
movdqu xmm2, xmmword [r9 - 0x10]
movdqu xmm3, xmmword [r9]
pshufd xmm3, xmm3, 0x1b
pshufd xmm2, xmm2, 0x1b
movdqu xmmword [r10 + r11*4 - 0x10], xmm3
movdqu xmmword [r10 + r11*4], xmm2
pshufd xmm0, xmm0, 0x1b
movdqu xmmword [r9], xmm0
pshufd xmm0, xmm1, 0x1b
movdqu xmmword [r9 - 0x10], xmm0
add r11, 8
add r9, 0xffffffffffffffe0
cmp r8, r11
jne 0x140035bc0
cmp rdx, r8
je 0x140035c5a
neg rdx
mov r9, r8
neg r9
shl r8, 2
lea r8, [r8 + rbx*4]
add r8, rdi
mov r10, qword [rsp + 0x88]
lea r10, [r10 + r14*4]
nop word cs:[rax + rax]
mov r11d, dword [r8]
mov esi, dword [r10 + r9*4]
mov dword [r8], esi
mov dword [r10 + r9*4], r11d
dec r9
add r8, 4
cmp rdx, r9
jne 0x140035c40
mov r8, rax
mov r10, qword [rsp + 0x40]
mov rax, r14
jmp 0x140035702
mov r12d, 3
jmp 0x1400356d6
mov rcx, qword [0x14017a0c0]
xor edx, edx
mov r8, rbp
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x14017a0c0]
xor edx, edx
mov r8, r15
jmp 0x140035cb3
mov rcx, qword [0x14017a0c0]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x14017a0c0]
xor edx, edx
mov r8, qword [rsp + 0x28]
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0xd0], rax
movdqu xmm0, xmmword [rsp + 0x108]
movdqu xmm1, xmmword [rsp + 0x118]
movdqu xmm2, xmmword [rsp + 0x128]
movdqu xmm3, xmmword [rsp + 0x138]
movdqa xmmword [rsp + 0xc0], xmm3
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0xa0], xmm1
movdqa xmmword [rsp + 0x90], xmm0
movzx eax, byte [0x14017a148]
mov edx, 0x58
xor ecx, ecx
call fcn.1400dbb10
test rax, rax
je 0x1400360a7
mov rbx, rax
mov qword [rax], 1
mov qword [rax + 8], 1
movdqa xmm0, xmmword [rsp + 0x90]
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm2, xmmword [rsp + 0xb0]
movdqa xmm3, xmmword [rsp + 0xc0]
movdqu xmmword [rax + 0x10], xmm0
movdqu xmmword [rax + 0x20], xmm1
movdqu xmmword [rax + 0x30], xmm2
movdqu xmmword [rax + 0x40], xmm3
mov rax, qword [rsp + 0xd0]
mov qword [rbx + 0x50], rax
cmp qword [rbx + 0x20], 0
je 0x1400360a7
mov r8, qword [rbx + 0x40]
mov rsi, r8
cmp r8, 1
je 0x140035de8
test r8, r8
je 0x1400360a7
lea rcx, [r8 - 1]
lea rdx, [r8 - 2]
mov eax, ecx
and eax, 7
cmp rdx, 7
jae 0x140035dbd
mov esi, 1
jmp 0x140035dda
and rcx, 0xfffffffffffffff8
mov esi, 1
nop word cs:[rax + rax]
shl rsi, 8
add rcx, 0xfffffffffffffff8
jne 0x140035dd0
test rax, rax
je 0x140035de8
nop
add rsi, rsi
dec rax
jne 0x140035de0
mov qword [rsp + 0x28], r8
lock inc qword [rbx]
jle 0x1400360a7
movzx eax, byte [0x14017a148]
mov edx, 0x600
xor ecx, ecx
call fcn.1400dbb10
test rax, rax
je 0x1400360a7
mov r14, rax
mov qword [rsp + 0x60], rsi
xor eax, eax
mov r10, qword [rsp + 0x28]
nop word cs:[rax + rax]
mov qword [r14 + rax], 0
mov qword [r14 + rax + 8], 8
mov qword [r14 + rax + 0x10], 0
add rax, 0x18
cmp rax, 0x5e8
jne 0x140035e30
mov qword [r14 + rax], 0
mov qword [r14 + rax + 8], 8
mov qword [r14 + rax + 0x10], 0
lea r12, [r10 - 1]
mov r13d, r10d
and r13d, 7
mov rax, r10
and rax, 0xfffffffffffffff8
mov qword [rsp + 0x30], rax
xor edi, edi
jmp 0x140035ea7
inc rdi
mov rax, qword [rsi + 8]
shl rdx, 4
mov qword [rax + rdx], r15
mov dword [rax + rdx + 8], ebp
inc qword [rsi + 0x10]
mov rsi, qword [rbx + 0x20]
cmp rdi, rsi
jae 0x140035fb3
cmp rdi, qword [rbx + 0x38]
jae 0x1400360a7
mov rax, qword [rbx + 0x30]
mov ebp, dword [rax + rdi*4]
cmp rsi, rbp
jbe 0x1400360a7
mov rax, qword [rbx + 0x18]
lea rcx, [rbp*2]
add rcx, rbp
cmp r10, qword [rax + rcx*8 + 0x10]
ja 0x1400360a7
mov rax, qword [rax + rcx*8 + 8]
cmp r12, 7
jae 0x140035f00
xor r15d, r15d
jmp 0x140035f68
mov rcx, qword [rsp + 0x30]
xor r15d, r15d
nop dword [rax + rax]
movzx edx, byte [rax]
movzx r8d, byte [rax + 1]
add rdx, rdx
lea rdx, [rdx + r15*4]
add rdx, r8
movzx r8d, byte [rax + 2]
movzx r9d, byte [rax + 3]
add r8, r8
lea rdx, [r8 + rdx*4]
add rdx, r9
movzx r8d, byte [rax + 4]
movzx r9d, byte [rax + 5]
add r8, r8
lea rdx, [r8 + rdx*4]
add rdx, r9
movzx r8d, byte [rax + 6]
movzx r9d, byte [rax + 7]
add rax, 8
add r8, r8
lea r15, [r8 + rdx*4]
add r15, r9
add rcx, 0xfffffffffffffff8
jne 0x140035f10
test r13, r13
je 0x140035f80
xor ecx, ecx
nop
movzx edx, byte [rax + rcx]
lea r15, [rdx + r15*2]
inc rcx
cmp r13, rcx
jne 0x140035f70
mov eax, r15d
and eax, 0x3f
lea rax, [rax + rax*2]
lea rsi, [r14 + rax*8]
mov rdx, qword [r14 + rax*8 + 0x10]
cmp rdx, qword [r14 + rax*8]
jne 0x140035e90
mov rcx, rsi
call fcn.14004d8d0
mov r10, qword [rsp + 0x28]
mov rdx, qword [rsi + 0x10]
jmp 0x140035e90
mov rax, qword [rsp + 0x70]
test byte [rax + 0x4a], 1
jne 0x14003604a
lock inc qword [rbx]
jle 0x1400360a7
mov rax, qword [rsp + 0x70]
movzx r15d, byte [rax + 0x4c]
movzx ebp, byte [rax + 0x49]
movzx r12d, byte [rax + 0x4b]
mov qword [rsp + 0x48], rbx
test bpl, bpl
je 0x1400360a9
cmp rsi, 0x40
jbe 0x1400360a9
mov qword [rsp + 0x90], 0
lock dec qword [rbx]
mov rsi, qword [rsp + 0x38]
jne 0x14003601d
mov rcx, qword [rsp + 0x48]
call fcn.14002e4b0
mov r10, qword [rsp + 0x28]
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x140036106
movdqu xmm0, xmmword [rsp + 0x98]
movdqa xmmword [rsp + 0x150], xmm0
mov rcx, qword [rsp + 0xa8]
jmp 0x140036053
xor eax, eax
xor ecx, ecx
mov rsi, qword [rsp + 0x38]
mov qword [rsi], 0x40
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], 0x40
mov qword [rsi + 0x18], rbx
mov qword [rsi + 0x20], r10
mov rdx, qword [rsp + 0x60]
mov qword [rsi + 0x28], rdx
mov qword [rsi + 0x30], rbx
mov qword [rsi + 0x38], rax
movaps xmm0, xmmword [rsp + 0x150]
movups xmmword [rsi + 0x40], xmm0
mov qword [rsi + 0x50], rcx
mov qword [rsi + 0x58], rcx
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
mov r8, qword [rbx + 0x40]
cmp r8, 4
mov edi, 4
cmovb rdi, r8
mov r13, qword [0x14017a140]
test r13, r13
je 0x140036190
test r13w, r13w
jns 0x1400361ad
test r15d, r15d
je 0x140036181
cmp r15d, 2
je 0x1400361d3
xor ecx, ecx
cmp rsi, 0x21
setae cl
xor eax, eax
test r12b, r12b
setne al
cmp r12b, 2
cmove eax, ecx
mov cl, 1
jmp 0x14003623b
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rsi], rax
lock dec qword [rbx]
jne 0x140036125
mov rcx, rbx
call fcn.14002e4b0
mov esi, 8
jmp 0x14003613d
add rsi, 0x18
cmp rsi, 0x608
je 0x140036159
cmp qword [r14 + rsi - 8], 0
je 0x140036130
mov r8, qword [r14 + rsi]
mov rcx, qword [0x14017a0c0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140036130
mov rcx, qword [0x14017a0c0]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
lock dec qword [rbx]
jne 0x140036093
mov rcx, rbx
call fcn.14002e4b0
jmp 0x140036093
test r12b, 1
jne 0x140035ff7
jmp 0x140036237
mov r13, r8
call fcn.1400e8340
mov r8, r13
mov r10, qword [rsp + 0x28]
mov r13, rax
test r13w, r13w
js 0x1400360d4
mov rax, qword [0x14017a140]
test rax, rax
je 0x140036209
test r15d, r15d
je 0x140036222
cmp r15d, 2
jne 0x140035ff7
test eax, 0x200
je 0x140035ff7
movzx ecx, r13w
shr ecx, 0xf
cmp r12b, 2
jne 0x1400361f2
test r13w, r13w
sets dl
cmp rsi, 0x21
setae al
and al, dl
jmp 0x14003623b
test r12b, r12b
setne al
test r13w, r13w
js 0x14003623b
test r12b, r12b
jne 0x140035ff7
jmp 0x14003623b
mov qword [rsp + 0x30], r8
call fcn.1400e8340
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x28]
test r15d, r15d
jne 0x1400361be
test eax, 0x200
je 0x140035ff7
and r12b, 1
jne 0x140035ff7
xor eax, eax
xor ecx, ecx
test bpl, bpl
je 0x140036253
cmp r8, 1
jne 0x140036253
cmp qword [rbx + 0x20], 0x11
jae 0x140035ff7
jmp case.0x14003626e.1
dec rdi
cmp rdi, 3
ja case.default.0x14003626e
lea rdx, [0x14010be70]
movsxd r8, dword [rdx + rdi*4]
add r8, rdx
jmp r8
test cl, cl
je 0x1400362b2
test al, al
je 0x14003636c
mov rax, qword [0x14017a140]
test rax, rax
je 0x14003641d
test ax, ax
mov rsi, qword [rsp + 0x38]
jns 0x14003638a
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14001a770
jmp 0x140036464
mov rax, qword [0x14017a140]
test rax, rax
je 0x1400363fe
test eax, 0x200
mov rsi, qword [rsp + 0x38]
je 0x14003638a
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000bfa0
jmp 0x140036464
test cl, cl
je 0x14003639b
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x1400363e4
call fcn.14001c840
jmp 0x1400363f7
test cl, cl
je 0x1400363af
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x1400363eb
call fcn.14001d9f0
jmp 0x1400363f7
test cl, cl
je 0x1400363c3
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x1400363f2
call fcn.14001b7d0
jmp 0x1400363f7
mov qword [rsp + 0x90], 0
jmp 0x1400363da
mov rax, qword [0x14017a140]
test rax, rax
je 0x14003643a
test ax, ax
mov rsi, qword [rsp + 0x38]
js 0x140036452
mov qword [rsp + 0x90], 0
jmp 0x140036469
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000dd00
jmp 0x1400363d5
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000ef80
jmp 0x1400363d5
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000cd40
mov r10, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x38]
jmp 0x140036469
call fcn.140014b80
jmp 0x1400363f7
call fcn.140017610
jmp 0x1400363f7
call fcn.140012620
mov rsi, qword [rsp + 0x38]
jmp 0x140036464
call fcn.1400e8340
mov r10, qword [rsp + 0x28]
test eax, 0x200
mov rsi, qword [rsp + 0x38]
je 0x14003638a
jmp 0x1400362d2
call fcn.1400e8340
mov r10, qword [rsp + 0x28]
test ax, ax
mov rsi, qword [rsp + 0x38]
jns 0x14003638a
jmp 0x14003629b
call fcn.1400e8340
mov r10, qword [rsp + 0x28]
test ax, ax
mov rsi, qword [rsp + 0x38]
jns 0x14003638a
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.140010560
mov r10, qword [rsp + 0x28]
lock dec qword [rbx]
je 0x14003600e
jmp 0x14003601d