Function at 0x140004390
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0xb0
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
test r9d, r9d
je 0x140004866
mov eax, dword [rcx]
mov ebx, dword [rcx + 0x34]
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 4]
mov dword [rsp + 0x4c], ebx
mov ebx, dword [rcx + 0x38]
mov dword [rsp + 0x44], eax
mov eax, dword [rcx + 8]
mov dword [rsp + 0x18], ebx
mov ebx, dword [rcx + 0x3c]
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x14], ebx
lea rbx, [rsp + 0x70]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x2c], eax
mov eax, dword [rcx + 0x20]
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 0x24]
mov dword [rsp + 0x24], eax
mov eax, dword [rcx + 0x28]
mov dword [rsp + 0x20], eax
mov eax, dword [rcx + 0x2c]
mov dword [rsp + 0x1c], eax
mov eax, dword [rcx + 0x30]
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x50], r9d
cmp dword [rsp + 0x50], 0x3f
mov qword [rsp], 0
mov r13, qword [rbp + 0x18]
mov qword [rsp + 8], rbx
mov dword [rsp + 0x10], eax
mov qword [rbp + 0x10], rcx
mov dword [rbp + 0x28], r9d
jbe 0x1400047d6
nop dword [rax]
mov ebx, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x14]
mov dword [rsp + 0x58], 0xa
mov r12d, dword [rsp + 0x20]
mov r14d, dword [rsp + 0x48]
mov qword [rbp + 0x18], r13
mov edx, dword [rsp + 0x4c]
mov r8d, dword [rsp + 0x54]
mov dword [rsp + 0x6c], ebx
mov ebx, dword [rsp + 0x30]
mov r13d, r12d
mov ecx, dword [rsp + 0x24]
mov dword [rsp + 0x64], eax
mov r10d, dword [rsp + 0x28]
mov eax, dword [rsp + 0x18]
mov dword [rsp + 0x60], r14d
mov r15d, dword [rsp + 0x2c]
mov esi, dword [rsp + 0x34]
mov dword [rsp + 0x68], ebx
mov edi, dword [rsp + 0x38]
mov r9d, dword [rsp + 0x3c]
mov r11d, dword [rsp + 0x40]
mov ebx, dword [rsp + 0x44]
mov r14d, dword [rsp + 0x64]
mov r12d, dword [rsp + 0x60]
nop dword [rax]
add ebx, esi
add r12d, edi
xor edx, ebx
xor r8d, r12d
rol edx, 0x10
rol r8d, 0x10
add ecx, edx
add r10d, r8d
xor esi, ecx
xor edi, r10d
rol esi, 0xc
rol edi, 0xc
add ebx, esi
add r12d, edi
xor edx, ebx
xor r8d, r12d
rol edx, 8
rol r8d, 8
add ecx, edx
add r10d, r8d
xor esi, ecx
mov dword [rsp + 0x5c], ecx
mov ecx, dword [rsp + 0x68]
xor edi, r10d
mov dword [rsp + 0x64], r10d
rol edi, 7
rol esi, 7
add r11d, ecx
mov dword [rsp + 0x60], edi
mov edi, dword [rsp + 0x6c]
xor eax, r11d
rol eax, 0x10
add r13d, eax
xor ecx, r13d
mov r10d, ecx
rol r10d, 0xc
add r11d, r10d
xor eax, r11d
rol eax, 8
add r9d, r15d
add r12d, esi
xor r14d, r9d
add r13d, eax
rol r14d, 0x10
xor r10d, r13d
add edi, r14d
rol r10d, 7
xor r15d, edi
add ebx, r10d
mov ecx, r15d
xor r8d, ebx
rol ecx, 0xc
rol r8d, 0x10
add r9d, ecx
xor r14d, r9d
rol r14d, 8
add edi, r14d
xor r14d, r12d
rol r14d, 0x10
xor ecx, edi
add edi, r8d
add r13d, r14d
rol ecx, 7
xor esi, r13d
rol esi, 0xc
add r12d, esi
xor r14d, r12d
rol r14d, 8
add r13d, r14d
xor esi, r13d
rol esi, 7
xor r10d, edi
add r11d, ecx
rol r10d, 0xc
xor edx, r11d
add ebx, r10d
rol edx, 0x10
xor r8d, ebx
rol r8d, 8
lea r15d, [rdi + r8]
mov edi, dword [rsp + 0x60]
xor r10d, r15d
mov dword [rsp + 0x6c], r15d
mov r15d, r10d
mov r10d, dword [rsp + 0x64]
add r9d, edi
rol r15d, 7
xor eax, r9d
add r10d, edx
mov dword [rsp + 0x68], r15d
rol eax, 0x10
xor ecx, r10d
rol ecx, 0xc
add r11d, ecx
xor edx, r11d
rol edx, 8
add r10d, edx
xor ecx, r10d
mov r15d, ecx
mov ecx, dword [rsp + 0x5c]
rol r15d, 7
add ecx, eax
xor edi, ecx
rol edi, 0xc
add r9d, edi
xor eax, r9d
rol eax, 8
add ecx, eax
xor edi, ecx
rol edi, 7
sub dword [rsp + 0x58], 1
jne 0x1400044d8
mov dword [rsp + 0x60], edx
mov edx, r12d
mov r12d, r13d
mov r13, qword [rbp + 0x18]
mov dword [rsp + 0x64], r14d
mov r14d, edx
mov edx, dword [rsp + 0x48]
add r14d, edx
mov edx, dword [rsp + 0x44]
mov dword [rsp + 0x5c], r14d
mov r14d, dword [rsp + 0x68]
add ebx, edx
mov edx, dword [rsp + 0x40]
xor ebx, dword [r13 + 4]
add r11d, edx
mov edx, dword [rsp + 0x3c]
add r9d, edx
mov edx, dword [rsp + 0x38]
add edi, edx
mov edx, dword [rsp + 0x34]
add esi, edx
mov edx, dword [rsp + 0x30]
add r14d, edx
mov edx, dword [rsp + 0x2c]
mov dword [rsp + 0x68], r14d
mov r14d, dword [rsp + 0x6c]
add r15d, edx
mov edx, dword [rsp + 0x28]
add r10d, edx
mov edx, dword [rsp + 0x24]
add ecx, edx
mov edx, dword [rsp + 0x20]
add r12d, edx
mov edx, dword [rsp + 0x1c]
add r14d, edx
mov edx, dword [rsp + 0x60]
mov dword [rsp + 0x6c], r14d
mov r14d, dword [rsp + 0x54]
add r8d, r14d
mov r14d, dword [rsp + 0x4c]
add edx, r14d
mov r14d, dword [rsp + 0x18]
mov dword [rsp + 0x60], edx
mov edx, dword [rsp + 0x64]
add eax, r14d
mov r14d, dword [rsp + 0x14]
add r14d, edx
mov dword [rsp + 0x64], r14d
mov r14d, dword [rsp + 0x5c]
xor r14d, dword [r13]
mov dword [rsp + 0x5c], r14d
xor r11d, dword [r13 + 8]
xor ecx, dword [r13 + 0x24]
xor eax, dword [r13 + 0x38]
mov r14d, dword [rsp + 0x68]
xor esi, dword [r13 + 0x14]
mov dword [rsp + 0x68], ecx
mov ecx, dword [rsp + 0x6c]
xor ecx, dword [r13 + 0x2c]
xor edi, dword [r13 + 0x10]
xor r14d, dword [r13 + 0x18]
mov dword [rsp + 0x6c], ecx
xor r15d, dword [r13 + 0x1c]
xor r10d, dword [r13 + 0x20]
xor r12d, dword [r13 + 0x28]
xor r8d, dword [r13 + 0x30]
xor r9d, dword [r13 + 0xc]
mov edx, dword [rsp + 0x60]
mov dword [rsp + 0x60], eax
xor edx, dword [r13 + 0x34]
mov ecx, dword [rsp + 0x64]
xor ecx, dword [r13 + 0x3c]
add dword [rsp + 0x54], 1
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x64], ecx
mov ecx, dword [rsp + 0x5c]
cmp eax, 1
mov rax, qword [rbp + 0x20]
adc dword [rsp + 0x4c], 0
mov dword [rax], ecx
mov dword [rax + 4], ebx
mov dword [rax + 8], r11d
mov dword [rax + 0xc], r9d
mov ecx, dword [rsp + 0x6c]
mov ebx, dword [rsp + 0x60]
cmp dword [rsp + 0x50], 0x40
mov dword [rax + 0x14], esi
mov dword [rax + 0x2c], ecx
mov esi, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x64]
mov dword [rax + 0x10], edi
mov dword [rax + 0x18], r14d
mov dword [rax + 0x1c], r15d
mov dword [rax + 0x20], r10d
mov dword [rax + 0x24], esi
mov dword [rax + 0x28], r12d
mov dword [rax + 0x30], r8d
mov dword [rax + 0x34], edx
mov dword [rax + 0x38], ebx
mov dword [rax + 0x3c], ecx
jbe 0x140004814
sub dword [rsp + 0x50], 0x40
add r13, 0x40
add qword [rbp + 0x20], 0x40
cmp dword [rsp + 0x50], 0x3f
ja 0x140004460
mov edx, dword [rsp + 0x50]
mov r8, qword [rsp + 8]
xor eax, eax
nop dword [rax]
movzx ecx, byte [r13 + rax]
mov byte [r8 + rax], cl
add rax, 1
cmp rax, rdx
jne 0x1400047e8
mov rax, qword [rbp + 0x20]
mov qword [rsp], rax
mov rax, qword [rsp + 8]
mov qword [rbp + 0x20], rax
mov r13, rax
jmp 0x140004460
mov edx, dword [rbp + 0x28]
mov eax, dword [rsp + 0x10]
mov r11, qword [rbp + 0x10]
lea ecx, [rdx - 1]
mov r8d, ecx
and ecx, 0xffffffc0
shr r8d, 6
sub edx, ecx
lea r10d, [r8 + rax + 1]
cmp edx, 0x40
je 0x14000485a
mov r8, qword [rsp]
mov r9, qword [rbp + 0x20]
mov ecx, edx
xor edx, edx
nop dword [rax]
movzx eax, byte [r9 + rdx]
mov byte [r8 + rdx], al
add rdx, 1
cmp rdx, rcx
jne 0x140004848
mov eax, dword [rsp + 0x4c]
mov dword [r11 + 0x30], r10d
mov dword [r11 + 0x34], eax
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret