Function at 0x140002318
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x128
movaps xmmword [rsp + 0x110], xmm6
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xb0], rcx
lea r15, [rsp + 0x40]
xorps xmm6, xmm6
lea rbx, [0x14039be62]
mov rcx, r15
mov rdx, qword [rsp + 0xb8]
call fcn.14000ecf4
mov r14b, byte [rsp + 0x40]
cmp r14b, 0x13
jne 0x140002547
mov rdi, qword [rsp + 0x48]
test rdi, rdi
je 0x1400029d7
mov rax, qword [rsp + 0xb8]
mov rsi, qword [rax + 0x10]
mov rdx, qword [rdi]
mov r8d, 2
mov rcx, r15
call fcn.1401ed24b
mov r14b, byte [rsp + 0x40]
cmp r14b, 0x13
jne 0x140002594
movups xmm0, xmmword [rsp + 0x48]
mov rax, qword [rsp + 0x58]
movups xmmword [rsp + 0xc0], xmm0
mov qword [rsp + 0xd0], rax
lea rcx, [rsp + 0xf8]
lea rdx, [rsp + 0xc0]
mov r8, rsi
call fcn.14020fb55
lea rax, [0x140394ef3]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x40]
movabs rax, 0xbec1b40d99290811
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x40]
call fcn.14000d259
movaps xmmword [rsp + 0x40], xmm6
mov cl, 1
xor edx, edx
movzx r9d, byte [rdx + rbx]
mov r8, rdx
or r8, 1
movzx r8d, byte [r8 + rbx]
mov r10, rdx
or r10, 2
movzx r10d, byte [r10 + rbx]
mov r11, rdx
or r11, 3
movzx r11d, byte [r11 + rbx]
mov rsi, rdx
or rsi, 4
movzx esi, byte [rsi + rbx]
mov r14, rdx
or r14, 5
movzx r14d, byte [r14 + rbx]
mov r13, rdx
or r13, 7
mov r15, rdx
or r15, 6
movzx r15d, byte [r15 + rbx]
movzx r13d, byte [r13 + rbx]
shl r13, 0x38
shl r15, 0x30
or r15, r13
shl r14, 0x28
shl rsi, 0x20
shl r11, 0x18
shl r10, 0x10
shl r8, 8
or r8, r9
or r8, r10
or r8, r11
or r8, rsi
or r8, r14
or r8, r15
xor r8, qword [rax + rdx]
mov qword [rsp + rdx + 0x40], r8
mov edx, 8
test cl, 1
mov ecx, 0
jne 0x140002410
mov ecx, dword [rax + 0x10]
mov edx, 0x3d010bb0
xor ecx, edx
mov dword [rsp + 0x50], ecx
movzx eax, word [rax + 0x14]
xor eax, 0xb4eb
mov word [rsp + 0x54], ax
mov ecx, 0x16
mov edx, 1
call fcn.140020b50
test rax, rax
je 0x140002a44
mov rbp, rax
mov rax, qword [rsp + 0x4e]
mov qword [rbp + 0xe], rax
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rbp], xmm0
mov rsi, qword [rsp + 0x100]
test rsi, rsi
je 0x1400025e1
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x28], rax
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, rbp
call qword [sym.imp.kernel32.dll_HeapFree]
mov rbp, rsi
jmp 0x1400025f3
movzx eax, byte [rsp + 0x47]
shl eax, 0x10
movzx ecx, word [rsp + 0x45]
or ecx, eax
shl rcx, 0x20
mov r12d, dword [rsp + 0x41]
or r12, rcx
mov r15, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
mov edi, 1
mov rcx, qword [rsp + 0x38]
jmp 0x1400028b4
movzx eax, byte [rsp + 0x47]
shl eax, 0x10
movzx ecx, word [rsp + 0x45]
or ecx, eax
shl rcx, 0x20
mov r12d, dword [rsp + 0x41]
or r12, rcx
mov r15, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
mov edi, 1
mov rcx, qword [rsp + 0x38]
jmp 0x1400028b1
mov eax, 0x16
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x98], rax
lea rsi, [rsp + 0x40]
mov rdx, qword [rdi]
mov rcx, rsi
xor r8d, r8d
call fcn.1401ed67c
mov r14b, byte [rsp + 0x40]
cmp r14b, 0x13
jne 0x140002730
mov r15, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xa8], rax
mov rdx, qword [rdi]
mov r8d, 1
mov rcx, rsi
call fcn.1401ed67c
mov r14b, byte [rsp + 0x40]
cmp r14b, 0x13
jne 0x1400027be
mov rcx, rsi
mov rsi, r15
mov r14, qword [rsp + 0x48]
mov r15, qword [rsp + 0x50]
mov r13, qword [rsp + 0x58]
mov rdx, rbp
mov r8, qword [rsp + 0x28]
call fcn.140051870
cmp qword [rsp + 0x40], 0
je 0x140002888
cmp byte [rsp + 0x50], 2
mov r8, qword [rsp + 0x90]
mov rax, rsi
mov rcx, qword [rsp + 0xa8]
je 0x14000289b
cmp qword [rsp + 0x98], 0
je 0x1400026c8
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, rbp
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, rsi
mov r8, qword [rsp + 0x90]
test r14, r14
je 0x1400026ea
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, r15
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, rsi
mov r8, qword [rsp + 0x90]
mov edi, 1
mov r14b, 0xf
test rax, rax
je 0x140002706
mov rcx, qword [0x1404fd180]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x28]
mov rsi, r9
mov r13, rbp
mov r15, qword [rsp + 0x98]
jmp 0x1400028b1
movzx eax, byte [rsp + 0x47]
shl eax, 0x10
movzx ecx, word [rsp + 0x45]
or ecx, eax
shl rcx, 0x20
mov r12d, dword [rsp + 0x41]
or r12, rcx
mov r15, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
mov edi, 1
cmp qword [rsp + 0x98], 0
je 0x14000287e
mov rcx, qword [0x1404fd180]
mov qword [rsp + 0x30], rdx
xor edx, edx
mov qword [rsp + 0x90], r8
mov r8, rbp
mov qword [rsp + 0x28], r9
mov rbp, rax
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, rbp
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0x28]
jmp 0x140002872
movzx eax, byte [rsp + 0x47]
shl eax, 0x10
movzx edi, word [rsp + 0x45]
or edi, eax
shl rdi, 0x20
mov r12d, dword [rsp + 0x41]
mov rcx, r15
mov r15, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov r9, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xa0], rax
test rcx, rcx
je 0x140002837
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, qword [rsp + 0x90]
mov qword [rsp + 0x28], r9
call qword [sym.imp.kernel32.dll_HeapFree]
mov r9, qword [rsp + 0x28]
or r12, rdi
mov edi, 1
cmp qword [rsp + 0x98], 0
je 0x140002862
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, rbp
mov rbp, r9
call qword [sym.imp.kernel32.dll_HeapFree]
mov r9, rbp
mov rax, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x30]
jmp 0x1400028b1
mov rcx, qword [rsp + 0x38]
mov rbp, rdx
jmp 0x1400028b1
mov r8, qword [rsp + 0x90]
mov rax, rsi
mov rcx, qword [rsp + 0xa8]
mov r12, r14
shr r12, 8
mov rsi, qword [rsp + 0x98]
xor edi, edi
mov r9, qword [rsp + 0x28]
mov rdx, rax
mov dword [rsp + 0x49], r12d
mov rax, r12
shr rax, 0x30
mov byte [rsp + 0x4f], al
mov rax, r12
shr rax, 0x20
mov word [rsp + 0x4d], ax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x40], rdi
mov byte [rsp + 0x48], r14b
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], r9
test rdi, rdi
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0xa0], r8
je 0x14000292e
lea rcx, [rsp + 0x48]
call fcn.140004e48
jmp 0x1400029cd
mov rax, qword [rsp + 0x48]
test r13, r13
je 0x140002979
test rcx, rcx
je 0x140002979
lea rdx, [rsp + 0x48]
mov rcx, qword [rdx + 0x40]
mov qword [rsp + 0xf0], rcx
movups xmm0, xmmword [rdx + 0x10]
movups xmm1, xmmword [rdx + 0x20]
movups xmm2, xmmword [rdx + 0x30]
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
test r15, r15
je 0x1400029cd
jmp 0x1400029e9
test rax, rax
je 0x140002995
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, r15
call qword [sym.imp.kernel32.dll_HeapFree]
mov rdx, qword [rsp + 0x30]
test rsi, rsi
je 0x1400029b1
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, rbp
call qword [sym.imp.kernel32.dll_HeapFree]
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x1400029cd
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, qword [rsp + 0xa0]
call qword [sym.imp.kernel32.dll_HeapFree]
lea r15, [rsp + 0x40]
jmp 0x140002352
mov rax, qword [rsp + 0xb0]
mov qword [rax + 8], 0
jmp 0x140002a28
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xb0]
mov qword [rdx + 0x40], rcx
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movaps xmm2, xmmword [rsp + 0xe0]
movups xmmword [rdx + 0x30], xmm2
movups xmmword [rdx + 0x20], xmm1
movups xmmword [rdx + 0x10], xmm0
mov qword [rdx], rax
mov qword [rdx + 8], r15
movaps xmm6, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x16
mov edx, 1
call fcn.14038e430
ud2