Function at 0x603c00
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 rax, qword [rdx + 8]
mov r15, qword [rcx]
mov qword [rsp + 0x18], rax
mov rax, qword [rdx + 0x10]
mov rdi, qword [rdx]
mov qword [rsp + 0x20], rax
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x98], rdx
mov rsi, qword [rsp + 0x20]
mov qword [rsp + 0x10], rax
xor rsi, r15
mov r8, rsi
shr r8, 0x10
lea rax, [0x007872a0]
movzx r8d, r8b
mov rdx, rsi
mov r9, qword [rax + r8*8]
shr rdx, 0x20
mov r12, qword [rcx + 8]
mov r10, qword [rcx + 0x10]
mov r14, qword [rcx + 0x18]
mov r13, qword [rcx + 0x28]
mov rbp, qword [rcx + 0x30]
mov rbx, qword [rcx + 0x38]
movzx edx, dl
lea rcx, [0x00786aa0]
mov r11, rsi
xor r9, qword [rcx + rdx*8]
movzx r8d, sil
lea rdx, [0x00787aa0]
shr r11, 0x30
xor r9, qword [rdx + r8*8]
movzx r11d, r11b
lea r8, str.U_2
xor r9, qword [r8 + r11*8]
mov r11, rdi
sub r11, r9
mov qword [rsp + 0x28], rbx
mov rbx, rsi
mov qword [rsp + 0x38], rdi
movzx ebx, bh
mov rdi, r11
mov r11, rsi
mov r9, qword [r8 + rbx*8]
shr r11, 0x18
movzx r11d, r11b
xor r9, qword [rcx + r11*8]
mov r11, rsi
shr r11, 0x38
xor r9, qword [rdx + r11*8]
mov r11, rsi
shr r11, 0x28
movzx r11d, r11b
xor r9, qword [rax + r11*8]
xor rdi, r12
add r9, qword [rsp + 0x18]
mov qword [rsp + 8], rdi
lea r11, [r9 + r9*4]
mov r9, rdi
mov rbx, rdi
shr r9, 0x10
shr rbx, 0x20
movzx r9d, r9b
mov r9, qword [rax + r9*8]
movzx edi, bl
mov rbx, qword [rsp + 8]
xor r9, qword [rcx + rdi*8]
movzx edi, bl
shr rbx, 0x30
xor r9, qword [rdx + rdi*8]
movzx edi, bl
xor r9, qword [r8 + rdi*8]
mov rbx, qword [rsp + 8]
sub r11, r9
movzx ebx, bh
mov r9, rbx
mov rbx, qword [rsp + 8]
mov r9, qword [r8 + r9*8]
shr rbx, 0x18
movzx edi, bl
mov rbx, qword [rsp + 8]
xor r9, qword [rcx + rdi*8]
shr rbx, 0x38
xor r9, qword [rdx + rbx*8]
mov rbx, qword [rsp + 8]
xor r11, r10
shr rbx, 0x28
movzx edi, bl
xor r9, qword [rax + rdi*8]
add r9, rsi
mov rsi, r11
shr rsi, 0x10
mov rdi, r11
movzx esi, sil
shr rdi, 0x20
mov rsi, qword [rax + rsi*8]
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
movzx edi, r11b
xor rsi, qword [rdx + rdi*8]
mov rdi, r11
shr rdi, 0x30
movzx edi, dil
xor rsi, qword [r8 + rdi*8]
mov rbx, r11
lea r9, [r9 + r9*4]
sub r9, rsi
mov rdi, r11
movzx esi, bh
mov rsi, qword [r8 + rsi*8]
shr rdi, 0x18
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
mov rdi, r11
shr rdi, 0x38
xor rsi, qword [rdx + rdi*8]
mov rdi, r11
shr rdi, 0x28
movzx edi, dil
xor rsi, qword [rax + rdi*8]
xor r9, r14
add rsi, qword [rsp + 8]
lea rbx, [rsi + rsi*4]
mov rsi, r9
shr rsi, 0x10
mov rdi, r9
movzx esi, sil
mov rsi, qword [rax + rsi*8]
shr rdi, 0x20
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
movzx edi, r9b
xor rsi, qword [rdx + rdi*8]
mov rdi, r9
shr rdi, 0x30
movzx edi, dil
xor rsi, qword [r8 + rdi*8]
sub rbx, rsi
mov qword [rsp + 8], rbx
mov rbx, r9
movzx esi, bh
mov rdi, r9
mov rsi, qword [r8 + rsi*8]
shr rdi, 0x18
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
mov rdi, r9
shr rdi, 0x38
xor rsi, qword [rdx + rdi*8]
mov rdi, r9
shr rdi, 0x28
mov rbx, qword [rsp + 8]
movzx edi, dil
xor rsi, qword [rax + rdi*8]
xor rbx, qword [rsp + 0x10]
add rsi, r11
lea r11, [rsi + rsi*4]
mov rsi, rbx
shr rsi, 0x10
mov qword [rsp + 8], rbx
movzx esi, sil
mov rsi, qword [rax + rsi*8]
shr rbx, 0x20
movzx edi, bl
xor rsi, qword [rcx + rdi*8]
mov rbx, qword [rsp + 8]
movzx edi, bl
xor rsi, qword [rdx + rdi*8]
shr rbx, 0x30
movzx edi, bl
mov rbx, qword [rsp + 8]
xor rsi, qword [r8 + rdi*8]
sub r11, rsi
movzx esi, bh
shr rbx, 0x18
mov rsi, qword [r8 + rsi*8]
movzx edi, bl
mov rbx, qword [rsp + 8]
xor rsi, qword [rcx + rdi*8]
shr rbx, 0x38
xor rsi, qword [rdx + rbx*8]
mov rbx, qword [rsp + 8]
xor r11, r13
shr rbx, 0x28
movzx edi, bl
xor rsi, qword [rax + rdi*8]
add rsi, r9
lea r9, [rsi + rsi*4]
mov rsi, r11
shr rsi, 0x10
mov rdi, r11
movzx esi, sil
mov rsi, qword [rax + rsi*8]
shr rdi, 0x20
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
movzx edi, r11b
xor rsi, qword [rdx + rdi*8]
mov rdi, r11
shr rdi, 0x30
movzx edi, dil
xor rsi, qword [r8 + rdi*8]
mov rbx, r11
sub r9, rsi
mov rdi, r11
movzx esi, bh
mov rsi, qword [r8 + rsi*8]
shr rdi, 0x18
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
mov rdi, r11
shr rdi, 0x38
xor rsi, qword [rdx + rdi*8]
mov rdi, r11
shr rdi, 0x28
movzx edi, dil
xor rsi, qword [rax + rdi*8]
xor r9, rbp
add rsi, qword [rsp + 8]
lea rbx, [rsi + rsi*4]
mov rsi, r9
shr rsi, 0x10
mov rdi, r9
movzx esi, sil
mov rsi, qword [rax + rsi*8]
shr rdi, 0x20
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
movzx edi, r9b
xor rsi, qword [rdx + rdi*8]
mov rdi, r9
shr rdi, 0x30
movzx edi, dil
xor rsi, qword [r8 + rdi*8]
sub rbx, rsi
mov qword [rsp + 8], rbx
mov rbx, r9
movzx esi, bh
mov rdi, r9
mov rsi, qword [r8 + rsi*8]
shr rdi, 0x18
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
mov rdi, r9
shr rdi, 0x38
xor rsi, qword [rdx + rdi*8]
mov rdi, r9
mov rbx, qword [rsp + 8]
shr rdi, 0x28
movzx edi, dil
xor rbx, qword [rsp + 0x28]
xor rsi, qword [rax + rdi*8]
add rsi, r11
mov r11, rbx
shr r11, 0x10
movzx r11d, r11b
mov qword [rsp + 8], rbx
mov r11, qword [rax + r11*8]
shr rbx, 0x20
movzx edi, bl
xor r11, qword [rcx + rdi*8]
mov rbx, qword [rsp + 8]
lea rsi, [rsi + rsi*4]
movzx edi, bl
shr rbx, 0x30
xor r11, qword [rdx + rdi*8]
movzx edi, bl
mov rbx, qword [rsp + 8]
xor r11, qword [r8 + rdi*8]
movzx ebx, bh
sub rsi, r11
mov r11, rbx
mov rbx, qword [rsp + 8]
mov r11, qword [r8 + r11*8]
shr rbx, 0x18
movzx edi, bl
mov rbx, qword [rsp + 8]
xor r11, qword [rcx + rdi*8]
shr rbx, 0x38
xor r11, qword [rdx + rbx*8]
mov rbx, qword [rsp + 8]
shr rbx, 0x28
movzx edi, bl
xor r11, qword [rax + rdi*8]
mov rbx, qword [rsp + 0x28]
add r11, r9
movabs r9, 0xa5a5a5a5a5a5a5a5
xor r9, rbx
sub r15, r9
xor r12, r15
mov r9, r12
not r9
add r10, r12
shl r9, 0x13
mov rdi, qword [rsp + 0x10]
xor r9, r10
sub r14, r9
xor rdi, r14
mov r9, rdi
not r9
add r13, rdi
shr r9, 0x17
xor r9, r13
sub rbp, r9
xor rbx, rbp
mov r9, rbx
add rbx, r15
mov r15, r9
not r15
shl r15, 0x13
xor r15, rbx
sub r12, r15
xor r10, r12
mov r15, r10
not r15
mov qword [rsp + 0x30], r12
mov r12, r15
add r14, r10
shr r12, 0x17
xor r12, r14
sub rdi, r12
xor r13, rdi
add rbp, r13
movabs r15, 0x123456789abcdef
xor rsi, rbx
xor r15, rbp
mov qword [rsp + 0x10], rdi
mov rdi, r15
mov r15, r9
mov r9, rsi
shr r9, 0x10
mov qword [rsp + 0x28], rbx
movzx r9d, r9b
mov rbx, rsi
mov r9, qword [rax + r9*8]
shr rbx, 0x20
sub r15, rdi
movzx edi, bl
mov rbx, rsi
xor r9, qword [rcx + rdi*8]
shr rbx, 0x30
movzx edi, sil
xor r9, qword [rdx + rdi*8]
movzx edi, bl
mov rbx, rsi
xor r9, qword [r8 + rdi*8]
movzx ebx, bh
lea r11, [r11 + r11*4]
sub r11, r9
mov r9, rbx
mov rbx, rsi
mov r9, qword [r8 + r9*8]
shr rbx, 0x18
movzx edi, bl
mov rbx, rsi
xor r9, qword [rcx + rdi*8]
shr rbx, 0x38
xor r9, qword [rdx + rbx*8]
mov rbx, rsi
shr rbx, 0x28
movzx edi, bl
mov rbx, qword [rsp + 8]
xor r9, qword [rax + rdi*8]
mov r12, qword [rsp + 0x30]
add rbx, r9
lea r9, [rbx*8]
xor r11, r12
sub r9, rbx
mov rbx, r11
shr rbx, 0x10
mov rdi, r11
movzx ebx, bl
mov rbx, qword [rax + rbx*8]
shr rdi, 0x20
movzx edi, dil
xor rbx, qword [rcx + rdi*8]
movzx edi, r11b
xor rbx, qword [rdx + rdi*8]
mov rdi, r11
shr rdi, 0x30
movzx edi, dil
xor rbx, qword [r8 + rdi*8]
sub r9, rbx
mov rbx, r11
mov rdi, r11
movzx ebx, bh
mov rbx, qword [r8 + rbx*8]
shr rdi, 0x18
movzx edi, dil
xor rbx, qword [rcx + rdi*8]
mov rdi, r11
shr rdi, 0x38
xor rbx, qword [rdx + rdi*8]
mov rdi, r11
shr rdi, 0x28
movzx edi, dil
xor rbx, qword [rax + rdi*8]
add rsi, rbx
xor r9, r10
lea rbx, [rsi*8]
sub rbx, rsi
mov rsi, r9
shr rsi, 0x10
mov rdi, r9
movzx esi, sil
mov rsi, qword [rax + rsi*8]
shr rdi, 0x20
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
movzx edi, r9b
xor rsi, qword [rdx + rdi*8]
mov rdi, r9
shr rdi, 0x30
movzx edi, dil
xor rsi, qword [r8 + rdi*8]
sub rbx, rsi
mov qword [rsp + 8], rbx
mov rbx, r9
movzx esi, bh
mov rsi, qword [r8 + rsi*8]
shr rbx, 0x18
movzx edi, bl
mov rbx, r9
xor rsi, qword [rcx + rdi*8]
shr rbx, 0x38
xor rsi, qword [rdx + rbx*8]
mov rbx, r9
shr rbx, 0x28
movzx edi, bl
xor rsi, qword [rax + rdi*8]
mov rbx, qword [rsp + 8]
add rsi, r11
lea r11, [rsi*8]
xor rbx, r14
mov qword [rsp + 8], rbx
sub r11, rsi
mov rsi, rbx
shr rsi, 0x10
shr rbx, 0x20
movzx esi, sil
mov rsi, qword [rax + rsi*8]
movzx edi, bl
mov rbx, qword [rsp + 8]
xor rsi, qword [rcx + rdi*8]
movzx edi, bl
shr rbx, 0x30
xor rsi, qword [rdx + rdi*8]
movzx edi, bl
mov rbx, qword [rsp + 8]
xor rsi, qword [r8 + rdi*8]
sub r11, rsi
movzx esi, bh
shr rbx, 0x18
mov rsi, qword [r8 + rsi*8]
movzx edi, bl
mov rbx, qword [rsp + 8]
xor rsi, qword [rcx + rdi*8]
shr rbx, 0x38
xor rsi, qword [rdx + rbx*8]
mov rbx, qword [rsp + 8]
xor r11, qword [rsp + 0x10]
shr rbx, 0x28
movzx edi, bl
xor rsi, qword [rax + rdi*8]
add rsi, r9
lea r9, [rsi*8]
sub r9, rsi
mov rsi, r11
shr rsi, 0x10
mov rdi, r11
movzx esi, sil
mov rsi, qword [rax + rsi*8]
shr rdi, 0x20
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
movzx edi, r11b
xor rsi, qword [rdx + rdi*8]
mov rdi, r11
shr rdi, 0x30
movzx edi, dil
xor rsi, qword [r8 + rdi*8]
mov rbx, r11
sub r9, rsi
mov rdi, r11
movzx esi, bh
mov rsi, qword [r8 + rsi*8]
shr rdi, 0x18
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
mov rdi, r11
shr rdi, 0x38
xor rsi, qword [rdx + rdi*8]
mov rdi, r11
shr rdi, 0x28
movzx edi, dil
xor rsi, qword [rax + rdi*8]
add rsi, qword [rsp + 8]
lea rbx, [rsi*8]
xor r9, r13
sub rbx, rsi
mov rsi, r9
shr rsi, 0x10
mov rdi, r9
movzx esi, sil
mov rsi, qword [rax + rsi*8]
shr rdi, 0x20
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
movzx edi, r9b
xor rsi, qword [rdx + rdi*8]
mov rdi, r9
shr rdi, 0x30
movzx edi, dil
xor rsi, qword [r8 + rdi*8]
sub rbx, rsi
mov qword [rsp + 8], rbx
mov rbx, r9
movzx esi, bh
mov rdi, r9
mov rsi, qword [r8 + rsi*8]
shr rdi, 0x18
movzx edi, dil
xor rsi, qword [rcx + rdi*8]
mov rdi, r9
shr rdi, 0x38
xor rsi, qword [rdx + rdi*8]
mov rdi, r9
shr rdi, 0x28
movzx edi, dil
xor rsi, qword [rax + rdi*8]
mov rbx, qword [rsp + 8]
add rsi, r11
xor rbx, rbp
lea r11, [rsi*8]
mov qword [rsp + 8], rbx
sub r11, rsi
mov rsi, rbx
shr rsi, 0x10
shr rbx, 0x20
movzx esi, sil
mov rsi, qword [rax + rsi*8]
movzx edi, bl
mov rbx, qword [rsp + 8]
xor rsi, qword [rcx + rdi*8]
movzx edi, bl
shr rbx, 0x30
xor rsi, qword [rdx + rdi*8]
movzx edi, bl
mov rbx, qword [rsp + 8]
xor rsi, qword [r8 + rdi*8]
sub r11, rsi
movzx esi, bh
shr rbx, 0x18
mov rsi, qword [r8 + rsi*8]
movzx edi, bl
mov rbx, qword [rsp + 8]
xor rsi, qword [rcx + rdi*8]
shr rbx, 0x38
xor rsi, qword [rdx + rbx*8]
mov rbx, qword [rsp + 8]
shr rbx, 0x28
movzx edi, bl
xor rsi, qword [rax + rdi*8]
add r9, rsi
lea rdi, [r9*8]
xor r11, r15
sub rdi, r9
mov r9, r11
shr r9, 0x10
mov rsi, r11
movzx r9d, r9b
mov r9, qword [rax + r9*8]
shr rsi, 0x20
movzx esi, sil
xor r9, qword [rcx + rsi*8]
movzx esi, r11b
xor r9, qword [rdx + rsi*8]
mov rsi, r11
shr rsi, 0x30
movzx esi, sil
xor r9, qword [r8 + rsi*8]
mov rsi, rdi
sub rsi, r9
mov rbx, r11
mov qword [rsp + 0x30], rsi
movzx ebx, bh
mov rsi, r11
mov r9, qword [r8 + rbx*8]
shr rsi, 0x18
movzx esi, sil
xor r9, qword [rcx + rsi*8]
mov rsi, r11
shr rsi, 0x38
xor r9, qword [rdx + rsi*8]
mov rsi, r11
shr rsi, 0x28
mov rbx, qword [rsp + 8]
movzx esi, sil
xor r9, qword [rax + rsi*8]
add rbx, r9
lea rsi, [rbx*8]
sub rsi, rbx
movabs r9, 0xa5a5a5a5a5a5a5a5
mov rbx, qword [rsp + 0x28]
xor r9, r15
sub rbx, r9
xor r12, rbx
mov r9, r12
not r9
add r10, r12
shl r9, 0x13
mov rdi, qword [rsp + 0x10]
xor r9, r10
sub r14, r9
xor rdi, r14
mov r9, rdi
not r9
add r13, rdi
shr r9, 0x17
xor r9, r13
sub rbp, r9
xor r15, rbp
add rbx, r15
mov r9, r15
not r15
mov qword [rsp + 8], rsi
mov rsi, r15
shl rsi, 0x13
xor rsi, rbx
sub r12, rsi
xor r10, r12
mov r15, r10
not r15
mov rsi, r15
add r14, r10
shr rsi, 0x17
xor rbx, qword [rsp + 0x30]
xor rsi, r14
mov r15, rbx
sub rdi, rsi
shr rbx, 0x10
xor r13, rdi
mov qword [rsp + 0x10], rdi
movzx edi, bl
mov rbx, r15
mov rdi, qword [rax + rdi*8]
shr rbx, 0x20
movzx esi, bl
mov rbx, r15
xor rdi, qword [rcx + rsi*8]
shr rbx, 0x30
movzx esi, r15b
xor rdi, qword [rdx + rsi*8]
movzx esi, bl
xor rdi, qword [r8 + rsi*8]
mov rsi, qword [rsp + 8]
mov qword [rsp + 8], r15
mov rbx, r15
sub rsi, rdi
movzx edi, bh
shr rbx, 0x18
mov rdi, qword [r8 + rdi*8]
movzx r15d, bl
mov rbx, qword [rsp + 8]
xor rdi, qword [rcx + r15*8]
shr rbx, 0x38
xor rdi, qword [rdx + rbx*8]
mov rbx, qword [rsp + 8]
xor rsi, r12
shr rbx, 0x28
movzx r15d, bl
xor rdi, qword [rax + r15*8]
mov rbx, rsi
add rdi, r11
shr rbx, 0x10
lea r11, [rdi + rdi*8]
mov r12, rsi
movzx edi, bl
mov rdi, qword [rax + rdi*8]
shr r12, 0x20
movzx r12d, r12b
xor rdi, qword [rcx + r12*8]
movzx r12d, sil
xor rdi, qword [rdx + r12*8]
mov r12, rsi
shr r12, 0x30
movzx r12d, r12b
xor rdi, qword [r8 + r12*8]
mov rbx, rsi
add rbp, r13
mov r12, rsi
sub r11, rdi
movzx edi, bh
mov rdi, qword [r8 + rdi*8]
shr r12, 0x18
movzx r12d, r12b
xor rdi, qword [rcx + r12*8]
mov r12, rsi
shr r12, 0x38
xor r10, r11
xor rdi, qword [rdx + r12*8]
mov r12, rsi
shr r12, 0x28
mov r15, r10
shr r15, 0x10
movzx r12d, r12b
xor rdi, qword [rax + r12*8]
movzx r11d, r15b
mov r15, r10
add rdi, qword [rsp + 8]
shr r15, 0x20
mov r11, qword [rax + r11*8]
lea rbx, [rdi + rdi*8]
movzx edi, r15b
mov r15, r10
xor r11, qword [rcx + rdi*8]
shr r15, 0x30
movzx edi, r10b
xor r11, qword [rdx + rdi*8]
movzx edi, r15b
xor r11, qword [r8 + rdi*8]
sub rbx, r11
mov r15, rbx
mov rbx, r10
movzx edi, bh
mov r12, qword [r8 + rdi*8]
shr rbx, 0x18
movzx r11d, bl
mov rbx, r10
xor r12, qword [rcx + r11*8]
shr rbx, 0x38
xor r12, qword [rdx + rbx*8]
mov rbx, r10
xor r15, r14
shr rbx, 0x28
movzx r11d, bl
mov rbx, r15
shr rbx, 0x10
xor r12, qword [rax + r11*8]
movzx r11d, bl
mov rbx, r15
mov r11, qword [rax + r11*8]
shr rbx, 0x20
movzx edi, bl
mov rbx, r15
xor r11, qword [rcx + rdi*8]
shr rbx, 0x30
movzx edi, r15b
xor r11, qword [rdx + rdi*8]
add r12, rsi
movzx edi, bl
mov rbx, r15
xor r11, qword [r8 + rdi*8]
lea rsi, [r12 + r12*8]
movzx ebx, bh
sub rsi, r11
mov r11, rbx
mov rbx, r15
mov r11, qword [r8 + r11*8]
shr rbx, 0x18
movzx edi, bl
mov rbx, r15
xor r11, qword [rcx + rdi*8]
shr rbx, 0x38
xor r11, qword [rdx + rbx*8]
mov rbx, r15
shr rbx, 0x28
movzx edi, bl
xor r11, qword [rax + rdi*8]
xor rsi, qword [rsp + 0x10]
add r10, r11
lea r11, [r10 + r10*8]
mov r10, rsi
shr r10, 0x10
mov rbx, rsi
movzx r10d, r10b
mov r10, qword [rax + r10*8]
shr rbx, 0x20
movzx edi, bl
mov rbx, rsi
xor r10, qword [rcx + rdi*8]
shr rbx, 0x30
movzx edi, sil
xor r10, qword [rdx + rdi*8]
movzx edi, bl
xor r10, qword [r8 + rdi*8]
mov rbx, rsi
sub r11, r10
movzx edi, bh
mov r10, rsi
mov r14, qword [r8 + rdi*8]
shr r10, 0x18
movzx r10d, r10b
xor r14, qword [rcx + r10*8]
mov r10, rsi
shr r10, 0x38
xor r14, qword [rdx + r10*8]
mov r10, rsi
shr r10, 0x28
movzx r10d, r10b
xor r14, qword [rax + r10*8]
xor r13, r11
lea rbx, [r15 + r14]
lea r10, [rbx + rbx*8]
mov rbx, r13
shr rbx, 0x10
movzx r11d, bl
mov rbx, r13
mov r11, qword [rax + r11*8]
shr rbx, 0x20
movzx ebx, bl
xor r11, qword [rcx + rbx*8]
movzx ebx, r13b
xor r11, qword [rdx + rbx*8]
mov rbx, r13
shr rbx, 0x30
movzx ebx, bl
xor r11, qword [r8 + rbx*8]
mov rbx, r13
movzx ebx, bh
sub r10, r11
mov r11, rbx
mov rbx, r13
mov r11, qword [r8 + r11*8]
shr rbx, 0x18
movzx ebx, bl
xor r11, qword [rcx + rbx*8]
mov rbx, r13
shr rbx, 0x38
xor r11, qword [rdx + rbx*8]
mov rbx, r13
shr rbx, 0x28
movzx ebx, bl
xor r11, qword [rax + rbx*8]
xor r10, rbp
add rsi, r11
lea rbx, [rsi + rsi*8]
mov rsi, r10
shr rsi, 0x10
movzx r11d, sil
mov rsi, r10
mov r11, qword [rax + r11*8]
shr rsi, 0x20
movzx esi, sil
xor r11, qword [rcx + rsi*8]
movzx esi, r10b
xor r11, qword [rdx + rsi*8]
mov rsi, r10
shr rsi, 0x30
movzx esi, sil
xor r11, qword [r8 + rsi*8]
sub rbx, r11
mov r14, rbx
mov rbx, r10
movzx ebx, bh
mov rsi, r10
mov r11, qword [r8 + rbx*8]
shr rsi, 0x18
movzx esi, sil
movabs rbx, 0x123456789abcdef
xor r11, qword [rcx + rsi*8]
xor rbp, rbx
mov rsi, r10
sub r9, rbp
shr rsi, 0x38
mov rbx, r14
xor rbx, r9
xor r11, qword [rdx + rsi*8]
mov rsi, r10
shr rsi, 0x28
mov r9, rbx
movzx esi, sil
shr r9, 0x10
xor r11, qword [rax + rsi*8]
movzx r9d, r9b
mov rsi, rbx
mov r9, qword [rax + r9*8]
shr rsi, 0x20
add r13, r11
movzx r11d, sil
mov rsi, rbx
xor r9, qword [rcx + r11*8]
shr rsi, 0x30
movzx r11d, bl
xor r9, qword [rdx + r11*8]
mov r14, rbx
movzx r11d, sil
movzx esi, bh
xor r9, qword [r8 + r11*8]
shr r14, 0x18
mov r8, qword [r8 + rsi*8]
movzx r11d, r14b
xor r8, qword [rcx + r11*8]
mov rcx, r8
mov r8, rbx
shr r8, 0x38
xor rcx, qword [rdx + r8*8]
mov rdx, rcx
mov rcx, rbx
shr rcx, 0x28
movzx ecx, cl
xor rdx, qword [rax + rcx*8]
add r10, rdx
lea rax, [r10 + r10*8]
mov rdx, qword [rsp + 0x98]
xor rax, qword [rsp + 0x38]
mov qword [rdx], rax
lea rax, [r13 + r13*8]
add rax, qword [rsp + 0x20]
sub rbx, qword [rsp + 0x18]
sub rax, r9
mov qword [rdx + 8], rbx
mov qword [rdx + 0x10], rax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret