Function at 0x503d00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
movaps xmmword [rsp + 0x60], xmm6
mov rbx, qword [rsp + 0xe0]
mov r14d, dword [rbx]
mov ebx, dword [rbx + 4]
mov ebp, r8d
mov rdi, rcx
mov rax, rdx
mov rsi, r9
mov r8, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf0]
mov edx, dword [r8]
mov r10d, dword [r8 + 4]
mov r11d, dword [rcx]
mov r9d, dword [rcx + 4]
lea ecx, [rbp - 8]
mov r8d, dword [rsp + 0xf8]
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], r10d
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x48], ecx
test r8d, r8d
je 0x503eb0
test ecx, ecx
js 0x5040b0
shr ecx, 3
movd xmm6, edx
lea r13, [rsp + 0x58]
mov r15, rax
mov dword [rsp + 0x40], ecx
add ecx, 1
movd xmm3, r10d
mov edx, ebx
shl rcx, 3
mov qword [rsp + 0xc8], rax
mov rbx, r13
mov eax, r14d
mov qword [rsp + 0x38], rcx
lea r12, [rdi + rcx]
mov r14d, ebp
punpckldq xmm6, xmm3
mov rbp, rdi
mov r13d, r9d
mov edi, r11d
nop dword [rax + rax]
movd xmm1, eax
movd xmm2, edx
mov rcx, rbx
mov rdx, rsi
movq xmm0, qword [rbp]
punpckldq xmm1, xmm2
add r15, 8
add rbp, 8
mov r8d, 1
pxor xmm0, xmm6
pxor xmm0, xmm1
movq qword [rsp + 0x58], xmm0
call sym.DES_encrypt1
mov eax, dword [rsp + 0x58]
xor eax, edi
mov edx, eax
movzx ecx, ah
mov byte [r15 - 8], al
shr edx, 0x10
mov byte [r15 - 7], cl
mov byte [r15 - 6], dl
mov edx, eax
shr edx, 0x18
mov byte [r15 - 5], dl
mov edx, dword [rsp + 0x5c]
xor edx, r13d
movzx ecx, dh
mov byte [r15 - 4], dl
mov byte [r15 - 3], cl
mov ecx, edx
shr ecx, 0x10
mov byte [r15 - 2], cl
mov ecx, edx
shr ecx, 0x18
mov byte [r15 - 1], cl
cmp rbp, r12
jne 0x503dd0
mov ecx, dword [rsp + 0x40]
mov ebp, r14d
mov ebx, edx
mov r14d, eax
mov rax, qword [rsp + 0xc8]
add rax, qword [rsp + 0x38]
neg ecx
shl ecx, 3
lea r8d, [rbp + rcx - 0x10]
mov ebp, dword [rsp + 0x48]
add ebp, ecx
cmp r8d, 0xfffffff8
je 0x5040c0
movsxd rcx, ebp
add r12, rcx
cmp ebp, 7
ja case.0x503eaa.0
lea r9, [0x0079b200]
mov ebp, ebp
movsxd rcx, dword [r9 + rbp*4]
add rcx, r9
jmp rcx
mov edx, dword [rsp + 0x48]
test edx, edx
jle 0x504020
sub ebp, 9
mov r15, rdi
lea r13, [rsp + 0x58]
mov qword [rsp + 0xc0], rdi
shr ebp, 3
mov rdi, rsi
mov esi, r14d
mov r14, r15
lea ecx, [rbp + 1]
mov dword [rsp + 0x4c], ebp
mov r15, rax
shl rcx, 3
mov qword [rsp + 0x40], rcx
add rcx, rax
mov qword [rsp + 0x38], rcx
nop word cs:[rax + rax]
mov edx, dword [rsp + 0x30]
mov r12d, esi
mov esi, dword [r14]
mov ebp, ebx
mov ebx, dword [r14 + 4]
xor r8d, r8d
mov rcx, r13
add r15, 8
xor edx, esi
add r14, 8
mov dword [rsp + 0x58], edx
mov edx, dword [rsp + 0x34]
xor edx, ebx
mov dword [rsp + 0x5c], edx
mov rdx, rdi
call sym.DES_encrypt1
mov edx, dword [rsp + 0x28]
xor edx, dword [rsp + 0x58]
xor r12d, edx
mov edx, dword [rsp + 0x2c]
xor edx, dword [rsp + 0x5c]
xor ebp, edx
mov eax, r12d
mov edx, r12d
mov byte [r15 - 8], r12b
shr edx, 0x10
movzx eax, ah
mov byte [r15 - 4], bpl
shr r12d, 0x18
mov byte [r15 - 7], al
mov eax, ebp
mov byte [r15 - 6], dl
mov edx, ebp
movzx eax, ah
shr ebp, 0x18
mov byte [r15 - 5], r12b
shr edx, 0x10
mov byte [r15 - 3], al
mov byte [r15 - 2], dl
mov byte [r15 - 1], bpl
cmp r15, qword [rsp + 0x38]
jne 0x503f00
mov ebp, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
mov r14d, esi
mov rsi, rdi
mov rdi, qword [rsp + 0xc0]
add rdi, qword [rsp + 0x40]
neg ebp
lea ebp, [rax + rbp*8]
mov r12d, dword [rdi]
mov eax, dword [rsp + 0x30]
mov rcx, r13
xor r8d, r8d
mov edi, dword [rdi + 4]
mov rdx, rsi
xor eax, r12d
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x34]
xor eax, edi
mov dword [rsp + 0x5c], eax
call sym.DES_encrypt1
mov r13d, dword [rsp + 0x28]
mov r15, qword [rsp + 0x38]
movsxd rax, ebp
xor r13d, dword [rsp + 0x58]
xor r13d, r14d
mov r14d, dword [rsp + 0x2c]
xor r14d, dword [rsp + 0x5c]
add r15, rax
xor ebx, r14d
cmp ebp, 8
ja case.0x50401a.0
lea rdx, [0x0079b220]
mov ebp, ebp
movsxd rax, dword [rdx + rbp*4]
add rax, rdx
jmp rax
cmp dword [rsp + 0x48], 0xfffffff8
jne 0x5042ad
mov rax, qword [rsp + 0xe0]
mov dword [rax], r14d
mov dword [rax + 4], ebx
movaps xmm6, xmmword [rsp + 0x60]
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, ebx
sub r15, 1
shr eax, 0x18
mov byte [r15], al
mov eax, ebx
sub r15, 1
shr eax, 0x10
mov byte [r15], al
movzx ecx, bh
lea rax, [r15 - 1]
mov byte [r15 - 1], cl
mov byte [rax - 1], bl
lea r15, [rax - 1]
mov eax, r13d
lea rdx, [r15 - 1]
shr eax, 0x18
mov byte [r15 - 1], al
mov ecx, r13d
lea rax, [rdx - 1]
shr ecx, 0x10
mov byte [rdx - 1], cl
mov ebx, r13d
lea r15, [rax - 1]
mov byte [rax - 1], bh
mov byte [r15 - 1], r13b
mov ebx, edi
mov r14d, r12d
jmp 0x50402b
mov r8d, ecx
mov r12, rdi
jmp 0x503e81
mov eax, r14d
mov ecx, r14d
mov r8d, r14d
shr r14d, 0x18
movzx eax, ah
mov r10d, ebx
movzx edi, bh
shr ecx, 0x10
mov r9d, eax
mov eax, ebx
mov r11d, r14d
shr ebx, 0x18
shr eax, 0x10
mov edx, eax
movzx ebx, bl
movzx eax, dl
movzx r11d, r11b
movzx ecx, cl
shl rbx, 8
movzx edx, r9b
or rbx, rax
movzx eax, dil
shl rbx, 8
or rbx, rax
movzx eax, r10b
shl rbx, 8
or rbx, rax
movzx eax, r8b
shl rbx, 8
or rbx, r11
shl rbx, 8
or rbx, rcx
shl rbx, 8
or rbx, rdx
shl rbx, 8
or rbx, rax
mov rax, qword [rsp + 0xe0]
mov qword [rax], rbx
jmp 0x504039
xor ecx, ecx
movzx r8d, byte [r12 - 1]
sub r12, 1
shl r8d, 8
or r8d, ecx
movzx r9d, byte [r12 - 1]
lea rcx, [r12 - 1]
or r8d, r9d
movzx r9d, byte [rcx - 1]
lea r12, [rcx - 1]
shl r9d, 0x18
movzx ecx, byte [r12 - 1]
lea r10, [r12 - 1]
shl ecx, 0x10
or r9d, ecx
movzx ecx, byte [r10 - 1]
lea r12, [r10 - 1]
shl ecx, 8
or ecx, r9d
movzx r9d, byte [r12 - 1]
or ecx, r9d
mov r11d, dword [rsp + 0x28]
xor ebx, dword [rsp + 0x2c]
mov rdx, rsi
mov qword [rsp + 0xc8], rax
xor ebx, r8d
mov r8d, 1
xor r11d, r14d
movd xmm4, ebx
xor r11d, ecx
lea rcx, [rsp + 0x58]
movd xmm0, r11d
punpckldq xmm0, xmm4
movq qword [rsp + 0x58], xmm0
call sym.DES_encrypt1
mov edx, dword [rsp + 0x30]
xor edx, dword [rsp + 0x58]
movzx eax, dh
mov esi, dword [rsp + 0x34]
xor esi, dword [rsp + 0x5c]
mov ecx, edx
mov r9d, eax
mov eax, edx
mov ebx, esi
mov r8d, edx
shr eax, 0x18
movzx edi, bh
shr ecx, 0x10
mov r10d, esi
mov r11d, eax
mov rax, qword [rsp + 0xc8]
shr ebx, 0x18
mov dword [rax], edx
mov edx, esi
mov dword [rax + 4], esi
shr edx, 0x10
jmp 0x5040e9
xor r8d, r8d
xor ecx, ecx
jmp 0x50419e
mov r10, r12
xor r8d, r8d
xor r9d, r9d
jmp 0x50418f
xor r8d, r8d
xor r9d, r9d
jmp 0x50417e
mov rcx, r12
xor r8d, r8d
jmp 0x504171
xor r8d, r8d
jmp 0x504163
movzx r8d, byte [r12 - 1]
sub r12, 1
mov ecx, r8d
shl ecx, 0x10
jmp 0x504152
mov rdx, r15
jmp 0x504087
mov rax, r15
jmp 0x504072
mov rax, r15
jmp 0x504094
mov qword [rsp + 0x38], rax
lea r13, [rsp + 0x58]
jmp 0x503fb3
mov ebx, edi
mov r14d, r12d
jmp 0x50402b
xor r8d, r8d
xor ecx, ecx
jmp 0x5041a7