Function at 0x14005d180
Capabilities:
Encode data using xor
Hash data using tiger

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov r15, qword [rcx]
lea rdi, [0x14017df30]
mov r12, qword [rdx]
lea rbx, [rdx + 8]
mov r13, qword [rbx]
mov r14, rcx
mov rbp, rdx
mov qword [rsp + 0xc0], r15
mov r9, r12
mov r10, r15
xor r9, qword [rcx + 0x10]
lea r15, [0x14017df30]
mov rax, r9
shr rax, 0x30
movzx edx, al
mov rax, r9
shr rax, 0x20
movzx ecx, al
mov rax, r9
shr rax, 0x10
mov r8, qword [rdi + rdx*8 + 0x1800]
xor r8, qword [rdi + rcx*8 + 0x1000]
movzx ecx, al
movzx eax, r9b
xor r8, qword [rdi + rcx*8 + 0x800]
xor r8, qword [rdi + rax*8]
mov rax, r9
shr rax, 0x28
sub r10, r8
movzx edx, al
xor r10, r13
mov rax, r9
shr rax, 0x18
movzx ecx, al
mov rax, r9
mov r8, qword [rdi + rdx*8 + 0x800]
shr rax, 8
xor r8, qword [rdi + rcx*8 + 0x1000]
movzx ecx, al
mov rax, r9
shr rax, 0x38
xor r8, qword [rdi + rcx*8 + 0x1800]
xor r8, qword [rdi + rax*8]
mov rax, r10
add r8, qword [r14 + 8]
shr rax, 0x30
movzx edx, al
mov rax, r10
shr rax, 0x20
movzx ecx, al
lea r11, [r8 + r8*4]
mov rax, r10
mov r8, qword [rdi + rdx*8 + 0x1800]
shr rax, 0x10
xor r8, qword [rdi + rcx*8 + 0x1000]
movzx ecx, al
movzx eax, r10b
xor r8, qword [rdi + rcx*8 + 0x800]
xor r8, qword [rdi + rax*8]
mov rax, r10
shr rax, 0x28
sub r11, r8
movzx edx, al
mov rax, r10
shr rax, 0x18
movzx ecx, al
mov rax, r10
shr rax, 8
mov r8, qword [rdi + rdx*8 + 0x800]
xor r8, qword [rdi + rcx*8 + 0x1000]
movzx ecx, al
mov rax, r10
shr rax, 0x38
xor r8, qword [rdi + rcx*8 + 0x1800]
xor r8, qword [rdi + rax*8]
mov edi, 2
add r8, r9
mov r9d, edi
lea rsi, [r8 + r8*4]
nop dword [rax]
nop word [rax + rax]
xor r11, qword [rbx + 8]
lea rbx, [rbx + 0x18]
mov rax, r11
shr rax, 0x30
movzx edx, al
mov rax, r11
shr rax, 0x20
movzx ecx, al
mov rax, r11
shr rax, 0x10
mov r8, qword [r15 + rdx*8 + 0x1800]
xor r8, qword [r15 + rcx*8 + 0x1000]
movzx ecx, al
movzx eax, r11b
xor r8, qword [r15 + rcx*8 + 0x800]
xor r8, qword [r15 + rax*8]
mov rax, r11
shr rax, 0x28
sub rsi, r8
xor rsi, qword [rbx - 8]
movzx edx, al
mov rax, r11
shr rax, 0x18
movzx ecx, al
mov rax, r11
shr rax, 8
mov r8, qword [r15 + rdx*8 + 0x800]
xor r8, qword [r15 + rcx*8 + 0x1000]
movzx ecx, al
mov rax, r11
shr rax, 0x38
xor r8, qword [r15 + rcx*8 + 0x1800]
xor r8, qword [r15 + rax*8]
mov rax, rsi
shr rax, 0x30
add r8, r10
movzx edx, al
mov rax, rsi
shr rax, 0x20
movzx ecx, al
mov rax, rsi
shr rax, 0x10
lea r10, [r8 + r8*4]
mov r8, qword [r15 + rdx*8 + 0x1800]
xor r8, qword [r15 + rcx*8 + 0x1000]
movzx ecx, al
movzx eax, sil
xor r8, qword [r15 + rcx*8 + 0x800]
xor r8, qword [r15 + rax*8]
mov rax, rsi
shr rax, 0x28
sub r10, r8
xor r10, qword [rbx]
movzx edx, al
mov rax, rsi
shr rax, 0x18
movzx ecx, al
mov rax, rsi
shr rax, 8
mov r8, qword [r15 + rdx*8 + 0x800]
xor r8, qword [r15 + rcx*8 + 0x1000]
movzx ecx, al
mov rax, rsi
shr rax, 0x38
xor r8, qword [r15 + rcx*8 + 0x1800]
xor r8, qword [r15 + rax*8]
mov rax, r10
shr rax, 0x30
add r8, r11
movzx edx, al
mov rax, r10
shr rax, 0x20
movzx ecx, al
mov rax, r10
lea r11, [r8 + r8*4]
shr rax, 0x10
mov r8, qword [r15 + rdx*8 + 0x1800]
xor r8, qword [r15 + rcx*8 + 0x1000]
movzx ecx, al
movzx eax, r10b
xor r8, qword [r15 + rcx*8 + 0x800]
xor r8, qword [r15 + rax*8]
mov rax, r10
shr rax, 0x28
sub r11, r8
movzx edx, al
mov rax, r10
shr rax, 0x18
movzx ecx, al
mov rax, r10
shr rax, 8
mov r8, qword [r15 + rdx*8 + 0x800]
xor r8, qword [r15 + rcx*8 + 0x1000]
movzx ecx, al
mov rax, r10
shr rax, 0x38
xor r8, qword [r15 + rcx*8 + 0x1800]
xor r8, qword [r15 + rax*8]
add r8, rsi
lea rsi, [r8 + r8*4]
sub r9, 1
jne 0x14005d2f0
mov rbx, qword [rbp + 0x38]
movabs rcx, 0xa5a5a5a5a5a5a5a5
mov rdx, qword [rbp + 0x10]
mov rax, rbx
xor rax, rcx
mov r9, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x18]
sub r12, rax
xor r13, r12
add rdx, r13
mov rax, r13
not rax
shl rax, 0x13
xor rax, rdx
sub rcx, rax
mov r8, rcx
xor r8, qword [rbp + 0x20]
add r9, r8
mov qword [rsp + 0xb0], r8
mov rax, r8
mov r8, qword [rbp + 0x30]
not rax
shr rax, 0x17
xor rax, r9
sub r8, rax
xor rbx, r8
add r12, rbx
mov rax, rbx
not rax
mov qword [rsp + 0x20], r12
shl rax, 0x13
xor rax, r12
sub r13, rax
mov rax, r13
mov qword [rsp + 0x28], r13
xor rax, rdx
add rcx, rax
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x30], rax
not rax
shr rax, 0x17
xor rax, rcx
mov qword [rsp], rcx
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0xb0]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0xb0], rcx
xor rax, r9
mov qword [rsp + 0x40], rcx
mov qword [rsp + 8], rax
movabs rcx, 0x123456789abcdef
mov qword [rsp + 0x48], rax
mov r9, r12
add rax, r8
xor r9, r11
mov qword [rsp + 0xb8], rax
lea r11, [0x14017df30]
mov qword [rsp + 0x50], rax
xor rax, rcx
sub rbx, rax
mov rax, r9
shr rax, 0x30
movzx edx, al
mov rax, r9
shr rax, 0x20
movzx ecx, al
mov rax, r9
shr rax, 0x10
mov r8, qword [r11 + rdx*8 + 0x1800]
mov qword [rsp + 0x10], rbx
xor r8, qword [r11 + rcx*8 + 0x1000]
movzx ecx, al
movzx eax, r9b
mov qword [rsp + 0x58], rbx
xor r8, qword [r11 + rcx*8 + 0x800]
xor r8, qword [r11 + rax*8]
mov rax, r9
sub rsi, r8
xor rsi, r13
shr rax, 0x28
mov r15, qword [rsp + 0xc0]
movzx edx, al
mov rax, r9
shr rax, 0x18
movzx ecx, al
mov rax, r9
shr rax, 8
mov r8, qword [r11 + rdx*8 + 0x800]
xor r8, qword [r11 + rcx*8 + 0x1000]
movzx ecx, al
mov rax, r9
shr rax, 0x38
xor r8, qword [r11 + rcx*8 + 0x1800]
xor r8, qword [r11 + rax*8]
mov rax, rsi
shr rax, 0x30
add r8, r10
movzx edx, al
lea r10, [rsp + 0x28]
imul rbp, r8, 7
mov r8, qword [r11 + rdx*8 + 0x1800]
mov rax, rsi
shr rax, 0x20
movzx ecx, al
mov rax, rsi
shr rax, 0x10
xor r8, qword [r11 + rcx*8 + 0x1000]
movzx ecx, al
movzx eax, sil
xor r8, qword [r11 + rcx*8 + 0x800]
xor r8, qword [r11 + rax*8]
mov rax, rsi
shr rax, 0x28
sub rbp, r8
movzx edx, al
mov rax, rsi
shr rax, 0x18
movzx ecx, al
mov rax, rsi
shr rax, 8
mov r8, qword [r11 + rdx*8 + 0x800]
xor r8, qword [r11 + rcx*8 + 0x1000]
movzx ecx, al
mov rax, rsi
shr rax, 0x38
xor r8, qword [r11 + rcx*8 + 0x1800]
xor r8, qword [r11 + rax*8]
add r8, r9
imul rax, r8, 7
nop dword [rax]
xor rbp, qword [r10 + 8]
lea r10, [r10 + 0x18]
mov rcx, rbp
shr rcx, 0x30
movzx r8d, cl
mov rcx, rbp
shr rcx, 0x20
movzx edx, cl
mov rcx, rbp
shr rcx, 0x10
mov r9, qword [r11 + r8*8 + 0x1800]
xor r9, qword [r11 + rdx*8 + 0x1000]
movzx edx, cl
movzx ecx, bpl
xor r9, qword [r11 + rdx*8 + 0x800]
xor r9, qword [r11 + rcx*8]
mov rcx, rbp
shr rcx, 0x28
sub rax, r9
xor rax, qword [r10 - 8]
movzx r8d, cl
mov rcx, rbp
shr rcx, 0x18
movzx edx, cl
mov rcx, rbp
shr rcx, 8
mov r9, qword [r11 + r8*8 + 0x800]
xor r9, qword [r11 + rdx*8 + 0x1000]
movzx edx, cl
mov rcx, rbp
shr rcx, 0x38
xor r9, qword [r11 + rdx*8 + 0x1800]
xor r9, qword [r11 + rcx*8]
mov rcx, rax
shr rcx, 0x30
add r9, rsi
movzx r8d, cl
mov rcx, rax
shr rcx, 0x20
movzx edx, cl
mov rcx, rax
shr rcx, 0x10
imul rsi, r9, 7
mov r9, qword [r11 + r8*8 + 0x1800]
xor r9, qword [r11 + rdx*8 + 0x1000]
movzx edx, cl
movzx ecx, al
xor r9, qword [r11 + rdx*8 + 0x800]
xor r9, qword [r11 + rcx*8]
mov rcx, rax
shr rcx, 0x28
sub rsi, r9
xor rsi, qword [r10]
movzx r8d, cl
mov rcx, rax
shr rcx, 0x18
movzx edx, cl
mov rcx, rax
shr rcx, 8
mov r9, qword [r11 + r8*8 + 0x800]
xor r9, qword [r11 + rdx*8 + 0x1000]
movzx edx, cl
mov rcx, rax
shr rcx, 0x38
xor r9, qword [r11 + rdx*8 + 0x1800]
xor r9, qword [r11 + rcx*8]
mov rcx, rsi
shr rcx, 0x30
add r9, rbp
movzx r8d, cl
mov rcx, rsi
shr rcx, 0x20
movzx edx, cl
mov rcx, rsi
imul rbp, r9, 7
mov r9, qword [r11 + r8*8 + 0x1800]
xor r9, qword [r11 + rdx*8 + 0x1000]
shr rcx, 0x10
movzx edx, cl
movzx ecx, sil
xor r9, qword [r11 + rdx*8 + 0x800]
xor r9, qword [r11 + rcx*8]
mov rcx, rsi
shr rcx, 0x28
sub rbp, r9
movzx r8d, cl
mov rcx, rsi
shr rcx, 0x18
movzx edx, cl
mov rcx, rsi
shr rcx, 8
mov r9, qword [r11 + r8*8 + 0x800]
xor r9, qword [r11 + rdx*8 + 0x1000]
movzx edx, cl
mov rcx, rsi
shr rcx, 0x38
xor r9, qword [r11 + rdx*8 + 0x1800]
xor r9, qword [r11 + rcx*8]
add r9, rax
imul rax, r9, 7
sub rdi, 1
jne 0x14005d6d0
mov r8, qword [rsp + 0xc8]
mov rcx, rbx
mov r10, qword [rsp + 8]
movabs rdx, 0xa5a5a5a5a5a5a5a5
xor rcx, rdx
mov rdx, qword [rsp + 0xb8]
sub r12, rcx
mov rdi, r12
xor rdi, r13
mov r13, qword [rsp]
add r8, rdi
mov rcx, rdi
not rcx
shl rcx, 0x13
xor rcx, r8
sub r13, rcx
mov rbx, r13
xor rbx, qword [rsp + 0xb0]
add r10, rbx
mov rcx, rbx
not rcx
shr rcx, 0x17
xor rcx, r10
sub rdx, rcx
mov r11, rdx
mov qword [rsp + 0xb8], rdx
xor r11, qword [rsp + 0x10]
mov rcx, r11
not rcx
shl rcx, 0x13
lea r9, [r12 + r11]
xor rcx, r9
mov qword [rsp + 0x20], r9
sub rdi, rcx
lea r12, [0x14017df30]
xor rbp, r9
mov qword [rsp + 0x28], rdi
mov rdx, rdi
xor rdx, r8
mov qword [rsp + 0x30], rdx
lea rcx, [rdx + r13]
not rdx
mov qword [rsp + 0x38], rcx
shr rdx, 0x17
xor rdx, rcx
mov rcx, qword [rsp + 0xb8]
sub rbx, rdx
movabs rdx, 0x123456789abcdef
mov qword [rsp + 0x40], rbx
xor rbx, r10
add rcx, rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rcx
xor rcx, rdx
sub r11, rcx
mov rcx, rbp
shr rcx, 0x30
movzx r8d, cl
mov rcx, rbp
shr rcx, 0x20
movzx edx, cl
mov rcx, rbp
shr rcx, 0x10
mov r9, qword [r12 + r8*8 + 0x1800]
mov qword [rsp + 0x58], r11
xor r9, qword [r12 + rdx*8 + 0x1000]
movzx edx, cl
movzx ecx, bpl
xor r9, qword [r12 + rdx*8 + 0x800]
xor r9, qword [r12 + rcx*8]
mov rcx, rbp
shr rcx, 0x28
sub rax, r9
movzx r8d, cl
xor rax, rdi
mov rcx, rbp
shr rcx, 0x18
movzx edx, cl
mov rcx, rbp
mov r9, qword [r12 + r8*8 + 0x800]
xor r9, qword [r12 + rdx*8 + 0x1000]
shr rcx, 8
lea rdi, [rsp + 0x30]
movzx edx, cl
mov rcx, rbp
shr rcx, 0x38
xor r9, qword [r12 + rdx*8 + 0x1800]
xor r9, qword [r12 + rcx*8]
mov rcx, rax
shr rcx, 0x30
add r9, rsi
movzx r8d, cl
lea rsi, [rsp + 0x28]
mov rcx, rax
shr rcx, 0x20
movzx edx, cl
lea r10, [r9 + r9*8]
mov r9, qword [r12 + r8*8 + 0x1800]
mov rcx, rax
shr rcx, 0x10
xor r9, qword [r12 + rdx*8 + 0x1000]
movzx edx, cl
movzx ecx, al
xor r9, qword [r12 + rdx*8 + 0x800]
xor r9, qword [r12 + rcx*8]
mov rcx, rax
shr rcx, 0x28
sub r10, r9
movzx r8d, cl
mov rcx, rax
shr rcx, 0x18
movzx edx, cl
mov rcx, rax
shr rcx, 8
mov r9, qword [r12 + r8*8 + 0x800]
xor r9, qword [r12 + rdx*8 + 0x1000]
movzx edx, cl
mov rcx, rax
shr rcx, 0x38
xor r9, qword [r12 + rdx*8 + 0x1800]
xor r9, qword [r12 + rcx*8]
add r9, rbp
xor ebx, ebx
lea r11, [r9 + r9*8]
nop dword [rax + rax]
xor r10, qword [rdi + rbx*8]
add rbx, 3
mov rcx, r10
shr rcx, 0x30
movzx r8d, cl
mov rcx, r10
shr rcx, 0x20
movzx edx, cl
mov rcx, r10
shr rcx, 0x10
mov r9, qword [r12 + r8*8 + 0x1800]
xor r9, qword [r12 + rdx*8 + 0x1000]
movzx edx, cl
movzx ecx, r10b
xor r9, qword [r12 + rdx*8 + 0x800]
xor r9, qword [r12 + rcx*8]
mov rcx, r10
shr rcx, 0x28
sub r11, r9
xor r11, qword [rsp + rbx*8 + 0x20]
movzx r8d, cl
mov rcx, r10
shr rcx, 0x18
movzx edx, cl
mov rcx, r10
shr rcx, 8
mov r9, qword [r12 + r8*8 + 0x800]
xor r9, qword [r12 + rdx*8 + 0x1000]
movzx edx, cl
mov rcx, r10
shr rcx, 0x38
xor r9, qword [r12 + rdx*8 + 0x1800]
xor r9, qword [r12 + rcx*8]
mov rcx, r11
shr rcx, 0x30
add r9, rax
movzx r8d, cl
mov rcx, r11
shr rcx, 0x20
movzx edx, cl
mov rcx, r11
shr rcx, 0x10
lea rax, [r9 + r9*8]
mov r9, qword [r12 + r8*8 + 0x1800]
xor r9, qword [r12 + rdx*8 + 0x1000]
movzx edx, cl
movzx ecx, r11b
xor r9, qword [r12 + rdx*8 + 0x800]
xor r9, qword [r12 + rcx*8]
mov rcx, r11
shr rcx, 0x28
sub rax, r9
xor rax, qword [rsi + rbx*8]
movzx r8d, cl
mov rcx, r11
shr rcx, 0x18
movzx edx, cl
mov rcx, r11
shr rcx, 8
mov r9, qword [r12 + r8*8 + 0x800]
xor r9, qword [r12 + rdx*8 + 0x1000]
movzx edx, cl
mov rcx, r11
shr rcx, 0x38
xor r9, qword [r12 + rdx*8 + 0x1800]
xor r9, qword [r12 + rcx*8]
mov rcx, rax
shr rcx, 0x30
add r9, r10
movzx r8d, cl
mov rcx, rax
shr rcx, 0x20
movzx edx, cl
mov rcx, rax
lea r10, [r9 + r9*8]
shr rcx, 0x10
mov r9, qword [r12 + r8*8 + 0x1800]
xor r9, qword [r12 + rdx*8 + 0x1000]
movzx edx, cl
movzx ecx, al
xor r9, qword [r12 + rdx*8 + 0x800]
xor r9, qword [r12 + rcx*8]
mov rcx, rax
shr rcx, 0x28
sub r10, r9
movzx r8d, cl
mov rcx, rax
shr rcx, 0x18
movzx edx, cl
mov rcx, rax
shr rcx, 8
mov r9, qword [r12 + r8*8 + 0x800]
xor r9, qword [r12 + rdx*8 + 0x1000]
movzx edx, cl
mov rcx, rax
shr rcx, 0x38
xor r9, qword [r12 + rdx*8 + 0x1800]
xor r9, qword [r12 + rcx*8]
add r9, r11
lea r11, [r9 + r9*8]
cmp rbx, 6
jne 0x14005daa0
sub rax, qword [r14 + 8]
xor r15, r11
add qword [r14 + 0x10], r10
mov qword [r14], r15
mov qword [r14 + 8], rax
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret