Function at 0x140040100
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x130
mov rax, rcx
mov ecx, dword [rcx + 8]
mov dword [rsp + 0x10], ecx
mov dword [rsp + 0x188], ecx
mov ecx, dword [rax + 0xc]
mov dword [rsp + 0x14], ecx
mov dword [rsp + 0x180], ecx
mov ecx, dword [rax + 0x10]
mov dword [rsp + 0x18], ecx
mov dword [rsp + 0xc], ecx
mov ecx, dword [rax + 0x14]
mov r14d, ecx
mov dword [rsp + 0x1c], ecx
mov ecx, dword [rax + 0x18]
mov r13d, ecx
mov dword [rsp + 0x20], ecx
mov ecx, dword [rax + 0x1c]
mov dword [rsp + 0x24], ecx
mov dword [rsp], ecx
mov ecx, dword [rax + 0x20]
mov eax, dword [rax + 0x24]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 4], ecx
movzx ecx, byte [rdx]
shl ecx, 8
mov dword [rsp + 0x2c], eax
mov dword [rsp + 8], eax
movzx eax, byte [rdx + 1]
or ecx, eax
movzx eax, byte [rdx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 5]
mov dword [rsp + 0x30], ecx
movzx ecx, byte [rdx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 9]
mov dword [rsp + 0x34], ecx
movzx ecx, byte [rdx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xd]
mov dword [rsp + 0x38], ecx
movzx ecx, byte [rdx + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x11]
mov dword [rsp + 0x3c], ecx
movzx ecx, byte [rdx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x40], ecx
movzx ecx, byte [rdx + 0x14]
shl ecx, 8
movzx eax, byte [rdx + 0x15]
or ecx, eax
movzx eax, byte [rdx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x19]
mov dword [rsp + 0x44], ecx
movzx ecx, byte [rdx + 0x18]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1d]
mov dword [rsp + 0x48], ecx
movzx ecx, byte [rdx + 0x1c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x21]
mov dword [rsp + 0x4c], ecx
movzx ecx, byte [rdx + 0x20]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x22]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x25]
mov dword [rsp + 0x50], ecx
movzx ecx, byte [rdx + 0x24]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x27]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x29]
mov dword [rsp + 0x54], ecx
movzx ecx, byte [rdx + 0x28]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2d]
mov dword [rsp + 0x58], ecx
movzx ecx, byte [rdx + 0x2c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x31]
mov dword [rsp + 0x5c], ecx
movzx ecx, byte [rdx + 0x30]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [rdx + 0x32]
lea r10, [rsp + 0x68]
movzx r15d, byte [rdx + 0x38]
or ecx, eax
movzx eax, byte [rdx + 0x33]
mov r12d, 6
shl ecx, 8
or ecx, eax
shl r15d, 8
movzx eax, byte [rdx + 0x35]
mov dword [rsp + 0x60], ecx
movzx ecx, byte [rdx + 0x34]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x36]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x37]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x39]
or r15d, eax
mov dword [rsp + 0x64], ecx
movzx eax, byte [rdx + 0x3a]
movzx ecx, byte [rdx + 0x3c]
shl ecx, 8
shl r15d, 8
or r15d, eax
movzx eax, byte [rdx + 0x3b]
shl r15d, 8
or r15d, eax
movzx eax, byte [rdx + 0x3d]
or ecx, eax
mov dword [rsp + 0x68], r15d
movzx eax, byte [rdx + 0x3e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3f]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x6c], ecx
nop dword [rax]
mov r8d, dword [r10 - 0x34]
lea rbp, [r10]
mov edi, dword [rbp + 4]
mov ecx, r8d
mov r9d, dword [rbp - 0x2c]
mov esi, r15d
mov ebx, dword [rbp - 0x28]
mov eax, r15d
ror eax, 0x11
mov edx, edi
ror ecx, 0x12
ror edx, 0x13
ror esi, 0x13
xor esi, eax
mov eax, r15d
shr eax, 0xa
xor esi, eax
mov eax, r8d
ror eax, 7
xor ecx, eax
mov eax, r8d
shr eax, 3
xor ecx, eax
mov eax, edi
ror eax, 0x11
add esi, ecx
add esi, dword [r10 - 0x38]
xor edx, eax
add esi, dword [r10 - 0x14]
mov eax, edi
shr eax, 0xa
xor edx, eax
mov dword [r10 + 8], esi
mov r10d, dword [r10 - 0x30]
mov eax, r10d
ror eax, 7
mov ecx, r10d
ror ecx, 0x12
xor ecx, eax
mov eax, r10d
shr eax, 3
xor ecx, eax
mov eax, esi
add edx, ecx
ror eax, 0x11
add edx, dword [rbp - 0x10]
mov ecx, r9d
add r8d, edx
ror ecx, 0x12
mov r11d, r8d
mov dword [rbp + 0xc], r8d
ror r11d, 0x13
mov edx, esi
ror edx, 0x13
xor edx, eax
mov eax, esi
shr eax, 0xa
xor edx, eax
mov eax, r9d
ror eax, 7
xor ecx, eax
mov eax, r9d
shr eax, 3
xor ecx, eax
mov eax, r8d
ror eax, 0x11
add edx, ecx
add edx, dword [rbp - 0xc]
xor r11d, eax
shr r8d, 0xa
add r10d, edx
mov eax, ebx
mov dword [rbp + 0x10], r10d
ror eax, 7
mov ecx, ebx
ror ecx, 0x12
xor r11d, r8d
xor ecx, eax
mov eax, ebx
shr eax, 3
xor ecx, eax
mov r8d, dword [rbp - 0x20]
add r11d, ecx
add r11d, dword [rbp - 8]
mov ecx, r10d
add r11d, r9d
ror ecx, 0x13
mov r9d, dword [rbp - 0x24]
mov edx, r9d
ror edx, 0x12
mov eax, r9d
ror eax, 7
xor edx, eax
mov dword [rbp + 0x14], r11d
mov eax, r9d
shr eax, 3
xor edx, eax
mov eax, r10d
ror eax, 0x11
xor ecx, eax
shr r10d, 0xa
xor r10d, ecx
mov eax, r8d
ror eax, 7
add r10d, edx
add r10d, dword [rbp - 4]
mov edx, r8d
ror edx, 0x12
add r10d, ebx
xor edx, eax
mov dword [rbp + 0x18], r10d
mov eax, r8d
mov ecx, r11d
shr eax, 3
xor edx, eax
ror ecx, 0x13
add r9d, edx
mov eax, r11d
ror eax, 0x11
xor ecx, eax
shr r11d, 0xa
xor ecx, r11d
mov r11d, dword [rbp - 0x1c]
add r9d, ecx
mov edx, r11d
add r9d, r15d
ror edx, 0x12
mov r15d, r10d
mov dword [rbp + 0x1c], r9d
ror r15d, 0x13
mov eax, r11d
ror eax, 7
xor edx, eax
mov eax, r11d
shr eax, 3
xor edx, eax
mov eax, r10d
ror eax, 0x11
xor r15d, eax
shr r10d, 0xa
xor r15d, r10d
lea r10, [rbp + 0x20]
lea eax, [r8 + rdx]
mov r8d, dword [rbp - 0x18]
add r15d, eax
mov edx, r9d
ror edx, 0x13
mov eax, r9d
ror eax, 0x11
mov ecx, r8d
xor edx, eax
shr r9d, 0xa
mov eax, r8d
ror ecx, 0x12
ror eax, 7
xor edx, r9d
xor ecx, eax
shr r8d, 3
add r15d, edi
xor ecx, r8d
mov dword [r10], r15d
lea eax, [rsi + rdx]
add ecx, eax
add ecx, r11d
mov dword [rbp + 0x24], ecx
sub r12, 1
jne 0x1400403c0
mov r15d, dword [rsp + 0x180]
lea rbp, [0x14007e8a0]
mov r12d, dword [rsp + 0x188]
xor r11d, r11d
mov ebx, dword [rsp]
mov edi, dword [rsp + 4]
mov esi, dword [rsp + 8]
mov r9d, dword [rsp + 0xc]
nop dword [rax]
mov edx, r13d
mov eax, r13d
ror eax, 0xb
mov ecx, r12d
ror ecx, 0x16
mov r10d, r12d
ror edx, 0x19
xor edx, eax
mov eax, r13d
ror eax, 6
xor edx, eax
mov eax, ebx
xor eax, edi
and eax, r13d
xor eax, edi
add edx, eax
mov eax, r12d
add edx, dword [r11 + rbp]
add edx, dword [rsp + r11 + 0x30]
ror eax, 0xd
add edx, esi
xor ecx, eax
mov eax, r12d
ror eax, 2
xor ecx, eax
mov eax, r15d
and eax, r12d
lea esi, [r14 + rdx]
mov r14d, r15d
mov r8d, esi
ror r8d, 0x19
or r14d, r12d
and r14d, r9d
or r14d, eax
lea eax, [rdx + rcx]
add r14d, eax
mov eax, esi
ror eax, 0xb
mov edx, r14d
xor r8d, eax
ror edx, 0x16
mov eax, esi
mov ecx, r14d
ror eax, 6
and ecx, r12d
xor r8d, eax
mov eax, ebx
xor eax, r13d
and eax, esi
xor eax, ebx
add r8d, eax
mov eax, r14d
add r8d, dword [rsp + r11 + 0x34]
add r8d, dword [r11 + rbp + 4]
ror eax, 0xd
add r8d, edi
xor edx, eax
mov eax, r14d
ror eax, 2
xor edx, eax
mov eax, r14d
lea edi, [r9 + r8]
or eax, r12d
and eax, r15d
mov r9d, edi
or eax, ecx
ror r9d, 0x19
lea ecx, [r8 + rdx]
add eax, ecx
mov ecx, edi
ror ecx, 0xb
xor r9d, ecx
mov ecx, edi
ror ecx, 6
xor r9d, ecx
mov ecx, esi
xor ecx, r13d
and ecx, edi
xor ecx, r13d
add r9d, ecx
add r9d, dword [rsp + r11 + 0x38]
add r9d, dword [r11 + rbp + 8]
mov r8d, eax
add r9d, ebx
ror r8d, 0x16
mov ecx, eax
ror ecx, 0xd
xor r8d, ecx
mov ecx, eax
ror ecx, 2
lea ebx, [r15 + r9]
xor r8d, ecx
mov r15d, eax
or r15d, r14d
mov ecx, eax
and ecx, r14d
and r15d, r12d
or r15d, ecx
lea ecx, [r9 + r8]
mov r9d, ebx
add r15d, ecx
ror r9d, 0x19
mov ecx, ebx
mov r8d, r15d
ror ecx, 0xb
mov r12d, r15d
xor r9d, ecx
ror r8d, 0x16
or r12d, eax
mov ecx, ebx
ror ecx, 6
and r12d, r14d
xor r9d, ecx
mov ecx, edi
xor ecx, esi
and ecx, ebx
xor ecx, esi
add r9d, ecx
mov ecx, r15d
add r9d, dword [rsp + r11 + 0x3c]
add r9d, dword [r11 + rbp + 0xc]
add r11, 0x10
ror ecx, 0xd
add r9d, r13d
xor r8d, ecx
mov ecx, r15d
ror ecx, 2
xor r8d, ecx
mov ecx, r15d
and ecx, eax
lea r13d, [r10 + r9]
or r12d, ecx
lea ecx, [r9 + r8]
mov r9d, eax
add r12d, ecx
cmp r11, 0x100
jl 0x1400405e0
mov rdx, qword [rsp + 0x170]
mov ecx, dword [rsp + 0x10]
add ecx, r12d
mov dword [rdx + 8], ecx
mov ecx, dword [rsp + 0x14]
add ecx, r15d
mov dword [rdx + 0xc], ecx
mov ecx, dword [rsp + 0x18]
add ecx, eax
mov eax, dword [rsp + 0x1c]
add eax, r14d
mov dword [rdx + 0x10], ecx
mov dword [rdx + 0x14], eax
mov eax, dword [rsp + 0x20]
add eax, r13d
mov dword [rdx + 0x18], eax
mov eax, dword [rsp + 0x24]
add eax, ebx
mov rbx, qword [rsp + 0x178]
mov dword [rdx + 0x1c], eax
mov eax, dword [rsp + 0x28]
add eax, edi
mov dword [rdx + 0x20], eax
mov eax, dword [rsp + 0x2c]
add eax, esi
mov dword [rdx + 0x24], eax
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret