Function at 0x6d9da1f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
cmp qword [rsp + 0xa8], 0
mov r13, rcx
mov rdi, r8
mov r11, r9
mov qword [rsp + 0x30], 0
je 0x6d9da5a4
mov rax, rdx
mov r15, qword [rdi]
add r15, qword [rax]
xor r15, qword [r13]
mov qword [r13], r15
mov rbp, qword [rdi + 8]
add rbp, qword [rax + 8]
xor rbp, qword [r13 + 8]
mov qword [r13 + 8], rbp
mov rbx, qword [rdi + 0x10]
add rbx, qword [rax + 0x10]
xor rbx, qword [r13 + 0x10]
mov qword [r13 + 0x10], rbx
mov rcx, qword [rdi + 0x18]
mov qword [rsp], rcx
mov rcx, qword [rax + 0x18]
add qword [rsp], rcx
mov rcx, qword [r13 + 0x18]
xor qword [rsp], rcx
mov r10, qword [rsp]
mov qword [r13 + 0x18], r10
mov r9, qword [rdi + 0x20]
add r9, qword [rax + 0x20]
xor r9, qword [r13 + 0x20]
mov qword [r13 + 0x20], r9
mov r8, qword [rdi + 0x28]
add r15, r9
add r8, qword [rax + 0x28]
mov r10, r15
xor r8, qword [r13 + 0x28]
mov qword [r13 + 0x28], r8
mov rcx, qword [rdi + 0x30]
add rcx, qword [rax + 0x30]
xor rcx, qword [r13 + 0x30]
mov qword [r13 + 0x30], rcx
mov rdx, qword [rdi + 0x38]
add rdx, qword [rax + 0x38]
xor r10, qword [r13 + 0x60]
xor rdx, qword [r13 + 0x38]
ror r10, 0x20
mov qword [r13 + 0x38], rdx
mov r12, qword [rdi + 0x40]
add r12, qword [rax + 0x40]
xor r12, qword [r13 + 0x40]
mov qword [r13 + 0x40], r12
add r12, r10
mov rsi, qword [rdi + 0x48]
xor r9, r12
add rsi, qword [rax + 0x48]
ror r9, 0x18
xor rsi, qword [r13 + 0x48]
add r15, r9
xor r10, r15
mov qword [rsp + 8], r10
ror qword [rsp + 8], 0x10
add r12, qword [rsp + 8]
mov qword [r13 + 0x48], rsi
mov r14, qword [rdi + 0x50]
add r14, qword [rax + 0x50]
xor r14, qword [r13 + 0x50]
xor r9, r12
mov qword [rsp + 0x18], r12
mov qword [rsp + 0x20], r9
ror qword [rsp + 0x20], 0x3f
add rbp, r8
mov r9, rbp
xor r9, qword [r13 + 0x68]
add rbx, rcx
mov r10, rbx
xor r10, qword [r13 + 0x70]
mov qword [r13 + 0x50], r14
ror r9, 0x20
add rsi, r9
xor r8, rsi
ror r8, 0x18
add rbp, r8
xor r9, rbp
mov qword [rsp + 0x10], r9
ror qword [rsp + 0x10], 0x10
add rsi, qword [rsp + 0x10]
xor r8, rsi
mov qword [rsp + 0x28], rsi
mov rsi, r10
mov r10, qword [rsp]
ror rsi, 0x20
ror r8, 0x3f
add r14, rsi
xor rcx, r14
add r10, rdx
ror rcx, 0x18
mov r9, r10
xor r9, qword [r13 + 0x78]
add rbx, rcx
xor rsi, rbx
ror rsi, 0x10
add r14, rsi
mov r12, r9
mov r9, qword [rdi + 0x58]
add r9, qword [rax + 0x58]
xor r9, qword [r13 + 0x58]
ror r12, 0x20
xor rcx, r14
ror rcx, 0x3f
add r9, r12
xor rdx, r9
ror rdx, 0x18
add r10, rdx
add r15, r8
add rbp, rcx
xor r12, r10
ror r12, 0x10
add r9, r12
xor r12, r15
ror r12, 0x20
xor rdx, r9
add r14, r12
ror rdx, 0x3f
xor r8, r14
add rbx, rdx
ror r8, 0x18
add r15, r8
xor r12, r15
mov qword [r13], r15
ror r12, 0x10
mov qword [r13 + 0x78], r12
add r12, r14
mov r14, qword [rsp + 8]
mov qword [r13 + 0x50], r12
xor r8, r12
mov r12, qword [rsp + 0x18]
ror r8, 0x3f
xor r14, rbp
mov qword [r13 + 0x28], r8
ror r14, 0x20
add r9, r14
xor rcx, r9
ror rcx, 0x18
add rbp, rcx
mov qword [r13 + 8], rbp
xor rbp, r14
ror rbp, 0x10
add r9, rbp
mov qword [r13 + 0x60], rbp
mov qword [r13 + 0x58], r9
xor r9, rcx
ror r9, 0x3f
mov qword [r13 + 0x30], r9
mov r9, qword [rsp + 0x10]
xor r9, rbx
ror r9, 0x20
add r12, r9
xor rdx, r12
ror rdx, 0x18
add rbx, rdx
xor r9, rbx
mov qword [r13 + 0x10], rbx
mov rbx, qword [rsp + 0x28]
ror r9, 0x10
mov qword [r13 + 0x68], r9
add r9, r12
mov qword [r13 + 0x40], r9
xor rdx, r9
mov r9, qword [rsp + 0x20]
ror rdx, 0x3f
mov qword [r13 + 0x38], rdx
add r10, r9
xor rsi, r10
ror rsi, 0x20
lea rdx, [rsi + rbx]
xor r9, rdx
ror r9, 0x18
add r10, r9
xor rsi, r10
mov qword [r13 + 0x18], r10
ror rsi, 0x10
mov qword [r13 + 0x70], rsi
add rsi, rdx
xor r9, rsi
mov qword [r13 + 0x48], rsi
ror r9, 0x3f
mov qword [r13 + 0x20], r9
xor qword [r11], r15
mov rdx, qword [r13 + 8]
xor qword [r11 + 8], rdx
mov rdx, qword [r13 + 0x10]
xor qword [r11 + 0x10], rdx
mov rdx, qword [r13 + 0x18]
xor qword [r11 + 0x18], rdx
mov rdx, qword [r13 + 0x20]
xor qword [r11 + 0x20], rdx
mov rdx, qword [r13 + 0x28]
xor qword [r11 + 0x28], rdx
mov rdx, qword [r13 + 0x30]
xor qword [r11 + 0x30], rdx
mov rdx, qword [r13 + 0x38]
xor qword [r11 + 0x38], rdx
mov rdx, qword [r13 + 0x40]
xor qword [r11 + 0x40], rdx
mov rdx, qword [r13 + 0x48]
xor qword [r11 + 0x48], rdx
mov rdx, qword [r13 + 0x50]
xor qword [r11 + 0x50], rdx
mov rdx, qword [r13 + 0x58]
xor qword [r11 + 0x58], rdx
mov rdx, qword [r13 + 0x58]
xor qword [rdi], rdx
mov rdx, qword [r13]
xor qword [rdi + 8], rdx
add r11, 0x60
mov rdx, qword [r13 + 8]
xor qword [rdi + 0x10], rdx
add rax, 0x60
mov rdx, qword [r13 + 0x10]
xor qword [rdi + 0x18], rdx
mov rdx, qword [r13 + 0x18]
xor qword [rdi + 0x20], rdx
mov rdx, qword [r13 + 0x20]
xor qword [rdi + 0x28], rdx
mov rdx, qword [r13 + 0x28]
xor qword [rdi + 0x30], rdx
mov rdx, qword [r13 + 0x30]
xor qword [rdi + 0x38], rdx
mov rdx, qword [r13 + 0x38]
xor qword [rdi + 0x40], rdx
mov rdx, qword [r13 + 0x40]
xor qword [rdi + 0x48], rdx
mov rdx, qword [r13 + 0x48]
add qword [rsp + 0x30], 1
xor qword [rdi + 0x50], rdx
mov rcx, qword [rsp + 0x30]
mov rdx, qword [r13 + 0x50]
xor qword [rdi + 0x58], rdx
add rdi, 0x60
cmp rcx, qword [rsp + 0xa8]
jne 0x6d9da224
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret