Function at 0x140163d00
Capabilities:
Encode data using xor
Hash data using sha512
Resolve function by parsing pe exports

Disassembly:
test r8, r8
je 0x1401658fc
mov qword [rsp + 8], rcx
mov eax, 0x108
call fcn.140229de0
sub rsp, rax
mov r11, qword [rcx]
mov rax, r8
mov r9, qword [rcx + 0x38]
mov r10, qword [rcx + 0x18]
mov qword [rsp + 0x100], rbx
movabs rbx, 0x428a2f98d728ae22
mov qword [rsp + 0xf8], rbp
mov rbp, qword [rcx + 0x10]
mov qword [rsp + 0xf0], rsi
mov rsi, qword [rcx + 0x20]
mov qword [rsp + 0xe8], rdi
mov rdi, qword [rcx + 0x28]
mov qword [rsp + 0xe0], r12
mov r12, qword [rcx + 0x30]
mov qword [rsp + 0xd8], r13
lea r13, [rdx + 2]
mov qword [rsp + 0xd0], r14
mov r14, qword [rcx + 8]
mov qword [rsp + 0x88], r14
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xb8], r9
mov qword [rsp + 0x98], r10
mov qword [rsp + 0x68], r13
movzx r8d, byte [r13 - 2]
dec rax
mov qword [rsp + 0x120], rax
mov rdx, rsi
movzx eax, byte [r13 - 1]
mov rcx, rsi
shl r8, 8
not rcx
or r8, rax
ror rdx, 0x29
movzx eax, byte [r13]
and rcx, r12
shl r8, 8
mov r15, r11
or r8, rax
xor r15, r14
movzx eax, byte [r13 + 1]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 2]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 3]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 4]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 5]
shl r8, 8
or r8, rax
mov rax, rsi
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x60], r8
mov rax, rsi
ror rax, 0xe
xor rdx, rax
mov rax, rdi
add rdx, r9
and rax, rsi
movzx r9d, byte [r13 + 6]
xor rcx, rax
shl r9, 8
add rdx, rcx
add rdx, rbx
mov rcx, r11
add rdx, r8
ror rcx, 0x27
mov rax, r11
mov r8, r11
ror rax, 0x22
and r8, r14
xor rcx, rax
mov rbx, rbp
and rbx, r15
mov rax, r11
ror rax, 0x1c
xor rbx, r8
xor rax, rcx
add r10, rdx
add rax, rdx
add rbx, rax
movzx eax, byte [r13 + 7]
or r9, rax
movzx eax, byte [r13 + 8]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 9]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0xa]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0xb]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0xc]
shl r9, 8
or r9, rax
shl r9, 8
movzx eax, byte [r13 + 0xd]
and r15, rbx
or r9, rax
xor r15, r8
movzx r8d, byte [r13 + 0xe]
mov rax, r10
ror rax, 0x12
mov rdx, r10
shl r8, 8
mov rcx, r10
ror rdx, 0x29
not rcx
xor rdx, rax
mov qword [rsp], r9
and rcx, rdi
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, rsi
and rax, r10
xor rcx, rax
lea rax, [r12 + rdx]
movabs rdx, 0x7137449123ef65cd
add rcx, rax
mov rax, rbx
ror rax, 0x22
add rdx, rcx
add rdx, r9
mov rcx, rbx
ror rcx, 0x27
xor rcx, rax
mov rax, rbx
ror rax, 0x1c
xor rax, rcx
lea r9, [rdx + rbp]
add rax, rdx
mov rcx, r9
add r15, rax
not rcx
movzx eax, byte [r13 + 0xf]
and rcx, rsi
or r8, rax
mov rdx, r9
movzx eax, byte [r13 + 0x10]
shl r8, 8
or r8, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x11]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x12]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x13]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x14]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x15]
shl r8, 8
or r8, rax
mov rax, r9
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x30], r8
mov rax, r9
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, r9
xor rcx, rax
lea rax, [rdi + rdx]
movabs rdx, 0xb5c0fbcfec4d3b2f
add rcx, rax
mov rax, r15
add rdx, rcx
mov rcx, r15
add rdx, r8
ror rcx, 0x27
lea r8, [r14 + rdx]
movzx r14d, byte [r13 + 0x1e]
mov rdi, r11
ror rax, 0x22
xor rdi, r15
xor rcx, rax
shl r14, 8
and rdi, rbx
mov rax, r15
ror rax, 0x1c
xor rcx, rax
mov rax, r11
movzx r11d, byte [r13 + 0x16]
and rax, r15
xor rdi, rax
shl r11, 8
lea rax, [rdx + rcx]
mov rdx, r8
add rdi, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x17]
mov rcx, r8
or r11, rax
not rcx
movzx eax, byte [r13 + 0x18]
and rcx, r10
shl r11, 8
or r11, rax
movzx eax, byte [r13 + 0x19]
shl r11, 8
or r11, rax
movzx eax, byte [r13 + 0x1a]
shl r11, 8
or r11, rax
movzx eax, byte [r13 + 0x1b]
shl r11, 8
or r11, rax
movzx eax, byte [r13 + 0x1c]
shl r11, 8
or r11, rax
movzx eax, byte [r13 + 0x1d]
shl r11, 8
or r11, rax
mov rax, r8
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x70], r11
mov rax, r8
ror rax, 0xe
xor rdx, rax
mov rax, r9
and rax, r8
xor rcx, rax
lea rax, [rsi + rdx]
movabs rdx, 0xe9b5dba58189dbbc
add rcx, rax
mov rsi, r15
add rdx, rcx
xor rsi, rdi
add rdx, r11
and rsi, rbx
mov r11, qword [rsp + 0x80]
mov rcx, rdi
ror rcx, 0x27
mov rax, rdi
ror rax, 0x22
add r11, rdx
xor rcx, rax
mov rax, rdi
ror rax, 0x1c
xor rcx, rax
mov rax, r15
and rax, rdi
xor rsi, rax
lea rax, [rdx + rcx]
add rsi, rax
movzx eax, byte [r13 + 0x1f]
or r14, rax
movzx eax, byte [r13 + 0x20]
shl r14, 8
or r14, rax
shl r14, 8
movzx eax, byte [r13 + 0x21]
mov rdx, r11
or r14, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x22]
mov rcx, r11
shl r14, 8
not rcx
or r14, rax
and rcx, r9
movzx eax, byte [r13 + 0x23]
shl r14, 8
or r14, rax
movzx eax, byte [r13 + 0x24]
shl r14, 8
or r14, rax
movzx eax, byte [r13 + 0x25]
shl r14, 8
or r14, rax
mov rax, r11
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x40], r14
mov rax, r11
ror rax, 0xe
xor rdx, rax
mov rax, r8
and rax, r11
xor rcx, rax
lea rax, [r14 + rdx]
movzx r14d, byte [r13 + 0x26]
add rcx, rax
shl r14, 8
movabs rdx, 0x3956c25bf348b538
mov rax, rsi
ror rax, 0x22
add rdx, rcx
add rdx, r10
mov rcx, rsi
add rbx, rdx
ror rcx, 0x27
xor rcx, rax
mov r10, rdi
xor r10, rsi
mov rax, rsi
ror rax, 0x1c
and r10, r15
xor rcx, rax
mov rax, rdi
and rax, rsi
xor r10, rax
lea rax, [rdx + rcx]
mov rdx, rbx
add r10, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x27]
or r14, rax
movzx eax, byte [r13 + 0x28]
shl r14, 8
or r14, rax
movzx eax, byte [r13 + 0x29]
shl r14, 8
or r14, rax
movzx eax, byte [r13 + 0x2a]
shl r14, 8
or r14, rax
movzx eax, byte [r13 + 0x2b]
shl r14, 8
or r14, rax
movzx eax, byte [r13 + 0x2c]
shl r14, 8
or r14, rax
movzx eax, byte [r13 + 0x2d]
shl r14, 8
or r14, rax
mov rax, rbx
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x128], r14
mov rax, rbx
ror rax, 0xe
xor rdx, rax
mov rcx, rbx
not rcx
mov rax, rbx
and rax, r11
and rcx, r8
xor rcx, rax
mov rbp, rsi
lea rax, [r14 + rdx]
xor rbp, r10
add rcx, rax
and rbp, rdi
movabs rdx, 0x59f111f1b605d019
mov rax, r10
ror rax, 0x22
add rdx, rcx
add rdx, r9
mov rcx, r10
movzx r9d, byte [r13 + 0x2e]
add r15, rdx
shl r9, 8
mov r14, r10
ror rcx, 0x27
xor rcx, rax
mov rax, r10
ror rax, 0x1c
xor rcx, rax
mov rax, rsi
and rax, r10
xor rbp, rax
lea rax, [rdx + rcx]
mov rdx, r15
add rbp, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x2f]
mov rcx, r15
or r9, rax
not rcx
movzx eax, byte [r13 + 0x30]
and rcx, r11
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0x31]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0x32]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0x33]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0x34]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0x35]
shl r9, 8
or r9, rax
mov rax, r15
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x10], r9
mov rax, r15
ror rax, 0xe
xor rdx, rax
mov rax, rbx
and rax, r15
xor rcx, rax
lea rax, [r9 + rdx]
movabs rdx, 0x923f82a4af194f9b
add rcx, rax
mov rax, rbp
add rdx, rcx
ror rax, 0x22
add rdx, r8
mov rcx, rbp
ror rcx, 0x27
add rdi, rdx
xor rcx, rax
mov rax, rbp
ror rax, 0x1c
xor rcx, rax
movzx r8d, byte [r13 + 0x36]
xor r14, rbp
shl r8, 8
and r14, rsi
mov rax, r10
and rax, rbp
xor r14, rax
lea rax, [rdx + rcx]
add r14, rax
mov rdx, rdi
movzx eax, byte [r13 + 0x37]
mov rcx, rdi
or r8, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x38]
not rcx
shl r8, 8
and rcx, rbx
or r8, rax
movzx eax, byte [r13 + 0x39]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x3a]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x3b]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x3c]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x3d]
shl r8, 8
or r8, rax
mov rax, rdi
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x20], r8
mov rax, rdi
ror rax, 0xe
xor rdx, rax
mov rax, r15
and rax, rdi
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r13 + 0x3e]
add rcx, rax
shl r8, 8
movabs rdx, 0xab1c5ed5da6d8118
mov rax, r14
ror rax, 0x22
add rdx, rcx
add rdx, r11
mov rcx, r14
ror rcx, 0x27
mov r11, rbp
xor rcx, rax
xor r11, r14
and r11, r10
mov rax, r14
ror rax, 0x1c
add rsi, rdx
xor rcx, rax
mov rax, rbp
and rax, r14
xor r11, rax
lea rax, [rdx + rcx]
add r11, rax
movzx eax, byte [r13 + 0x3f]
or r8, rax
movzx eax, byte [r13 + 0x40]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x41]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x42]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x43]
shl r8, 8
or r8, rax
mov rdx, rsi
movzx eax, byte [r13 + 0x44]
mov rcx, rsi
not rcx
shl r8, 8
and rcx, r15
ror rdx, 0x29
or r8, rax
mov r9, r14
movzx eax, byte [r13 + 0x45]
and r9, r11
shl r8, 8
or r8, rax
mov rax, rsi
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x38], r8
mov rax, rsi
ror rax, 0xe
xor rdx, rax
mov rax, rdi
and rax, rsi
xor rcx, rax
lea rax, [r8 + rdx]
movabs r8, 0xd807aa98a3030242
add rcx, rax
mov rdx, r11
add r8, rcx
ror rdx, 0x27
add r8, rbx
mov rcx, r11
ror rcx, 0x22
add r10, r8
xor rdx, rcx
mov rax, r14
xor rax, r11
mov rcx, r11
ror rcx, 0x1c
mov r13, rax
xor rcx, rdx
and r13, rbp
mov rdx, qword [rsp + 0x68]
add rcx, r8
xor r13, r9
mov r8, r10
add r13, rcx
ror r8, 0x29
movzx ecx, byte [rdx + 0x47]
movzx ebx, byte [rdx + 0x46]
shl rbx, 8
or rbx, rcx
movzx ecx, byte [rdx + 0x48]
shl rbx, 8
or rbx, rcx
movzx ecx, byte [rdx + 0x49]
shl rbx, 8
or rbx, rcx
movzx ecx, byte [rdx + 0x4a]
shl rbx, 8
or rbx, rcx
movzx ecx, byte [rdx + 0x4b]
shl rbx, 8
or rbx, rcx
movzx ecx, byte [rdx + 0x4c]
shl rbx, 8
or rbx, rcx
movzx ecx, byte [rdx + 0x4d]
shl rbx, 8
mov rdx, r10
or rbx, rcx
not rdx
mov rcx, r10
mov qword [rsp + 0x118], rbx
ror rcx, 0x12
xor r8, rcx
mov rcx, r10
ror rcx, 0xe
xor r8, rcx
mov rcx, rsi
and rdx, rdi
and rcx, r10
and rax, r13
xor rdx, rcx
xor rax, r9
lea rcx, [rbx + r8]
movabs r8, 0x12835b0145706fbe
add rdx, rcx
mov rcx, r13
ror rcx, 0x22
add r8, rdx
add r8, r15
mov rdx, r13
mov r15, qword [rsp + 0x68]
add rbp, r8
ror rdx, 0x27
xor rdx, rcx
mov rcx, r13
ror rcx, 0x1c
movzx r9d, byte [r15 + 0x4e]
xor rcx, rdx
add rcx, r8
shl r9, 8
add rax, rcx
mov r8, rbp
movzx ecx, byte [r15 + 0x4f]
mov rdx, rbp
or r9, rcx
ror r8, 0x29
movzx ecx, byte [r15 + 0x50]
not rdx
shl r9, 8
and rdx, rsi
or r9, rcx
mov r12, rax
movzx ecx, byte [r15 + 0x51]
xor r12, r11
shl r9, 8
and r12, r13
or r9, rcx
movzx ecx, byte [r15 + 0x52]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x53]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x54]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x55]
shl r9, 8
or r9, rcx
mov rcx, rbp
ror rcx, 0x12
xor r8, rcx
mov qword [rsp + 8], r9
mov rcx, rbp
ror rcx, 0xe
xor r8, rcx
mov rcx, r10
and rcx, rbp
xor rdx, rcx
lea rcx, [r9 + r8]
movzx r9d, byte [r15 + 0x56]
add rdx, rcx
movabs r8, 0x243185be4ee4b28c
add r8, rdx
mov rcx, rax
ror rcx, 0x22
add r8, rdi
mov rdx, rax
add r14, r8
ror rdx, 0x27
xor rdx, rcx
mov rcx, rax
ror rcx, 0x1c
xor rdx, rcx
mov rcx, rax
and rcx, r11
xor r12, rcx
lea rcx, [r8 + rdx]
add r12, rcx
movzx ecx, byte [r15 + 0x57]
mov r8, r14
shl r9, 8
mov rdx, r14
or r9, rcx
ror r8, 0x29
movzx ecx, byte [r15 + 0x58]
not rdx
shl r9, 8
and rdx, r10
or r9, rcx
mov rbx, rax
movzx ecx, byte [r15 + 0x59]
xor rbx, r12
shl r9, 8
and rbx, r13
or r9, rcx
movzx ecx, byte [r15 + 0x5a]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x5b]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x5c]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x5d]
shl r9, 8
or r9, rcx
mov rcx, r14
ror rcx, 0x12
xor r8, rcx
mov qword [rsp + 0x48], r9
mov rcx, r14
ror rcx, 0xe
xor r8, rcx
mov rcx, rbp
and rcx, r14
xor rdx, rcx
lea rcx, [r9 + r8]
movzx r9d, byte [r15 + 0x5e]
add rdx, rcx
shl r9, 8
movabs r8, 0x550c7dc3d5ffb4e2
mov rcx, r12
ror rcx, 0x22
add r8, rdx
add r8, rsi
mov rdx, r12
ror rdx, 0x27
add r11, r8
xor rdx, rcx
mov rcx, r12
ror rcx, 0x1c
xor rdx, rcx
mov rcx, rax
and rcx, r12
xor rbx, rcx
lea rcx, [r8 + rdx]
add rbx, rcx
movzx ecx, byte [r15 + 0x5f]
or r9, rcx
movzx ecx, byte [r15 + 0x60]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x61]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x62]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x63]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x64]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x65]
shl r9, 8
or r9, rcx
mov qword [rsp + 0x18], r9
mov r8, r11
mov rcx, r11
ror rcx, 0x12
mov rdx, r11
not rdx
ror r8, 0x29
xor r8, rcx
and rdx, rbp
mov rcx, r11
mov rdi, r12
ror rcx, 0xe
xor rdi, rbx
xor r8, rcx
and rdi, rax
mov rcx, r14
and rcx, r11
xor rdx, rcx
lea rcx, [r9 + r8]
movzx r9d, byte [r15 + 0x66]
add rdx, rcx
shl r9, 8
movabs r8, 0x72be5d74f27b896f
mov rcx, rbx
ror rcx, 0x22
add r8, rdx
add r8, r10
mov rdx, rbx
add r13, r8
ror rdx, 0x27
xor rdx, rcx
mov rcx, rbx
ror rcx, 0x1c
xor rdx, rcx
mov rcx, r12
and rcx, rbx
xor rdi, rcx
lea rcx, [r8 + rdx]
mov r8, r13
add rdi, rcx
ror r8, 0x29
movzx ecx, byte [r15 + 0x67]
mov rdx, r13
or r9, rcx
not rdx
movzx ecx, byte [r15 + 0x68]
and rdx, r14
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x69]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x6a]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x6b]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x6c]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x6d]
shl r9, 8
or r9, rcx
mov rcx, r13
ror rcx, 0x12
xor r8, rcx
mov qword [rsp + 0x50], r9
mov rcx, r13
ror rcx, 0xe
xor r8, rcx
mov rcx, r13
and rcx, r11
xor rdx, rcx
lea rcx, [r9 + r8]
movabs r8, 0x80deb1fe3b1696b1
add rdx, rcx
add r8, rdx
mov rdx, rdi
add r8, rbp
add rax, r8
ror rdx, 0x27
movzx r9d, byte [r15 + 0x6e]
mov rcx, rdi
movzx r10d, byte [r15 + 0x76]
mov rsi, rbx
ror rcx, 0x22
xor rsi, rdi
xor rdx, rcx
shl r9, 8
and rsi, r12
shl r10, 8
mov rcx, rdi
mov rbp, rdi
ror rcx, 0x1c
xor rdx, rcx
mov rcx, rbx
and rcx, rdi
xor rsi, rcx
lea rcx, [r8 + rdx]
mov r8, rax
add rsi, rcx
ror r8, 0x29
movzx ecx, byte [r15 + 0x6f]
xor rbp, rsi
or r9, rcx
and rbp, rbx
movzx ecx, byte [r15 + 0x70]
mov rdx, rax
shl r9, 8
not rdx
or r9, rcx
and rdx, r11
movzx ecx, byte [r15 + 0x71]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x72]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x73]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x74]
shl r9, 8
or r9, rcx
movzx ecx, byte [r15 + 0x75]
shl r9, 8
or r9, rcx
mov rcx, rax
ror rcx, 0x12
xor r8, rcx
mov qword [rsp + 0x58], r9
mov rcx, rax
ror rcx, 0xe
xor r8, rcx
mov rcx, r13
and rcx, rax
xor rdx, rcx
lea rcx, [r9 + r8]
movabs r8, 0x9bdc06a725c71235
add rdx, rcx
mov rcx, rsi
ror rcx, 0x22
add r8, rdx
add r8, r14
mov rdx, rsi
ror rdx, 0x27
add r12, r8
xor rdx, rcx
mov rcx, rsi
ror rcx, 0x1c
xor rdx, rcx
mov rcx, rdi
and rcx, rsi
xor rbp, rcx
lea rcx, [r8 + rdx]
add rbp, rcx
movzx ecx, byte [r15 + 0x77]
or r10, rcx
movzx ecx, byte [r15 + 0x78]
shl r10, 8
or r10, rcx
shl r10, 8
movzx ecx, byte [r15 + 0x79]
mov r8, r12
or r10, rcx
ror r8, 0x29
movzx ecx, byte [r15 + 0x7a]
mov rdx, r12
shl r10, 8
not rdx
or r10, rcx
and rdx, r13
movzx ecx, byte [r15 + 0x7b]
mov r14, rsi
shl r10, 8
xor r14, rbp
or r10, rcx
and r14, rdi
movzx ecx, byte [r15 + 0x7c]
shl r10, 8
or r10, rcx
movzx ecx, byte [r15 + 0x7d]
shl r10, 8
or r10, rcx
mov rcx, r12
ror rcx, 0x12
xor r8, rcx
mov qword [rsp + 0x28], r10
mov rcx, r12
ror rcx, 0xe
xor r8, rcx
mov rcx, rax
and rcx, r12
xor rdx, rcx
lea rcx, [r10 + r8]
movabs r8, 0xc19bf174cf692694
add rdx, rcx
lea r10, [0x1402c3110]
add r8, rdx
mov qword [rsp + 0x78], r10
add r8, r11
mov rdx, rbp
mov r11, qword [rsp + 0x60]
mov rcx, rbp
ror rcx, 0x22
add rbx, r8
ror rdx, 0x27
xor rdx, rcx
mov rcx, rbp
ror rcx, 0x1c
xor rdx, rcx
mov rcx, rsi
and rcx, rbp
xor r14, rcx
lea rcx, [r8 + rdx]
add r14, rcx
nop dword [rax]
mov r8, r9
mov rcx, r9
ror rcx, 0x13
mov r15, rbp
ror r8, 0x3d
xor r15, r14
xor r8, rcx
mov rcx, r9
mov r9, qword [rsp]
shr rcx, 6
mov rdx, r9
xor r8, rcx
ror rdx, 8
mov rcx, r9
ror rcx, 1
xor rdx, rcx
mov rcx, r9
shr rcx, 7
mov r9, rbp
xor rdx, rcx
and r9, r14
mov rcx, qword [rsp + 0x118]
add rcx, r8
mov r8, rbx
add rdx, rcx
ror r8, 0x29
add r11, rdx
mov rcx, rbx
ror rcx, 0x12
mov rdx, rbx
xor r8, rcx
mov qword [rsp + 0x60], r11
not rdx
mov rcx, rbx
ror rcx, 0xe
and rdx, rax
xor r8, rcx
mov rcx, r12
and rcx, rbx
xor rdx, rcx
mov rcx, r14
add r8, rdx
ror rcx, 0x22
add r8, qword [r10 - 0x10]
mov rdx, r14
ror rdx, 0x27
add r8, r11
xor rdx, rcx
add r8, r13
mov r13, qword [rsp + 0x30]
add rdi, r8
mov rcx, r14
mov r10, r15
ror rcx, 0x1c
and r10, rsi
xor rcx, rdx
xor r10, r9
mov rdx, qword [rsp + 0x28]
add rcx, r8
add r10, rcx
mov r8, rdx
mov rcx, rdx
ror r8, 0x3d
ror rcx, 0x13
xor r8, rcx
mov rcx, rdx
shr rcx, 6
mov rdx, r13
xor r8, rcx
ror rdx, 8
mov rcx, r13
ror rcx, 1
xor rdx, rcx
mov rcx, r13
shr rcx, 7
xor rdx, rcx
mov rcx, qword [rsp + 8]
add rcx, r8
mov r8, rdi
add rdx, rcx
add qword [rsp], rdx
mov r13, qword [rsp + 0x78]
and r15, r10
ror r8, 0x29
xor r15, r9
mov r9, qword [rsp + 0x30]
mov rcx, rdi
ror rcx, 0x12
mov rdx, rdi
xor r8, rcx
not rdx
and rdx, r12
mov rcx, rdi
ror rcx, 0xe
xor r8, rcx
mov rcx, rbx
and rcx, rdi
xor rdx, rcx
mov rcx, r10
add r8, rdx
ror rcx, 0x27
add r8, qword [r13 - 8]
add r8, qword [rsp]
add r8, rax
mov rax, r10
ror rax, 0x22
add rsi, r8
xor rcx, rax
mov rax, r10
ror rax, 0x1c
xor rax, rcx
mov rcx, qword [rsp + 0x70]
add rax, r8
mov rdx, rcx
add r15, rax
ror rdx, 8
mov rax, rcx
ror rax, 1
xor rdx, rax
mov rax, rcx
shr rax, 7
mov rcx, r11
xor rdx, rax
ror rcx, 0x3d
mov rax, r11
ror rax, 0x13
xor rcx, rax
mov rax, r11
shr rax, 6
xor rcx, rax
mov rax, qword [rsp + 0x48]
add rax, rdx
mov rdx, rsi
add rcx, rax
not rdx
add r9, rcx
and rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x30], r9
ror rcx, 0x29
mov rax, rsi
ror rax, 0x12
xor rcx, rax
mov rax, rsi
ror rax, 0xe
xor rcx, rax
mov rax, rdi
and rax, rsi
xor rdx, rax
lea rax, [r9 + rcx]
mov rcx, r15
add rdx, rax
ror rcx, 0x27
add rdx, r12
mov rax, r15
add rdx, qword [r13]
ror rax, 0x22
add rbp, rdx
xor rcx, rax
mov rax, r15
ror rax, 0x1c
xor rcx, rax
mov r8, qword [rsp]
mov r11, r15
mov r12, qword [rsp + 0x70]
xor r11, r14
and r11, r10
mov rax, r15
and rax, r14
xor r11, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x40]
add r11, rax
mov rdx, rcx
mov rax, rcx
ror rax, 1
ror rdx, 8
xor rdx, rax
mov rax, rcx
shr rax, 7
mov rcx, r8
xor rdx, rax
ror rcx, 0x3d
mov rax, r8
ror rax, 0x13
xor rcx, rax
mov rax, r8
shr rax, 6
xor rcx, rax
mov rax, qword [rsp + 0x18]
add rax, rdx
mov rdx, rbp
add rcx, rax
ror rdx, 0x29
add r12, rcx
mov rax, rbp
ror rax, 0x12
mov rcx, rbp
xor rdx, rax
mov qword [rsp + 0x70], r12
not rcx
mov rax, rbp
ror rax, 0xe
and rcx, rdi
xor rdx, rax
mov rax, rsi
and rax, rbp
xor rcx, rax
mov rax, r11
add rdx, rcx
ror rax, 0x22
add rdx, qword [r13 + 8]
mov rcx, r11
ror rcx, 0x27
add rdx, r12
xor rcx, rax
add rdx, rbx
add r14, rdx
mov rax, r11
ror rax, 0x1c
mov rbx, r15
xor rcx, rax
xor rbx, r11
and rbx, r10
mov rax, r15
and rax, r11
xor rbx, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x128]
add rbx, rax
mov rdx, rcx
mov rax, rcx
ror rdx, 8
ror rax, 1
xor rdx, rax
mov rax, rcx
shr rax, 7
mov rcx, r9
xor rdx, rax
ror rcx, 0x3d
mov rax, r9
ror rax, 0x13
xor rcx, rax
mov rax, r9
mov r9, qword [rsp + 0x40]
shr rax, 6
xor rcx, rax
mov rax, qword [rsp + 0x50]
add rax, rdx
mov rdx, r14
add rcx, rax
ror rdx, 0x29
add r9, rcx
mov rax, r14
ror rax, 0x12
mov rcx, r14
xor rdx, rax
mov qword [rsp + 0x40], r9
not rcx
mov rax, r14
ror rax, 0xe
and rcx, rsi
xor rdx, rax
mov rax, rbp
and rax, r14
xor rcx, rax
mov rax, rbx
add rdx, rcx
ror rax, 0x22
add rdx, qword [r13 + 0x10]
mov rcx, rbx
ror rcx, 0x27
add rdx, r9
xor rcx, rax
add rdx, rdi
add r10, rdx
mov rax, rbx
ror rax, 0x1c
mov rdi, r11
xor rcx, rax
xor rdi, rbx
and rdi, r15
mov rax, r11
and rax, rbx
xor rdi, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x10]
add rdi, rax
mov rdx, rcx
mov rax, rcx
ror rdx, 8
ror rax, 1
xor rdx, rax
mov rax, rcx
shr rax, 7
mov rcx, r12
xor rdx, rax
ror rcx, 0x3d
mov rax, r12
ror rax, 0x13
xor rcx, rax
mov rax, r12
shr rax, 6
xor rcx, rax
mov rax, qword [rsp + 0x58]
add rax, rdx
mov rdx, r10
add rcx, rax
ror rdx, 0x29
add qword [rsp + 0x128], rcx
mov rax, r10
ror rax, 0x12
mov rcx, r10
xor rdx, rax
not rcx
and rcx, rbp
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, r14
xor rcx, rax
add rdx, rcx
add rdx, qword [r13 + 0x18]
add rdx, qword [rsp + 0x128]
mov rcx, rdi
add rdx, rsi
ror rcx, 0x27
add r15, rdx
mov rax, rdi
ror rax, 0x22
mov rsi, rbx
xor rcx, rax
xor rsi, rdi
and rsi, r11
mov rax, rdi
ror rax, 0x1c
xor rcx, rax
mov rax, rbx
and rax, rdi
xor rsi, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x20]
add rsi, rax
mov rdx, rcx
mov rax, rcx
ror rdx, 8
ror rax, 1
xor rdx, rax
mov rax, rcx
shr rax, 7
mov rcx, r9
xor rdx, rax
ror rcx, 0x3d
mov rax, r9
ror rax, 0x13
xor rcx, rax
mov rax, r9
mov r9, qword [rsp + 0x10]
shr rax, 6
xor rcx, rax
mov rax, qword [rsp + 0x28]
add rax, rdx
mov rdx, r15
add rcx, rax
ror rdx, 0x29
add r9, rcx
mov rax, r15
ror rax, 0x12
mov rcx, r15
xor rdx, rax
mov qword [rsp + 0x10], r9
not rcx
mov rax, r15
ror rax, 0xe
and rcx, r14
xor rdx, rax
mov rax, r10
and rax, r15
xor rcx, rax
mov rax, rsi
add rdx, rcx
ror rax, 0x22
add rdx, qword [r13 + 0x20]
mov rcx, rsi
ror rcx, 0x27
add rdx, r9
xor rcx, rax
add rdx, rbp
add r11, rdx
mov rax, rsi
ror rax, 0x1c
mov rbp, rdi
xor rcx, rax
xor rbp, rsi
and rbp, rbx
mov rax, rdi
and rax, rsi
xor rbp, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x38]
add rbp, rax
mov rdx, rcx
ror rdx, 8
mov rax, rcx
mov r9, qword [rsp + 0x128]
ror rax, 1
xor rdx, rax
mov rax, rcx
shr rax, 7
mov rcx, r9
xor rdx, rax
ror rcx, 0x3d
mov rax, r9
ror rax, 0x13
xor rcx, rax
mov rax, r9
mov r9, qword [rsp + 0x20]
shr rax, 6
xor rcx, rax
mov rax, qword [rsp + 0x60]
add rax, rdx
mov rdx, r11
add rcx, rax
ror rdx, 0x29
add r9, rcx
mov rax, r11
ror rax, 0x12
mov rcx, r11
xor rdx, rax
mov qword [rsp + 0x20], r9
not rcx
mov rax, r11
ror rax, 0xe
and rcx, r10
xor rdx, rax
mov rax, r15
and rax, r11
xor rcx, rax
mov rax, rbp
add rdx, rcx
ror rax, 0x22
add rdx, qword [r13 + 0x28]
mov rcx, rbp
ror rcx, 0x27
add rdx, r9
mov r9, qword [rsp + 0x10]
xor rcx, rax
add rdx, r14
mov rax, rbp
ror rax, 0x1c
add rbx, rdx
xor rcx, rax
mov r14, rsi
xor r14, rbp
mov rax, rsi
and rax, rbp
and r14, rdi
xor r14, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x118]
add r14, rax
mov rdx, rcx
mov rax, rcx
ror rdx, 8
ror rax, 1
xor rdx, rax
mov rax, rcx
shr rax, 7
mov rcx, r9
xor rdx, rax
ror rcx, 0x3d
mov rax, r9
ror rax, 0x13
xor rcx, rax
mov rax, r9
shr rax, 6
xor rcx, rax
lea rax, [r8 + rdx]
mov rdx, qword [rsp + 0x38]
add rcx, rax
add rdx, rcx
mov r8, rbx
mov qword [rsp + 0x38], rdx
mov rax, rbx
ror r8, 0x29
ror rax, 0x12
mov rcx, rbx
not rcx
xor r8, rax
and rcx, r15
mov rax, rbx
ror rax, 0xe
mov r9, rbp
xor r8, rax
and r9, r14
mov rax, r11
and rax, rbx
xor rcx, rax
mov rax, rbp
add r8, rcx
xor rax, r14
add r8, qword [r13 + 0x30]
mov rcx, r14
add r8, rdx
ror rcx, 0x22
add r8, r10
mov rdx, r14
mov r10, qword [rsp + 0x20]
add rdi, r8
ror rdx, 0x27
mov r13, rax
xor rdx, rcx
and r13, rsi
xor r13, r9
mov rcx, r14
ror rcx, 0x1c
xor rcx, rdx
mov rdx, qword [rsp + 8]
add rcx, r8
mov r8, rdx
add r13, rcx
ror r8, 8
mov rcx, rdx
ror rcx, 1
xor r8, rcx
mov rcx, rdx
shr rcx, 7
mov rdx, r10
xor r8, rcx
ror rdx, 0x3d
mov rcx, r10
ror rcx, 0x13
xor rdx, rcx
mov rcx, r10
mov r10, qword [rsp + 0x78]
shr rcx, 6
xor rdx, rcx
mov rcx, qword [rsp + 0x30]
add rcx, r8
mov r8, rdi
add rdx, rcx
ror r8, 0x29
add qword [rsp + 0x118], rdx
mov rcx, rdi
ror rcx, 0x12
mov rdx, rdi
xor r8, rcx
not rdx
and rdx, r11
mov rcx, rdi
ror rcx, 0xe
xor r8, rcx
mov rcx, rbx
and rcx, rdi
xor rdx, rcx
mov rcx, r13
add r8, rdx
ror rcx, 0x22
add r8, qword [r10 + 0x38]
mov rdx, r13
add r8, qword [rsp + 0x118]
add r8, r15
ror rdx, 0x27
add rsi, r8
xor rdx, rcx
mov rcx, r13
mov r15, qword [rsp + 0x38]
and rax, r13
ror rcx, 0x1c
xor rax, r9
xor rcx, rdx
mov r9, qword [rsp + 8]
add rcx, r8
mov rdx, qword [rsp + 0x48]
add rax, rcx
mov r8, rdx
mov rcx, rdx
ror r8, 8
ror rcx, 1
xor r8, rcx
mov rcx, rdx
shr rcx, 7
mov rdx, r15
xor r8, rcx
ror rdx, 0x3d
mov rcx, r15
ror rcx, 0x13
xor rdx, rcx
mov rcx, r15
shr rcx, 6
xor rdx, rcx
lea rcx, [r12 + r8]
add rdx, rcx
mov r8, rsi
add r9, rdx
ror r8, 0x29
mov rcx, rsi
mov qword [rsp + 8], r9
ror rcx, 0x12
mov rdx, rsi
xor r8, rcx
not rdx
and rdx, rbx
mov rcx, rsi
ror rcx, 0xe
mov r12, rax
xor r8, rcx
xor r12, r14
and r12, r13
mov rcx, rdi
and rcx, rsi
xor rdx, rcx
mov rcx, rax
add r8, rdx
ror rcx, 0x22
add r8, qword [r10 + 0x40]
mov rdx, rax
ror rdx, 0x27
add r8, r9
mov r9, qword [rsp + 0x118]
xor rdx, rcx
add r8, r11
mov rcx, rax
ror rcx, 0x1c
add rbp, r8
xor rdx, rcx
mov rcx, rax
and rcx, r14
xor r12, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rsp + 0x18]
add r12, rcx
mov r8, rdx
mov rcx, rdx
ror r8, 8
ror rcx, 1
xor r8, rcx
mov rcx, rdx
shr rcx, 7
mov rdx, r9
xor r8, rcx
ror rdx, 0x3d
mov rcx, r9
ror rcx, 0x13
xor rdx, rcx
mov rcx, r9
shr rcx, 6
xor rdx, rcx
mov r9, qword [rsp + 8]
mov r11, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
add rcx, r8
mov r8, rbp
add rdx, rcx
ror r8, 0x29
add r11, rdx
mov rcx, rbp
ror rcx, 0x12
mov rdx, rbp
xor r8, rcx
mov qword [rsp + 0x48], r11
not rdx
mov rcx, rbp
ror rcx, 0xe
and rdx, rdi
xor r8, rcx
mov rcx, rsi
and rcx, rbp
xor rdx, rcx
mov rcx, r12
add r8, rdx
ror rcx, 0x22
add r8, qword [r10 + 0x48]
mov rdx, r12
ror rdx, 0x27
add r8, r11
xor rdx, rcx
add r8, rbx
add r14, r8
mov rcx, r12
ror rcx, 0x1c
mov rbx, rax
xor rdx, rcx
xor rbx, r12
and rbx, r13
mov rcx, rax
and rcx, r12
xor rbx, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rsp + 0x50]
add rbx, rcx
mov r8, rdx
mov rcx, rdx
ror r8, 8
ror rcx, 1
xor r8, rcx
mov rcx, rdx
shr rcx, 7
mov rdx, r9
xor r8, rcx
ror rdx, 0x3d
mov rcx, r9
ror rcx, 0x13
xor rdx, rcx
mov rcx, r9
mov r9, qword [rsp + 0x18]
shr rcx, 6
xor rdx, rcx
mov rcx, qword [rsp + 0x128]
add rcx, r8
mov r8, r14
add rdx, rcx
ror r8, 0x29
add r9, rdx
mov rcx, r14
ror rcx, 0x12
mov rdx, r14
xor r8, rcx
mov qword [rsp + 0x18], r9
not rdx
mov rcx, r14
ror rcx, 0xe
and rdx, rsi
xor r8, rcx
mov rcx, rbp
and rcx, r14
xor rdx, rcx
add r8, rdx
add r8, qword [r10 + 0x50]
mov rdx, rbx
ror rdx, 0x27
add r8, r9
add r8, rdi
mov rcx, rbx
ror rcx, 0x22
add r13, r8
xor rdx, rcx
mov rdi, r12
xor rdi, rbx
mov rcx, rbx
ror rcx, 0x1c
and rdi, rax
xor rdx, rcx
mov rcx, r12
and rcx, rbx
xor rdi, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rsp + 0x58]
add rdi, rcx
mov r8, rdx
mov rcx, rdx
ror r8, 8
ror rcx, 1
xor r8, rcx
mov rcx, rdx
shr rcx, 7
mov rdx, r11
xor r8, rcx
ror rdx, 0x3d
mov rcx, r11
ror rcx, 0x13
xor rdx, rcx
mov rcx, r11
mov r11, qword [rsp + 0x50]
shr rcx, 6
xor rdx, rcx
mov rcx, qword [rsp + 0x10]
add rcx, r8
mov r8, r13
add rdx, rcx
ror r8, 0x29
add r11, rdx
mov rcx, r13
ror rcx, 0x12
mov rdx, r13
xor r8, rcx
mov qword [rsp + 0x50], r11
not rdx
mov rcx, r13
ror rcx, 0xe
and rdx, rbp
xor r8, rcx
mov rcx, r13
and rcx, r14
xor rdx, rcx
mov rcx, rdi
add r8, rdx
ror rcx, 0x22
add r8, qword [r10 + 0x58]
mov rdx, rdi
ror rdx, 0x27
add r8, r11
add r8, rsi
xor rdx, rcx
add rax, r8
mov rcx, rdi
ror rcx, 0x1c
mov rsi, rbx
xor rdx, rcx
xor rsi, rdi
and rsi, r12
mov rcx, rbx
and rcx, rdi
xor rsi, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rsp + 0x28]
mov r8, rdx
add rsi, rcx
ror r8, 8
mov rcx, rdx
ror rcx, 1
xor r8, rcx
mov rcx, rdx
shr rcx, 7
mov rdx, r9
xor r8, rcx
ror rdx, 0x3d
mov rcx, r9
ror rcx, 0x13
xor rdx, rcx
mov rcx, r9
mov r9, qword [rsp + 0x58]
shr rcx, 6
xor rdx, rcx
mov rcx, qword [rsp + 0x20]
add rcx, r8
mov r8, rax
add rdx, rcx
ror r8, 0x29
add r9, rdx
mov rcx, rax
ror rcx, 0x12
mov rdx, rax
xor r8, rcx
mov qword [rsp + 0x58], r9
not rdx
mov rcx, rax
ror rcx, 0xe
and rdx, r14
xor r8, rcx
mov rcx, r13
and rcx, rax
xor rdx, rcx
mov rcx, rsi
add r8, rdx
ror rcx, 0x22
add r8, qword [r10 + 0x60]
mov rdx, rsi
ror rdx, 0x27
add r8, r9
xor rdx, rcx
add r8, rbp
add r12, r8
mov rcx, rsi
ror rcx, 0x1c
mov rbp, rdi
xor rdx, rcx
xor rbp, rsi
and rbp, rbx
mov rcx, rdi
and rcx, rsi
xor rbp, rcx
lea rcx, [r8 + rdx]
mov r8, r11
add rbp, rcx
ror r8, 0x3d
mov rcx, r11
ror rcx, 0x13
xor r8, rcx
mov rcx, r11
mov r11, qword [rsp + 0x60]
shr rcx, 6
mov rdx, r11
xor r8, rcx
ror rdx, 8
mov rcx, r11
ror rcx, 1
xor rdx, rcx
mov rcx, r11
shr rcx, 7
xor rdx, rcx
lea rcx, [r15 + r8]
mov r15, qword [rsp + 0x28]
add rdx, rcx
add r15, rdx
mov r8, r12
ror r8, 0x29
mov rcx, r12
mov qword [rsp + 0x28], r15
ror rcx, 0x12
xor r8, rcx
mov rdx, r12
not rdx
mov rcx, r12
ror rcx, 0xe
and rdx, r13
xor r8, rcx
mov rcx, rax
and rcx, r12
xor rdx, rcx
mov rcx, rbp
add r8, rdx
ror rcx, 0x22
add r8, qword [r10 + 0x68]
mov rdx, rbp
ror rdx, 0x27
add r8, r15
xor rdx, rcx
add r8, r14
sub r10, 0xffffffffffffff80
mov rcx, rbp
ror rcx, 0x1c
mov r14, rsi
xor rdx, rcx
mov qword [rsp + 0x78], r10
xor r14, rbp
mov rcx, rsi
and rcx, rbp
and r14, rdi
xor r14, rcx
add rbx, r8
lea rcx, [r8 + rdx]
add r14, rcx
lea rcx, [0x1402c3310]
cmp r10, rcx
jl 0x140164b70
mov rcx, qword [rsp + 0x110]
mov r11, qword [rsp + 0x80]
mov r10, qword [rsp + 0x98]
add r11, r14
mov r14, qword [rsp + 0x88]
add r10, rdi
mov rdi, qword [rsp + 0xa8]
add r14, rbp
mov rbp, qword [rsp + 0x90]
add rdi, r12
mov r9, qword [rsp + 0xb8]
add rbp, rsi
mov r12, qword [rsp + 0xb0]
add r9, r13
mov rsi, qword [rsp + 0xa0]
add r12, rax
mov r13, qword [rsp + 0x68]
add rsi, rbx
mov rax, qword [rsp + 0x120]
sub r13, 0xffffffffffffff80
mov qword [rsp + 0x80], r11
movabs rbx, 0x428a2f98d728ae22
mov qword [rcx], r11
mov qword [rsp + 0x88], r14
mov qword [rcx + 8], r14
mov qword [rsp + 0x90], rbp
mov qword [rcx + 0x10], rbp
mov qword [rsp + 0x98], r10
mov qword [rcx + 0x18], r10
mov qword [rsp + 0xa0], rsi
mov qword [rcx + 0x20], rsi
mov qword [rsp + 0xa8], rdi
mov qword [rcx + 0x28], rdi
mov qword [rsp + 0xb0], r12
mov qword [rcx + 0x30], r12
mov qword [rsp + 0xb8], r9
mov qword [rcx + 0x38], r9
mov qword [rsp + 0x68], r13
test rax, rax
jne 0x140163dd0
mov r15, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xf0]
mov rbp, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x100]
add rsp, 0x108
ret