Function at 0x5f06c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov dword [rsp + 0x3c], edx
and edx, 7
mov rbx, rcx
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x30], r9
jne 0x5f1250
mov edx, dword [rsp + 0x3c]
test edx, edx
je 0x5f1237
lea r11, [0x007b6b00]
lea r10, [0x007b6f00]
lea r9, [0x007b6a00]
lea r8, [0x007b6e00]
lea rcx, [0x007b6900]
nop dword [rax]
mov rdi, qword [rsp + 0x30]
movzx edx, byte [rdi + 7]
movzx eax, byte [rdi + 6]
movzx esi, byte [rdi + 2]
shl edx, 8
or edx, eax
movzx eax, byte [rdi + 5]
shl edx, 8
or edx, eax
movzx eax, byte [rdi + 4]
shl edx, 8
or edx, eax
movzx eax, byte [rdi + 3]
shl eax, 8
or eax, esi
movzx esi, byte [rdi + 1]
shl eax, 8
or eax, esi
movzx esi, byte [rdi]
shl eax, 8
or eax, esi
mov esi, edx
shr esi, 4
xor esi, eax
and esi, 0xf0f0f0f
mov ebp, esi
xor eax, esi
shl ebp, 4
xor ebp, edx
mov edx, eax
shr edx, 0x10
xor edx, ebp
movzx edx, dx
xor ebp, edx
mov edi, edx
shl edi, 0x10
mov edx, ebp
xor edi, eax
shr edx, 2
xor edx, edi
and edx, 0x33333333
xor edi, edx
lea esi, [rdx*4]
mov eax, edi
xor esi, ebp
shr eax, 8
xor eax, esi
and eax, 0xff00ff
mov edx, eax
shl edx, 8
xor edx, edi
xor eax, esi
mov edi, dword [rbx + 0x78]
ror eax, 1
mov esi, dword [rbx + 0x7c]
mov r15d, eax
xor r15d, edx
and r15d, 0x55555555
xor edx, r15d
xor eax, r15d
ror edx, 1
xor edi, edx
xor esi, edx
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor eax, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor eax, dword [r10 + r15]
and r13d, 0xfc
shr r12d, 0x10
xor eax, dword [r9 + r14]
and r12d, 0xfc
shr edi, 0x18
xor eax, dword [r8 + r13]
lea r14, [0x007b6800]
and edi, 0xfc
xor eax, dword [rcx + r12]
mov ebp, esi
shr esi, 0x18
xor eax, dword [r14 + rdi]
shr ebp, 0x10
lea rdi, [0x007b6d00]
and ebp, 0xfc
and esi, 0xfc
xor eax, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor eax, dword [rdi + rsi]
mov esi, dword [rbx + 0x74]
mov edi, dword [rbx + 0x70]
xor esi, eax
ror esi, 0x1c
xor edi, eax
mov r15d, edi
mov r14d, edi
mov r13d, esi
and r15d, 0xfc
shr r14d, 8
shr r13d, 8
xor edx, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
mov r12d, edi
and r13d, 0xfc
xor edx, dword [r10 + r15]
shr r12d, 0x10
shr edi, 0x18
xor edx, dword [r9 + r14]
and r12d, 0xfc
lea r14, [0x007b6800]
xor edx, dword [r8 + r13]
and edi, 0xfc
mov ebp, esi
xor edx, dword [rcx + r12]
shr ebp, 0x10
shr esi, 0x18
xor edx, dword [r14 + rdi]
lea rdi, [0x007b6d00]
and ebp, 0xfc
and esi, 0xfc
xor edx, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor edx, dword [rdi + rsi]
mov edi, dword [rbx + 0x68]
mov esi, dword [rbx + 0x6c]
xor edi, edx
xor esi, edx
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
mov ebp, esi
xor eax, dword [r11 + r15]
mov r12d, edi
mov r15d, esi
shr r13d, 8
shr ebp, 0x10
shr r14d, 8
shr r12d, 0x10
and r15d, 0xfc
and r14d, 0xfc
xor eax, dword [r10 + r15]
and r13d, 0xfc
and r12d, 0xfc
xor eax, dword [r9 + r14]
shr edi, 0x18
lea r14, [0x007b6800]
xor eax, dword [r8 + r13]
and edi, 0xfc
and ebp, 0xfc
xor eax, dword [rcx + r12]
shr esi, 0x18
xor eax, dword [r14 + rdi]
lea rdi, [0x007b6d00]
and esi, 0xfc
xor eax, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor eax, dword [rdi + rsi]
mov edi, dword [rbx + 0x60]
mov esi, dword [rbx + 0x64]
xor edi, eax
xor esi, eax
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor edx, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor edx, dword [r10 + r15]
and r13d, 0xfc
shr r12d, 0x10
xor edx, dword [r9 + r14]
and r12d, 0xfc
mov ebp, esi
xor edx, dword [r8 + r13]
shr ebp, 0x10
lea r14, [0x007b6800]
xor edx, dword [rcx + r12]
shr edi, 0x18
and ebp, 0xfc
and edi, 0xfc
shr esi, 0x18
xor edx, dword [r14 + rdi]
lea rdi, [0x007b6d00]
and esi, 0xfc
xor edx, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor edx, dword [rdi + rsi]
mov edi, dword [rbx + 0x58]
mov esi, dword [rbx + 0x5c]
xor edi, edx
xor esi, edx
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor eax, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor eax, dword [r10 + r15]
and r13d, 0xfc
shr r12d, 0x10
xor eax, dword [r9 + r14]
and r12d, 0xfc
shr edi, 0x18
xor eax, dword [r8 + r13]
lea r14, [0x007b6800]
and edi, 0xfc
xor eax, dword [rcx + r12]
mov ebp, esi
shr esi, 0x18
xor eax, dword [r14 + rdi]
shr ebp, 0x10
lea rdi, [0x007b6d00]
and ebp, 0xfc
and esi, 0xfc
xor eax, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor eax, dword [rdi + rsi]
mov esi, dword [rbx + 0x54]
mov edi, dword [rbx + 0x50]
xor esi, eax
xor edi, eax
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor edx, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor edx, dword [r10 + r15]
and r13d, 0xfc
shr r12d, 0x10
xor edx, dword [r9 + r14]
and r12d, 0xfc
shr edi, 0x18
xor edx, dword [r8 + r13]
lea r14, [0x007b6800]
and edi, 0xfc
xor edx, dword [rcx + r12]
mov ebp, esi
shr esi, 0x18
xor edx, dword [r14 + rdi]
shr ebp, 0x10
lea rdi, [0x007b6d00]
and ebp, 0xfc
and esi, 0xfc
xor edx, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor edx, dword [rdi + rsi]
mov esi, dword [rbx + 0x4c]
mov edi, dword [rbx + 0x48]
xor esi, edx
xor edi, edx
ror esi, 0x1c
mov r15d, edi
mov r14d, edi
mov r13d, esi
mov ebp, esi
mov r12d, edi
and r15d, 0xfc
shr r13d, 8
shr ebp, 0x10
shr r14d, 8
shr r12d, 0x10
xor eax, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r13d, 0xfc
and r15d, 0xfc
and r12d, 0xfc
shr edi, 0x18
xor eax, dword [r10 + r15]
and edi, 0xfc
and ebp, 0xfc
xor eax, dword [r9 + r14]
lea r14, [0x007b6800]
shr esi, 0x18
xor eax, dword [r8 + r13]
and esi, 0xfc
xor eax, dword [rcx + r12]
xor eax, dword [r14 + rdi]
lea rdi, [0x007b6d00]
xor eax, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor eax, dword [rdi + rsi]
mov edi, dword [rbx + 0x40]
mov esi, dword [rbx + 0x44]
xor edi, eax
xor esi, eax
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor edx, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor edx, dword [r10 + r15]
and r13d, 0xfc
shr r12d, 0x10
xor edx, dword [r9 + r14]
mov ebp, esi
and r12d, 0xfc
xor edx, dword [r8 + r13]
shr ebp, 0x10
lea r14, [0x007b6800]
xor edx, dword [rcx + r12]
shr edi, 0x18
and ebp, 0xfc
and edi, 0xfc
shr esi, 0x18
xor edx, dword [r14 + rdi]
lea rdi, [0x007b6d00]
and esi, 0xfc
xor edx, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor edx, dword [rdi + rsi]
mov edi, dword [rbx + 0x38]
mov esi, dword [rbx + 0x3c]
xor edi, edx
xor esi, edx
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor eax, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor eax, dword [r10 + r15]
and r13d, 0xfc
shr r12d, 0x10
xor eax, dword [r9 + r14]
and r12d, 0xfc
shr edi, 0x18
xor eax, dword [r8 + r13]
lea r14, [0x007b6800]
and edi, 0xfc
xor eax, dword [rcx + r12]
mov ebp, esi
shr esi, 0x18
xor eax, dword [r14 + rdi]
shr ebp, 0x10
lea rdi, [0x007b6d00]
and ebp, 0xfc
and esi, 0xfc
xor eax, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor eax, dword [rdi + rsi]
mov edi, dword [rbx + 0x30]
mov esi, dword [rbx + 0x34]
xor edi, eax
xor esi, eax
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor edx, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor edx, dword [r10 + r15]
and r13d, 0xfc
shr r12d, 0x10
xor edx, dword [r9 + r14]
and r12d, 0xfc
shr edi, 0x18
xor edx, dword [r8 + r13]
lea r14, [0x007b6800]
and edi, 0xfc
xor edx, dword [rcx + r12]
mov ebp, esi
shr esi, 0x18
xor edx, dword [r14 + rdi]
shr ebp, 0x10
lea rdi, [0x007b6d00]
and ebp, 0xfc
and esi, 0xfc
xor edx, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor edx, dword [rdi + rsi]
mov esi, dword [rbx + 0x2c]
mov edi, dword [rbx + 0x28]
xor esi, edx
xor edi, edx
ror esi, 0x1c
mov r14d, edi
mov r12d, edi
mov r13d, esi
mov ebp, esi
mov r15d, edi
shr r13d, 8
shr ebp, 0x10
shr r14d, 8
shr r12d, 0x10
and r15d, 0xfc
and r14d, 0xfc
xor eax, dword [r11 + r15]
mov r15d, esi
and r13d, 0xfc
and r15d, 0xfc
and r12d, 0xfc
shr edi, 0x18
xor eax, dword [r10 + r15]
and edi, 0xfc
and ebp, 0xfc
xor eax, dword [r9 + r14]
lea r14, [0x007b6800]
shr esi, 0x18
xor eax, dword [r8 + r13]
and esi, 0xfc
xor eax, dword [rcx + r12]
xor eax, dword [r14 + rdi]
lea rdi, [0x007b6d00]
xor eax, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor eax, dword [rdi + rsi]
mov edi, dword [rbx + 0x20]
mov esi, dword [rbx + 0x24]
xor edi, eax
xor esi, eax
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor edx, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor edx, dword [r10 + r15]
and r13d, 0xfc
mov ebp, esi
xor edx, dword [r9 + r14]
shr r12d, 0x10
shr ebp, 0x10
xor edx, dword [r8 + r13]
lea r14, [0x007b6800]
and r12d, 0xfc
shr edi, 0x18
xor edx, dword [rcx + r12]
and ebp, 0xfc
and edi, 0xfc
shr esi, 0x18
xor edx, dword [r14 + rdi]
lea rdi, [0x007b6d00]
and esi, 0xfc
xor edx, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor edx, dword [rdi + rsi]
mov edi, dword [rbx + 0x18]
mov esi, dword [rbx + 0x1c]
xor edi, edx
xor esi, edx
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor eax, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor eax, dword [r10 + r15]
and r13d, 0xfc
shr r12d, 0x10
xor eax, dword [r9 + r14]
and r12d, 0xfc
shr edi, 0x18
xor eax, dword [r8 + r13]
lea r14, [0x007b6800]
and edi, 0xfc
xor eax, dword [rcx + r12]
mov ebp, esi
shr esi, 0x18
xor eax, dword [r14 + rdi]
shr ebp, 0x10
lea rdi, [0x007b6d00]
and ebp, 0xfc
xor eax, dword [rdi + rbp]
lea rdi, [0x007b6c00]
and esi, 0xfc
xor eax, dword [rdi + rsi]
mov edi, dword [rbx + 0x10]
mov esi, dword [rbx + 0x14]
xor edi, eax
xor esi, eax
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor edx, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor edx, dword [r10 + r15]
and r13d, 0xfc
shr r12d, 0x10
xor edx, dword [r9 + r14]
and r12d, 0xfc
shr edi, 0x18
xor edx, dword [r8 + r13]
lea r14, [0x007b6800]
and edi, 0xfc
xor edx, dword [rcx + r12]
mov ebp, esi
shr esi, 0x18
xor edx, dword [r14 + rdi]
shr ebp, 0x10
lea rdi, [0x007b6d00]
and ebp, 0xfc
and esi, 0xfc
xor edx, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor edx, dword [rdi + rsi]
mov esi, dword [rbx + 0xc]
mov edi, dword [rbx + 8]
xor esi, edx
xor edi, edx
ror esi, 0x1c
mov r14d, edi
mov r12d, edi
mov r13d, esi
mov ebp, esi
mov r15d, edi
shr r13d, 8
shr ebp, 0x10
shr r14d, 8
shr r12d, 0x10
and r15d, 0xfc
and r14d, 0xfc
xor eax, dword [r11 + r15]
mov r15d, esi
and r13d, 0xfc
and r15d, 0xfc
and r12d, 0xfc
shr edi, 0x18
xor eax, dword [r10 + r15]
and edi, 0xfc
and ebp, 0xfc
xor eax, dword [r9 + r14]
lea r14, [0x007b6800]
shr esi, 0x18
xor eax, dword [r8 + r13]
and esi, 0xfc
xor eax, dword [rcx + r12]
xor eax, dword [r14 + rdi]
lea rdi, [0x007b6d00]
xor eax, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor eax, dword [rdi + rsi]
mov edi, dword [rbx]
mov esi, dword [rbx + 4]
xor edi, eax
xor esi, eax
mov r15d, edi
ror esi, 0x1c
mov r14d, edi
and r15d, 0xfc
mov r13d, esi
shr r14d, 8
xor edx, dword [r11 + r15]
mov r15d, esi
and r14d, 0xfc
and r15d, 0xfc
shr r13d, 8
mov r12d, edi
xor edx, dword [r10 + r15]
mov ebp, esi
shr r12d, 0x10
xor edx, dword [r9 + r14]
and r13d, 0xfc
shr ebp, 0x10
lea r14, [0x007b6800]
xor edx, dword [r8 + r13]
and r12d, 0xfc
shr edi, 0x18
xor edx, dword [rcx + r12]
and ebp, 0xfc
and edi, 0xfc
shr esi, 0x18
ror eax, 0x1f
xor edx, dword [r14 + rdi]
lea rdi, [0x007b6d00]
and esi, 0xfc
xor edx, dword [rdi + rbp]
lea rdi, [0x007b6c00]
xor edx, dword [rdi + rsi]
mov esi, edx
xor esi, eax
and esi, 0x55555555
xor eax, esi
xor edx, esi
mov esi, eax
ror edx, 0x1f
shr esi, 8
xor esi, edx
and esi, 0xff00ff
mov ebp, esi
xor edx, esi
shl ebp, 8
xor ebp, eax
mov eax, edx
shr eax, 2
xor eax, ebp
and eax, 0x33333333
lea edi, [rax*4]
xor eax, ebp
xor edi, edx
mov edx, eax
shr edx, 0x10
xor edx, edi
movzx edx, dx
xor edi, edx
mov esi, edx
shl esi, 0x10
mov edx, edi
xor esi, eax
shr edx, 4
xor edx, esi
and edx, 0xf0f0f0f
mov eax, edx
xor edx, esi
shl eax, 4
mov esi, edx
xor eax, edi
mov rdi, qword [rsp + 0x28]
shr esi, 8
mov byte [rdi], dl
mov byte [rdi + 1], sil
mov esi, edx
shr edx, 0x18
shr esi, 0x10
mov byte [rdi + 4], al
mov byte [rdi + 3], dl
mov edx, eax
add qword [rsp + 0x30], 8
shr edx, 8
add qword [rsp + 0x28], 8
mov byte [rdi + 2], sil
mov byte [rdi + 5], dl
mov edx, eax
shr eax, 0x18
shr edx, 0x10
sub dword [rsp + 0x3c], 8
mov byte [rdi + 6], dl
mov byte [rdi + 7], al
jne 0x5f0720
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, [0x007b6360]
lea rcx, str.__length___DES_BLOCK_SIZE_
mov r8d, 0x11f
call fcn.0064b2d0
jmp 0x5f06f6