Function at 0x601310
Capabilities:
Hash data using tiger

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rbx, qword [rdx]
mov r13, qword [rdx + 8]
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x98], rdx
mov rdx, qword [rcx + 0x20]
mov r9, qword [rcx]
mov qword [rsp + 0x18], rdx
mov rdx, rax
xor rdx, r9
mov r8, rdx
mov rbp, qword [rcx + 0x38]
shr r8, 0x10
mov r15, qword [rcx + 0x28]
mov qword [rsp + 0x38], rax
movzx r8d, r8b
lea rax, [0x00735f40]
mov r11, rdx
mov r10, qword [rax + r8*8]
mov qword [rsp + 8], rbp
shr r11, 0x20
mov rbp, rdx
mov rdi, qword [rcx + 8]
mov rsi, qword [rcx + 0x10]
mov r12, qword [rcx + 0x18]
mov qword [rsp + 0x20], r15
movzx edx, r11b
mov r15, qword [rcx + 0x30]
mov r11, rbp
lea rcx, [0x00735740]
xor r10, qword [rcx + rdx*8]
mov qword [rsp + 0x28], rbx
lea rdx, [0x00736740]
movzx r8d, bpl
shr r11, 0x30
mov r14, rbx
mov rbx, rbp
xor r10, qword [rdx + r8*8]
movzx r11d, r11b
lea r8, str.U_2
movzx ebx, bh
xor r10, qword [r8 + r11*8]
mov r11, rbx
mov rbx, rbp
mov r11, qword [r8 + r11*8]
shr rbx, 0x18
movzx ebx, bl
xor r11, qword [rcx + rbx*8]
mov rbx, rbp
shr rbx, 0x38
xor r11, qword [rdx + rbx*8]
sub r14, r10
mov rbx, rbp
mov r10, r14
shr rbx, 0x28
xor r10, rdi
movzx ebx, bl
xor r11, qword [rax + rbx*8]
mov rbx, r10
shr rbx, 0x10
mov r14, r10
movzx ebx, bl
mov rbx, qword [rax + rbx*8]
shr r14, 0x20
mov qword [rsp + 0x30], r13
add r11, r13
movzx r13d, r14b
mov r14, r10
xor rbx, qword [rcx + r13*8]
shr r14, 0x30
movzx r13d, r10b
xor rbx, qword [rdx + r13*8]
movzx r13d, r14b
xor rbx, qword [r8 + r13*8]
lea r11, [r11 + r11*4]
sub r11, rbx
mov rbx, r10
mov r14, r10
movzx ebx, bh
mov rbx, qword [r8 + rbx*8]
shr r14, 0x18
movzx r13d, r14b
mov r14, r10
xor rbx, qword [rcx + r13*8]
shr r14, 0x38
xor rbx, qword [rdx + r14*8]
mov r14, r10
shr r14, 0x28
movzx r13d, r14b
xor r11, rsi
xor rbx, qword [rax + r13*8]
add rbx, rbp
mov rbp, r11
shr rbp, 0x10
mov r14, r11
movzx ebp, bpl
shr r14, 0x20
mov rbp, qword [rax + rbp*8]
movzx r13d, r14b
mov r14, r11
xor rbp, qword [rcx + r13*8]
shr r14, 0x30
movzx r13d, r11b
xor rbp, qword [rdx + r13*8]
movzx r13d, r14b
xor rbp, qword [r8 + r13*8]
lea rbx, [rbx + rbx*4]
sub rbx, rbp
mov qword [rsp + 0x10], rbx
mov rbx, r11
movzx ebp, bh
mov r14, r11
mov rbp, qword [r8 + rbp*8]
shr r14, 0x18
movzx r13d, r14b
mov r14, r11
xor rbp, qword [rcx + r13*8]
shr r14, 0x38
xor rbp, qword [rdx + r14*8]
mov r14, r11
shr r14, 0x28
movzx r13d, r14b
mov r14, qword [rsp + 0x10]
xor rbp, qword [rax + r13*8]
xor r14, r12
mov rbx, r14
add rbp, r10
shr rbx, 0x10
lea r10, [rbp + rbp*4]
movzx ebp, bl
mov rbx, r14
mov rbp, qword [rax + rbp*8]
shr rbx, 0x20
movzx r13d, bl
mov rbx, r14
xor rbp, qword [rcx + r13*8]
shr rbx, 0x30
movzx r13d, r14b
xor rbp, qword [rdx + r13*8]
movzx r13d, bl
xor rbp, qword [r8 + r13*8]
mov rbx, r14
sub r10, rbp
movzx ebp, bh
mov rbp, qword [r8 + rbp*8]
shr rbx, 0x18
movzx r13d, bl
mov rbx, r14
xor rbp, qword [rcx + r13*8]
shr rbx, 0x38
xor rbp, qword [rdx + rbx*8]
mov rbx, r14
shr rbx, 0x28
movzx r13d, bl
xor rbp, qword [rax + r13*8]
xor r10, qword [rsp + 0x18]
add rbp, r11
lea r11, [rbp + rbp*4]
mov rbp, r10
shr rbp, 0x10
mov qword [rsp + 0x10], r14
movzx ebp, bpl
mov r14, r10
mov rbp, qword [rax + rbp*8]
shr r14, 0x20
movzx r13d, r14b
xor rbp, qword [rcx + r13*8]
mov r14, r10
movzx r13d, r10b
xor rbp, qword [rdx + r13*8]
shr r14, 0x30
movzx r13d, r14b
xor rbp, qword [r8 + r13*8]
mov rbx, r10
sub r11, rbp
mov r14, r10
movzx ebp, bh
mov rbp, qword [r8 + rbp*8]
shr r14, 0x18
movzx r13d, r14b
mov r14, r10
xor rbp, qword [rcx + r13*8]
shr r14, 0x38
xor rbp, qword [rdx + r14*8]
mov r14, r10
shr r14, 0x28
movzx r13d, r14b
xor rbp, qword [rax + r13*8]
xor r11, qword [rsp + 0x20]
add rbp, qword [rsp + 0x10]
lea rbx, [rbp + rbp*4]
mov rbp, r11
shr rbp, 0x10
mov r14, r11
movzx ebp, bpl
mov rbp, qword [rax + rbp*8]
shr r14, 0x20
movzx r13d, r14b
mov r14, r11
xor rbp, qword [rcx + r13*8]
shr r14, 0x30
movzx r13d, r11b
xor rbp, qword [rdx + r13*8]
movzx r13d, r14b
xor rbp, qword [r8 + r13*8]
sub rbx, rbp
mov qword [rsp + 0x10], rbx
mov rbx, r11
movzx ebp, bh
mov rbp, qword [r8 + rbp*8]
shr rbx, 0x18
movzx r13d, bl
mov rbx, r11
xor rbp, qword [rcx + r13*8]
shr rbx, 0x38
xor rbp, qword [rdx + rbx*8]
mov rbx, r11
shr rbx, 0x28
movzx r13d, bl
xor rbp, qword [rax + r13*8]
mov r13, qword [rsp + 0x10]
add rbp, r10
xor r13, r15
mov r10, r13
shr r10, 0x10
mov rbx, r13
movzx r10d, r10b
mov r10, qword [rax + r10*8]
shr rbx, 0x20
lea r14, [rbp + rbp*4]
movzx ebp, bl
mov rbx, r13
xor r10, qword [rcx + rbp*8]
shr rbx, 0x30
movzx ebp, r13b
xor r10, qword [rdx + rbp*8]
movzx ebp, bl
mov rbx, r13
xor r10, qword [r8 + rbp*8]
movzx ebx, bh
sub r14, r10
mov r10, rbx
mov rbx, r13
mov r10, qword [r8 + r10*8]
shr rbx, 0x18
movzx ebp, bl
mov rbx, r13
xor r10, qword [rcx + rbp*8]
shr rbx, 0x38
xor r10, qword [rdx + rbx*8]
mov rbx, r13
shr rbx, 0x28
movzx ebp, bl
xor r10, qword [rax + rbp*8]
mov rbp, qword [rsp + 8]
add r10, r11
xor r14, rbp
mov qword [rsp + 0x10], r13
lea r13, [r10 + r10*4]
mov r10, r14
shr r10, 0x10
mov r11, r14
movzx r10d, r10b
mov r10, qword [rax + r10*8]
shr r11, 0x20
movzx r11d, r11b
xor r10, qword [rcx + r11*8]
movzx r11d, r14b
xor r10, qword [rdx + r11*8]
mov r11, r14
shr r11, 0x30
movzx r11d, r11b
mov rbx, r14
xor r10, qword [r8 + r11*8]
movzx ebx, bh
mov r11, r14
sub r13, r10
shr r11, 0x18
mov r10, qword [r8 + rbx*8]
movzx r11d, r11b
xor r10, qword [rcx + r11*8]
mov r11, r14
shr r11, 0x38
xor r10, qword [rdx + r11*8]
mov r11, r14
shr r11, 0x28
movzx r11d, r11b
xor r10, qword [rax + r11*8]
movabs r11, 0xa5a5a5a5a5a5a5a5
xor r11, rbp
sub r9, r11
xor rdi, r9
mov r11, rdi
add r10, qword [rsp + 0x10]
not r11
lea rbx, [r10 + r10*4]
mov r10, r11
add rsi, rdi
shl r10, 0x13
xor r10, rsi
mov r11, qword [rsp + 0x18]
sub r12, r10
mov r10, qword [rsp + 0x20]
xor r11, r12
lea rbp, [r10 + r11]
mov r10, r11
not r10
shr r10, 0x17
xor r10, rbp
sub r15, r10
mov r10, qword [rsp + 8]
xor r10, r15
add r9, r10
mov qword [rsp + 0x10], r9
mov r9, r10
not r9
shl r9, 0x13
xor r9, qword [rsp + 0x10]
sub rdi, r9
xor rsi, rdi
mov r9, rsi
not r9
add r12, rsi
shr r9, 0x17
xor r9, r12
sub r11, r9
xor rbp, r11
add r15, rbp
movabs r9, 0x123456789abcdef
xor r13, qword [rsp + 0x10]
xor r9, r15
sub r10, r9
mov r9, r13
shr r9, 0x10
mov qword [rsp + 8], r10
movzx r9d, r9b
mov r10, r13
mov r9, qword [rax + r9*8]
shr r10, 0x20
movzx r10d, r10b
xor r9, qword [rcx + r10*8]
movzx r10d, r13b
xor r9, qword [rdx + r10*8]
mov r10, r13
shr r10, 0x30
mov qword [rsp + 0x18], rbp
movzx r10d, r10b
mov rbp, rbx
mov rbx, r13
xor r9, qword [r8 + r10*8]
movzx ebx, bh
mov r10, r13
sub rbp, r9
shr r10, 0x18
mov r9, qword [r8 + rbx*8]
movzx r10d, r10b
xor r9, qword [rcx + r10*8]
mov r10, r13
shr r10, 0x38
xor r9, qword [rdx + r10*8]
mov r10, r13
shr r10, 0x28
movzx r10d, r10b
xor r9, qword [rax + r10*8]
add r14, r9
lea r9, [r14*8]
sub r9, r14
mov r14, rbp
xor r14, rdi
mov r10, r14
shr r10, 0x10
mov rbx, r14
movzx r10d, r10b
mov r10, qword [rax + r10*8]
shr rbx, 0x20
movzx ebp, bl
mov rbx, r14
xor r10, qword [rcx + rbp*8]
shr rbx, 0x30
movzx ebp, r14b
xor r10, qword [rdx + rbp*8]
movzx ebp, bl
mov rbx, r14
xor r10, qword [r8 + rbp*8]
movzx ebx, bh
sub r9, r10
mov r10, rbx
mov rbx, r14
mov r10, qword [r8 + r10*8]
shr rbx, 0x18
movzx ebp, bl
mov rbx, r14
xor r10, qword [rcx + rbp*8]
shr rbx, 0x38
xor r10, qword [rdx + rbx*8]
mov rbx, r14
xor r9, rsi
shr rbx, 0x28
movzx ebp, bl
mov rbx, r9
xor r10, qword [rax + rbp*8]
shr rbx, 0x10
add r13, r10
movzx ebp, bl
mov rbx, r9
mov rbp, qword [rax + rbp*8]
shr rbx, 0x20
lea r10, [r13*8]
sub r10, r13
movzx r13d, bl
mov rbx, r9
xor rbp, qword [rcx + r13*8]
shr rbx, 0x30
movzx r13d, r9b
xor rbp, qword [rdx + r13*8]
movzx r13d, bl
xor rbp, qword [r8 + r13*8]
mov rbx, r9
sub r10, rbp
movzx ebp, bh
mov rbp, qword [r8 + rbp*8]
shr rbx, 0x18
movzx r13d, bl
mov rbx, r9
xor rbp, qword [rcx + r13*8]
shr rbx, 0x38
xor rbp, qword [rdx + rbx*8]
mov rbx, r9
shr rbx, 0x28
movzx r13d, bl
xor rbp, qword [rax + r13*8]
add rbp, r14
lea rbx, [rbp*8]
sub rbx, rbp
xor r10, r12
mov rbp, r10
shr rbp, 0x10
mov r13, r10
movzx ebp, bpl
mov rbp, qword [rax + rbp*8]
shr r13, 0x20
movzx r13d, r13b
xor rbp, qword [rcx + r13*8]
movzx r13d, r10b
xor rbp, qword [rdx + r13*8]
mov r13, r10
shr r13, 0x30
movzx r13d, r13b
xor rbp, qword [r8 + r13*8]
mov r14, rbx
mov rbx, r10
sub r14, rbp
movzx ebp, bh
mov rbp, qword [r8 + rbp*8]
shr rbx, 0x18
movzx r13d, bl
mov rbx, r10
xor rbp, qword [rcx + r13*8]
shr rbx, 0x38
xor rbp, qword [rdx + rbx*8]
mov rbx, r10
shr rbx, 0x28
movzx r13d, bl
xor r14, r11
xor rbp, qword [rax + r13*8]
add rbp, r9
mov rbx, r14
shr rbx, 0x10
lea r9, [rbp*8]
sub r9, rbp
movzx ebp, bl
mov rbx, r14
mov rbp, qword [rax + rbp*8]
shr rbx, 0x20
movzx r13d, bl
mov rbx, r14
xor rbp, qword [rcx + r13*8]
shr rbx, 0x30
movzx r13d, r14b
xor rbp, qword [rdx + r13*8]
movzx r13d, bl
xor rbp, qword [r8 + r13*8]
mov rbx, r14
sub r9, rbp
movzx ebp, bh
mov rbp, qword [r8 + rbp*8]
shr rbx, 0x18
movzx r13d, bl
mov rbx, r14
xor rbp, qword [rcx + r13*8]
shr rbx, 0x38
xor rbp, qword [rdx + rbx*8]
mov rbx, r14
shr rbx, 0x28
movzx r13d, bl
xor rbp, qword [rax + r13*8]
add rbp, r10
lea r10, [rbp*8]
sub r10, rbp
xor r9, qword [rsp + 0x18]
mov rbx, r9
shr rbx, 0x10
movzx ebp, bl
mov rbx, r9
mov rbp, qword [rax + rbp*8]
shr rbx, 0x20
movzx r13d, bl
mov rbx, r9
xor rbp, qword [rcx + r13*8]
shr rbx, 0x30
movzx r13d, r9b
xor rbp, qword [rdx + r13*8]
movzx r13d, bl
xor rbp, qword [r8 + r13*8]
mov rbx, r9
sub r10, rbp
movzx ebp, bh
mov rbp, qword [r8 + rbp*8]
shr rbx, 0x18
movzx r13d, bl
mov rbx, r9
xor rbp, qword [rcx + r13*8]
shr rbx, 0x38
xor rbp, qword [rdx + rbx*8]
mov rbx, r9
shr rbx, 0x28
movzx r13d, bl
xor rbp, qword [rax + r13*8]
add rbp, r14
xor r10, r15
lea rbx, [rbp*8]
sub rbx, rbp
mov rbp, r10
shr rbp, 0x10
mov r13, r10
movzx ebp, bpl
mov rbp, qword [rax + rbp*8]
shr r13, 0x20
movzx r13d, r13b
xor rbp, qword [rcx + r13*8]
movzx r13d, r10b
xor rbp, qword [rdx + r13*8]
mov r13, r10
shr r13, 0x30
movzx r13d, r13b
xor rbp, qword [r8 + r13*8]
sub rbx, rbp
mov qword [rsp + 0x20], rbx
mov rbx, r10
movzx ebp, bh
mov rbp, qword [r8 + rbp*8]
shr rbx, 0x18
movzx r13d, bl
mov rbx, r10
xor rbp, qword [rcx + r13*8]
shr rbx, 0x38
xor rbp, qword [rdx + rbx*8]
mov rbx, r10
shr rbx, 0x28
movzx r13d, bl
xor rbp, qword [rax + r13*8]
mov r14, qword [rsp + 8]
add rbp, r9
mov r9, qword [rsp + 0x20]
lea r13, [rbp*8]
sub r13, rbp
xor r9, r14
mov rbx, r9
shr rbx, 0x10
movzx ebp, bl
mov rbp, qword [rax + rbp*8]
mov rbx, r9
shr r9, 0x20
movzx r9d, r9b
xor rbp, qword [rcx + r9*8]
movzx r9d, bl
mov qword [rsp + 8], rbx
xor rbp, qword [rdx + r9*8]
mov r9, rbx
shr r9, 0x30
movzx r9d, r9b
movzx ebx, bh
xor rbp, qword [r8 + r9*8]
mov r9, rbx
mov rbx, qword [rsp + 8]
sub r13, rbp
shr rbx, 0x18
mov r9, qword [r8 + r9*8]
movzx ebp, bl
mov rbx, qword [rsp + 8]
xor r9, qword [rcx + rbp*8]
shr rbx, 0x38
xor r9, qword [rdx + rbx*8]
mov rbx, qword [rsp + 8]
shr rbx, 0x28
movzx ebp, bl
xor r9, qword [rax + rbp*8]
add r9, r10
lea r10, [r9*8]
sub r10, r9
movabs r9, 0xa5a5a5a5a5a5a5a5
xor r9, r14
mov rbx, r14
mov r14, qword [rsp + 0x10]
sub r14, r9
xor rdi, r14
mov r9, r14
mov r14, rdi
not r14
mov rbp, r14
add rsi, rdi
shl rbp, 0x13
xor rbp, rsi
sub r12, rbp
xor r11, r12
mov rbp, qword [rsp + 0x18]
mov r14, r11
not r14
add rbp, r11
shr r14, 0x17
xor r14, rbp
sub r15, r14
xor rbx, r15
mov r14, rbx
not r14
add r9, rbx
shl r14, 0x13
xor r14, r9
sub rdi, r14
xor rsi, rdi
mov r14, rsi
xor r9, r13
not r14
add r12, rsi
shr r14, 0x17
mov r13, r9
xor r14, r12
shr r13, 0x10
sub r11, r14
movzx r13d, r13b
mov r14, r9
mov r13, qword [rax + r13*8]
shr r14, 0x20
movzx r14d, r14b
xor r13, qword [rcx + r14*8]
movzx r14d, r9b
xor r13, qword [rdx + r14*8]
mov r14, r9
shr r14, 0x30
movzx r14d, r14b
xor r13, qword [r8 + r14*8]
mov qword [rsp + 0x10], rbx
mov rbx, r9
sub r10, r13
movzx ebx, bh
mov r13, r9
mov r14, qword [r8 + rbx*8]
shr r13, 0x18
movzx r13d, r13b
xor r14, qword [rcx + r13*8]
mov r13, r9
shr r13, 0x38
xor r10, rdi
xor r14, qword [rdx + r13*8]
mov r13, r9
shr r13, 0x28
mov rdi, r10
movzx r13d, r13b
shr rdi, 0x10
xor r14, qword [rax + r13*8]
movzx edi, dil
mov r13, r10
mov rdi, qword [rax + rdi*8]
shr r13, 0x20
movzx r13d, r13b
xor rdi, qword [rcx + r13*8]
movzx r13d, r10b
xor rdi, qword [rdx + r13*8]
mov r13, r10
shr r13, 0x30
add r14, qword [rsp + 8]
movzx r13d, r13b
xor rdi, qword [r8 + r13*8]
lea rbx, [r14 + r14*8]
sub rbx, rdi
mov r14, rbx
mov rbx, r10
movzx edi, bh
xor rbp, r11
mov r13, rdi
mov rdi, r10
add r15, rbp
mov r13, qword [r8 + r13*8]
shr rdi, 0x18
movzx edi, dil
xor r13, qword [rcx + rdi*8]
mov rdi, r10
shr rdi, 0x38
xor r14, rsi
xor r13, qword [rdx + rdi*8]
mov rdi, r10
shr rdi, 0x28
mov rsi, r14
movzx edi, dil
shr rsi, 0x10
xor r13, qword [rax + rdi*8]
movzx esi, sil
mov rdi, r14
mov rsi, qword [rax + rsi*8]
shr rdi, 0x20
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
movzx edi, r14b
xor rsi, qword [rdx + rdi*8]
mov rdi, r14
shr rdi, 0x30
add r13, r9
movzx edi, dil
xor rsi, qword [r8 + rdi*8]
mov rbx, r14
lea r9, [r13 + r13*8]
sub r9, rsi
movzx edi, bh
mov rsi, r14
mov rdi, qword [r8 + rdi*8]
shr rsi, 0x18
movzx esi, sil
xor rdi, qword [rcx + rsi*8]
mov rsi, r14
shr rsi, 0x38
xor r12, r9
xor rdi, qword [rdx + rsi*8]
mov rsi, r14
shr rsi, 0x28
mov r9, r12
movzx esi, sil
shr r9, 0x10
xor rdi, qword [rax + rsi*8]
movzx r9d, r9b
mov rsi, r12
mov r9, qword [rax + r9*8]
shr rsi, 0x20
movzx esi, sil
xor r9, qword [rcx + rsi*8]
movzx esi, r12b
xor r9, qword [rdx + rsi*8]
mov rsi, r12
shr rsi, 0x30
add rdi, r10
movzx esi, sil
xor r9, qword [r8 + rsi*8]
mov rbx, r12
lea r10, [rdi + rdi*8]
sub r10, r9
movzx esi, bh
mov r9, r12
mov rsi, qword [r8 + rsi*8]
shr r9, 0x18
movzx r9d, r9b
xor rsi, qword [rcx + r9*8]
mov r9, r12
shr r9, 0x38
xor rsi, qword [rdx + r9*8]
mov r9, r12
shr r9, 0x28
xor r11, r10
movzx r9d, r9b
xor rsi, qword [rax + r9*8]
mov r9, r11
shr r9, 0x10
mov r10, r11
movzx r9d, r9b
mov r9, qword [rax + r9*8]
shr r10, 0x20
movzx r10d, r10b
xor r9, qword [rcx + r10*8]
movzx r10d, r11b
xor r9, qword [rdx + r10*8]
add rsi, r14
mov r10, r11
lea rbx, [rsi + rsi*8]
shr r10, 0x30
movzx r10d, r10b
mov rdi, rbx
mov rbx, r11
xor r9, qword [r8 + r10*8]
movzx esi, bh
mov r10, r11
sub rdi, r9
shr r10, 0x18
mov r9, qword [r8 + rsi*8]
movzx r10d, r10b
xor r9, qword [rcx + r10*8]
mov r10, r11
shr r10, 0x38
xor r9, qword [rdx + r10*8]
mov r10, r11
shr r10, 0x28
xor rbp, rdi
movzx r10d, r10b
xor r9, qword [rax + r10*8]
mov r10, rbp
shr r10, 0x10
mov rdi, rbp
movzx r10d, r10b
mov r10, qword [rax + r10*8]
shr rdi, 0x20
movzx ebx, dil
mov rsi, rbp
xor r10, qword [rcx + rbx*8]
shr rsi, 0x30
movzx ebx, bpl
xor r10, qword [rdx + rbx*8]
movzx ebx, sil
xor r10, qword [r8 + rbx*8]
add r9, r12
mov rbx, rbp
movzx edi, bh
lea r9, [r9 + r9*8]
sub r9, r10
mov r10, rdi
mov rdi, rbp
mov r10, qword [r8 + r10*8]
shr rdi, 0x18
movzx ebx, dil
mov rsi, rbp
xor r10, qword [rcx + rbx*8]
shr rsi, 0x38
mov rdi, rbp
xor r10, qword [rdx + rsi*8]
shr rdi, 0x28
movzx ebx, dil
xor r9, r15
xor r10, qword [rax + rbx*8]
add r11, r10
mov r10, r9
shr r10, 0x10
mov rsi, r9
movzx r10d, r10b
mov r10, qword [rax + r10*8]
shr rsi, 0x20
movzx ebx, sil
mov rdi, r9
xor r10, qword [rcx + rbx*8]
shr rdi, 0x30
movzx ebx, r9b
xor r10, qword [rdx + rbx*8]
movzx ebx, dil
xor r10, qword [r8 + rbx*8]
mov rbx, r9
movzx esi, bh
lea r11, [r11 + r11*8]
sub r11, r10
mov r10, rsi
mov rsi, r9
mov r10, qword [r8 + r10*8]
shr rsi, 0x18
movzx ebx, sil
mov rdi, r9
mov rsi, r9
xor r10, qword [rcx + rbx*8]
shr rdi, 0x38
shr rsi, 0x28
xor r10, qword [rdx + rdi*8]
movzx ebx, sil
xor r10, qword [rax + rbx*8]
add rbp, r10
movabs rdi, 0x123456789abcdef
mov r10, qword [rsp + 0x10]
xor r15, rdi
sub r10, r15
xor r11, r10
mov r10, r11
shr r10, 0x10
mov rdi, r11
movzx r10d, r10b
mov r10, qword [rax + r10*8]
shr rdi, 0x20
movzx ebx, dil
mov rsi, r11
xor r10, qword [rcx + rbx*8]
shr rsi, 0x30
movzx ebx, r11b
xor r10, qword [rdx + rbx*8]
movzx ebx, sil
xor r10, qword [r8 + rbx*8]
mov rbx, r11
movzx esi, bh
mov rdi, r11
mov r8, qword [r8 + rsi*8]
shr rdi, 0x18
movzx ebx, dil
xor r8, qword [rcx + rbx*8]
mov rcx, r8
mov r8, r11
shr r8, 0x38
xor rcx, qword [rdx + r8*8]
mov rdx, rcx
mov rcx, r11
shr rcx, 0x28
movzx ecx, cl
mov rsi, qword [rax + rcx*8]
mov rcx, qword [rsp + 0x98]
xor rsi, rdx
add r9, rsi
lea rax, [r9 + r9*8]
xor rax, qword [rsp + 0x28]
mov qword [rcx], rax
lea rax, [rbp + rbp*8]
add rax, qword [rsp + 0x38]
sub r11, qword [rsp + 0x30]
sub rax, r10
mov qword [rcx + 8], r11
mov qword [rcx + 0x10], rax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret