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