Function at 0x140003040
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x328
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], r9
lea r12, [rsp + 0x38]
mov rcx, r12
call fcn.140026fe0
mov ebp, eax
mov rcx, r12
call fcn.140026fe0
mov r14d, eax
mov rcx, r12
call fcn.140026fe0
mov r15d, eax
mov rcx, r12
call fcn.140026fe0
mov r13d, eax
mov rcx, r12
call fcn.140026fe0
mov edi, eax
mov rcx, r12
call fcn.140026fe0
mov ebx, eax
mov rcx, r12
call fcn.140026fe0
mov esi, eax
mov rcx, r12
call fcn.140026fe0
movd xmm0, edi
movd xmm1, ebx
punpckldq xmm0, xmm1
movd xmm1, esi
movd xmm2, eax
punpckldq xmm1, xmm2
punpcklqdq xmm0, xmm1
movd xmm1, ebp
movd xmm2, r14d
punpckldq xmm1, xmm2
movd xmm2, r15d
movd xmm3, r13d
punpckldq xmm2, xmm3
punpcklqdq xmm1, xmm2
movdqu xmmword [rsp + 0x1e0], xmm1
movdqu xmmword [rsp + 0x1f0], xmm0
lea r8, [0x14004aff8]
lea r14, [rsp + 0x60]
lea rdx, [rsp + 0x1e0]
mov r9d, 8
mov rcx, r14
call fcn.140026d70
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xa0], xmm0
movdqa xmmword [rsp + 0xb0], xmm0
movdqa xmmword [rsp + 0xc0], xmm0
movdqa xmmword [rsp + 0xd0], xmm0
movdqa xmmword [rsp + 0xe0], xmm0
movdqa xmmword [rsp + 0xf0], xmm0
movdqa xmmword [rsp + 0x100], xmm0
movdqa xmmword [rsp + 0x110], xmm0
movdqa xmmword [rsp + 0x120], xmm0
movdqa xmmword [rsp + 0x130], xmm0
movdqa xmmword [rsp + 0x140], xmm0
movdqa xmmword [rsp + 0x150], xmm0
movdqa xmmword [rsp + 0x160], xmm0
movdqa xmmword [rsp + 0x170], xmm0
movdqa xmmword [rsp + 0x180], xmm0
movdqa xmmword [rsp + 0x190], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movaps xmm2, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x1e8], xmm0
movups xmmword [rsp + 0x1f8], xmm1
movups xmmword [rsp + 0x208], xmm2
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x1d8], rax
movups xmm0, xmmword [rsp + 0x1e0]
movups xmm1, xmmword [rsp + 0x1f0]
movups xmm2, xmmword [rsp + 0x200]
movups xmmword [rsp + 0x1c8], xmm2
movups xmmword [rsp + 0x1b8], xmm1
movups xmmword [rsp + 0x1a8], xmm0
mov qword [rsp + 0x1a0], 0x40
lea rcx, [rsp + 0x1b0]
lea r8, [rsp + 0xa0]
mov edx, 6
call fcn.1400247e0
movzx eax, byte [rsp + 0xa0]
mov qword [rsp + 0x1a0], 1
mov byte [rsp + 0x2f], al
lea rdi, [rsp + 0x2f]
mov qword [rsp + 0x60], rdi
lea rax, [0x140041f20]
mov qword [rsp + 0x68], rax
lea rax, [0x14004ab98]
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], 2
mov qword [rsp + 0x200], 0
mov qword [rsp + 0x1f0], r14
mov qword [rsp + 0x1f8], 1
lea rcx, [rsp + 0x1e0]
call fcn.14002c090
lea rdx, str._ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
lea rcx, [rsp + 0x1e0]
mov r8d, 0x40
call fcn.140004b20
cmp byte [rsp + 0x1e0], 0
jne 0x14000352e
movdqu xmm0, xmmword [rsp + 0x1e1]
movdqu xmm1, xmmword [rsp + 0x1f1]
movdqu xmm2, xmmword [rsp + 0x201]
movups xmm3, xmmword [rsp + 0x211]
movaps xmmword [rsp + 0x90], xmm3
movdqa xmmword [rsp + 0x80], xmm2
movdqa xmmword [rsp + 0x70], xmm1
movdqa xmmword [rsp + 0x60], xmm0
call fcn.140005d50
mov ecx, eax
mov dl, 1
call fcn.140005d70
mov ecx, eax
mov dl, 1
call fcn.140005d60
mov ecx, eax
mov dl, 2
call fcn.140005d80
lea rsi, [rsp + 0x1e0]
lea rdx, [rsp + 0x60]
mov rcx, rsi
mov r8d, eax
call fcn.140004da0
lea rcx, [rsp + 0x38]
mov rdx, rsi
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
call fcn.140004430
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x1400033d6
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x14000350a
lea r8, [rax + rdx]
mov r9, rax
cmp rdx, 8
jb 0x1400034a6
lea r9, [rsp + 0x30]
cmp rdi, r8
setb r10b
cmp rax, r9
jae 0x1400033c8
mov r9, rax
test r10b, r10b
jne 0x1400034a6
cmp rdx, 0x20
jae 0x1400033f2
xor r10d, r10d
jmp 0x140003459
movdqu xmm0, xmmword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
movdqu xmmword [rax + 8], xmm0
mov qword [rax], 0
jmp 0x14000351a
mov r10, rdx
and r10, 0xffffffffffffffe0
movzx r9d, byte [rsp + 0x2f]
movd xmm0, r9d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor r9d, r9d
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rax + r9]
movdqu xmm2, xmmword [rax + r9 + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [rax + r9], xmm1
movdqu xmmword [rax + r9 + 0x10], xmm2
add r9, 0x20
cmp r10, r9
jne 0x140003420
cmp rdx, r10
je 0x14000350a
test dl, 0x18
je 0x1400034a0
mov r11, rdx
and r11, 0xfffffffffffffff8
lea r9, [rax + r11]
movzx esi, byte [rsp + 0x2f]
movd xmm0, esi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
nop word cs:[rax + rax]
movq xmm1, qword [rax + r10]
pxor xmm1, xmm0
movq qword [rax + r10], xmm1
add r10, 8
cmp r11, r10
jne 0x140003480
cmp rdx, r11
jne 0x1400034a6
jmp 0x14000350a
add r10, rax
mov r9, r10
mov r11d, r8d
sub r11d, r9d
mov r10, r9
not r10
add r10, r8
and r11d, 3
je 0x1400034d0
nop dword [rax + rax]
movzx ebx, byte [rsp + 0x2f]
xor byte [r9], bl
inc r9
dec r11
jne 0x1400034c0
cmp r10, 3
jb 0x14000350a
nop word cs:[rax + rax]
movzx r10d, byte [rsp + 0x2f]
xor byte [r9], r10b
movzx r10d, byte [rsp + 0x2f]
xor byte [r9 + 1], r10b
xor byte [r9 + 2], r10b
movzx r10d, byte [rsp + 0x2f]
xor byte [r9 + 3], r10b
add r9, 4
cmp r9, r8
jne 0x1400034e0
mov r8, qword [rsp + 0x30]
mov qword [r8], rax
mov qword [r8 + 8], rcx
mov qword [r8 + 0x10], rdx
add rsp, 0x328
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, word [rsp + 0x1e1]
mov word [rsp + 0x38], ax
lea rax, str.ms_source_srcmain.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14004a620]
lea r9, [0x14004a670]
lea r8, [rsp + 0x38]
mov edx, 0x2b
call fcn.140048ea0
ud2