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

Disassembly:
test r8, r8
je 0x18031a70a
mov qword [rsp + 8], rcx
mov eax, 0x108
call fcn.1802cf310
sub rsp, rax
mov r9, qword [rcx + 0x10]
mov rax, r8
mov r10, qword [rcx + 0x38]
mov r11, qword [rcx + 0x18]
mov qword [rsp + 0x100], rbx
movabs rbx, 0x428a2f98d728ae22
mov qword [rsp + 0xf8], rbp
mov rbp, qword [rcx + 0x20]
mov qword [rsp + 0xf0], rsi
mov rsi, qword [rcx + 0x30]
mov qword [rsp + 0xe8], rdi
mov rdi, qword [rcx + 0x28]
mov qword [rsp + 0xe0], r12
mov r12, qword [rcx + 8]
mov qword [rsp + 0xd8], r13
lea r13, [rdx + 2]
mov qword [rsp + 0xd0], r14
mov r14, qword [rcx]
mov qword [rsp + 0x80], r14
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0x118], r9
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x90], r9
mov qword [rsp + 0x98], r11
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], r10
mov qword [rsp + 0x78], r13
nop dword [rax + rax]
movzx r8d, byte [r13 - 2]
dec rax
mov qword [rsp + 0x120], rax
mov rdx, rbp
movzx eax, byte [r13 - 1]
mov rcx, rbp
shl r8, 8
not rcx
or r8, rax
ror rdx, 0x29
movzx eax, byte [r13]
and rcx, rsi
shl r8, 8
mov r15, r12
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, rbp
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x68], r8
mov rax, rbp
ror rax, 0xe
xor rdx, rax
mov rax, rdi
and rax, rbp
add rdx, r8
xor rcx, rax
mov r8, r12
add rdx, rcx
and r8, r14
add rdx, rbx
mov rcx, r14
mov rbx, r9
ror rcx, 0x27
movzx r9d, byte [r13 + 6]
add rdx, r10
shl r9, 8
and rbx, r15
xor rbx, r8
mov rax, r14
ror rax, 0x22
xor rcx, rax
lea r10, [r11 + rdx]
mov rax, r14
ror rax, 0x1c
xor rax, rcx
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
ror rdx, 0x29
mov rcx, r10
xor rdx, rax
shl r8, 8
not rcx
mov qword [rsp + 0x10], r9
and rcx, rdi
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, rbp
and rax, r10
xor rcx, rax
lea rax, [r9 + rdx]
mov r9, qword [rsp + 0x118]
add rcx, rax
movabs rdx, 0x7137449123ef65cd
add rdx, rcx
mov rax, rbx
ror rax, 0x22
add rdx, rsi
add r9, rdx
mov rcx, rbx
ror rcx, 0x27
xor rcx, rax
mov rax, rbx
ror rax, 0x1c
xor rax, rcx
mov rcx, r9
add rax, rdx
not rcx
add r15, rax
and rcx, rbp
movzx eax, byte [r13 + 0xf]
mov rdx, r9
or r8, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x10]
shl r8, 8
or r8, rax
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 + 0x18], r8
mov rax, r9
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, r9
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0xb5c0fbcfec4d3b2f
add rcx, rax
add rdx, rcx
mov rcx, r15
add rdx, rdi
ror rcx, 0x27
lea r11, [r12 + rdx]
movzx r8d, byte [r13 + 0x16]
mov rdi, r14
shl r8, 8
xor rdi, r15
and rdi, rbx
mov rax, r15
ror rax, 0x22
mov rsi, r15
xor rcx, rax
mov rax, r15
ror rax, 0x1c
xor rcx, rax
mov rax, r14
and rax, r15
xor rdi, rax
lea rax, [rdx + rcx]
mov rdx, r11
add rdi, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x17]
xor rsi, rdi
or r8, rax
and rsi, rbx
movzx eax, byte [r13 + 0x18]
mov rcx, r11
shl r8, 8
not rcx
or r8, rax
and rcx, r10
movzx eax, byte [r13 + 0x19]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x1a]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x1b]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x1c]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x1d]
shl r8, 8
or r8, rax
mov rax, r11
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x70], r8
mov rax, r11
ror rax, 0xe
xor rdx, rax
mov rax, r9
and rax, r11
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0xe9b5dba58189dbbc
add rcx, rax
mov rax, rdi
ror rax, 0x22
add rdx, rcx
add rdx, rbp
mov rcx, rdi
ror rcx, 0x27
xor rcx, rax
mov rax, rdi
ror rax, 0x1c
xor rcx, rax
lea r8, [r14 + rdx]
movzx r14d, byte [r13 + 0x1e]
mov rax, r15
and rax, rdi
shl r14, 8
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, r8
or r14, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x22]
mov rcx, r8
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, r8
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x48], r14
mov rax, r8
ror rax, 0xe
xor rdx, rax
mov rax, r11
and rax, r8
xor rcx, rax
lea rax, [r14 + rdx]
movabs rdx, 0x3956c25bf348b538
add rcx, rax
mov r14, rdi
add rdx, rcx
xor r14, rsi
add rdx, r10
and r14, r15
movzx r10d, byte [r13 + 0x26]
add rbx, rdx
shl r10, 8
mov rcx, rsi
ror rcx, 0x27
mov rax, rsi
ror rax, 0x22
xor rcx, rax
mov rax, rsi
ror rax, 0x1c
xor rcx, rax
mov rax, rdi
and rax, rsi
xor r14, rax
lea rax, [rdx + rcx]
mov rdx, rbx
add r14, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x27]
or r10, rax
movzx eax, byte [r13 + 0x28]
shl r10, 8
or r10, rax
movzx eax, byte [r13 + 0x29]
shl r10, 8
or r10, rax
movzx eax, byte [r13 + 0x2a]
shl r10, 8
or r10, rax
movzx eax, byte [r13 + 0x2b]
shl r10, 8
or r10, rax
movzx eax, byte [r13 + 0x2c]
shl r10, 8
or r10, rax
movzx eax, byte [r13 + 0x2d]
shl r10, 8
or r10, rax
mov rax, rbx
ror rax, 0x12
xor rdx, rax
mov qword [rsp + 0x128], r10
mov rax, rbx
ror rax, 0xe
xor rdx, rax
mov rcx, rbx
not rcx
mov rax, rbx
and rax, r8
and rcx, r11
xor rcx, rax
mov rbp, r14
lea rax, [r10 + rdx]
movabs rdx, 0x59f111f1b605d019
add rcx, rax
mov r10, rsi
add rdx, rcx
xor r10, r14
add rdx, r9
and r10, rdi
movzx r9d, byte [r13 + 0x2e]
add r15, rdx
shl r9, 8
mov rcx, r14
ror rcx, 0x27
mov rax, r14
ror rax, 0x22
xor rcx, rax
mov rax, r14
ror rax, 0x1c
xor rcx, rax
mov rax, rsi
and rax, r14
xor r10, rax
lea rax, [rdx + rcx]
mov rdx, r15
add r10, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x2f]
mov rcx, r15
or r9, rax
not rcx
movzx eax, byte [r13 + 0x30]
and rcx, r8
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 + 0x28], 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, r10
add rdx, rcx
ror rax, 0x22
add rdx, r11
mov rcx, r10
ror rcx, 0x27
add rdi, rdx
xor rcx, rax
mov rax, r10
ror rax, 0x1c
xor rcx, rax
movzx r9d, byte [r13 + 0x36]
xor rbp, r10
shl r9, 8
and rbp, rsi
mov rax, r14
mov r11, r10
and rax, r10
xor rbp, rax
lea rax, [rdx + rcx]
add rbp, rax
mov rdx, rdi
movzx eax, byte [r13 + 0x37]
xor r11, rbp
or r9, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x38]
and r11, r14
shl r9, 8
mov rcx, rdi
or r9, rax
not rcx
movzx eax, byte [r13 + 0x39]
and rcx, rbx
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0x3a]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0x3b]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0x3c]
shl r9, 8
or r9, rax
movzx eax, byte [r13 + 0x3d]
shl r9, 8
or r9, rax
mov rax, rdi
ror rax, 0x12
xor rdx, rax
mov qword [rsp], r9
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, rbp
ror rax, 0x22
add rdx, rcx
add rdx, r9
mov rcx, rbp
ror rcx, 0x27
add rsi, rdx
xor rcx, rax
mov rax, rbp
ror rax, 0x1c
xor rcx, rax
mov rax, r10
and rax, rbp
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
movzx r12d, byte [r13 + 0x46]
or r8, rax
movzx eax, byte [r13 + 0x44]
mov rdx, rsi
shl r12, 8
mov rcx, rsi
not rcx
shl r8, 8
and rcx, r15
ror rdx, 0x29
or r8, rax
mov r9, rbp
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 + 0x40], 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 r14, r8
xor rdx, rcx
mov rax, rbp
xor rax, r11
mov rcx, r11
ror rcx, 0x1c
mov rbx, rax
xor rcx, rdx
and rbx, r10
add rcx, r8
xor rbx, r9
add rbx, rcx
mov r8, r14
movzx ecx, byte [r13 + 0x47]
mov rdx, r14
or r12, rcx
ror r8, 0x29
movzx ecx, byte [r13 + 0x48]
not rdx
shl r12, 8
and rdx, rdi
or r12, rcx
movzx ecx, byte [r13 + 0x49]
shl r12, 8
or r12, rcx
movzx ecx, byte [r13 + 0x4a]
shl r12, 8
or r12, rcx
movzx ecx, byte [r13 + 0x4b]
shl r12, 8
or r12, rcx
movzx ecx, byte [r13 + 0x4c]
shl r12, 8
or r12, rcx
movzx ecx, byte [r13 + 0x4d]
shl r12, 8
or r12, rcx
mov rcx, r14
ror rcx, 0x12
xor r8, rcx
mov qword [rsp + 0x118], r12
mov rcx, r14
ror rcx, 0xe
xor r8, rcx
mov rcx, rsi
and rcx, r14
xor rdx, rcx
and rax, rbx
xor rax, r9
lea rcx, [r12 + r8]
add rdx, rcx
movzx r9d, byte [r13 + 0x4e]
shl r9, 8
movabs r8, 0x12835b0145706fbe
add r8, rdx
mov rcx, rbx
ror rcx, 0x22
add r8, r15
add r10, r8
mov rdx, rbx
ror rdx, 0x27
xor rdx, rcx
mov rcx, rbx
ror rcx, 0x1c
xor rcx, rdx
mov rdx, r10
add rcx, r8
not rdx
add rax, rcx
and rdx, rsi
movzx ecx, byte [r13 + 0x4f]
mov r8, r10
or r9, rcx
ror r8, 0x29
movzx ecx, byte [r13 + 0x50]
mov r12, rax
shl r9, 8
xor r12, r11
or r9, rcx
and r12, rbx
movzx ecx, byte [r13 + 0x51]
shl r9, 8
or r9, rcx
movzx ecx, byte [r13 + 0x52]
shl r9, 8
or r9, rcx
movzx ecx, byte [r13 + 0x53]
shl r9, 8
or r9, rcx
movzx ecx, byte [r13 + 0x54]
shl r9, 8
or r9, rcx
movzx ecx, byte [r13 + 0x55]
shl r9, 8
or r9, rcx
mov rcx, r10
ror rcx, 0x12
xor r8, rcx
mov qword [rsp + 0x20], r9
mov rcx, r10
ror rcx, 0xe
xor r8, rcx
mov rcx, r14
and rcx, r10
xor rdx, rcx
lea rcx, [rdi + r8]
movabs r8, 0x243185be4ee4b28c
add rdx, rcx
mov rcx, rax
ror rcx, 0x22
add r8, rdx
add r8, r9
mov rdx, rax
movzx r9d, byte [r13 + 0x56]
add rbp, 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 [r13 + 0x57]
shl r9, 8
or r9, rcx
mov r15, qword [rsp + 0x78]
movzx ecx, byte [r13 + 0x58]
mov r8, rbp
shl r9, 8
mov rdx, rbp
or r9, rcx
ror r8, 0x29
movzx ecx, byte [r13 + 0x59]
not rdx
shl r9, 8
and rdx, r14
or r9, rcx
movzx ecx, byte [r13 + 0x5a]
shl r9, 8
or r9, rcx
movzx ecx, byte [r13 + 0x5b]
shl r9, 8
or r9, rcx
movzx ecx, byte [r13 + 0x5c]
shl r9, 8
or r9, rcx
movzx ecx, byte [r13 + 0x5d]
shl r9, 8
mov r13, rax
or r9, rcx
xor r13, r12
mov qword [rsp + 0x50], r9
and r13, rbx
mov rcx, rbp
ror rcx, 0x12
xor r8, rcx
mov rcx, rbp
ror rcx, 0xe
xor r8, rcx
mov rcx, r10
and rcx, rbp
xor rdx, rcx
lea rcx, [rsi + r8]
movabs r8, 0x550c7dc3d5ffb4e2
add rdx, rcx
mov rcx, r12
ror rcx, 0x22
add r8, rdx
add r8, r9
mov rdx, r12
movzx r9d, byte [r15 + 0x5e]
add r11, r8
shl r9, 8
ror rdx, 0x27
xor rdx, rcx
mov rcx, r12
ror rcx, 0x1c
xor rdx, rcx
mov rcx, rax
and rcx, r12
xor r13, rcx
lea rcx, [r8 + rdx]
mov r8, r11
add r13, 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 + 0x30], r9
movzx edi, byte [r15 + 0x66]
mov rcx, r11
ror rcx, 0x12
mov rdx, r11
ror r8, 0x29
not rdx
xor r8, rcx
shl rdi, 8
and rdx, r10
mov rcx, r11
ror rcx, 0xe
xor r8, rcx
mov rcx, rbp
and rcx, r11
xor rdx, rcx
lea rcx, [r14 + r8]
movabs r8, 0x72be5d74f27b896f
add rdx, rcx
mov rcx, r13
ror rcx, 0x22
add r8, rdx
add r8, r9
mov rdx, r13
add rbx, r8
ror rdx, 0x27
xor rdx, rcx
mov qword [rsp + 8], rbx
mov r9, qword [rsp + 8]
mov rcx, r13
ror rcx, 0x1c
mov rbx, r12
xor rdx, rcx
xor rbx, r13
and rbx, rax
mov rcx, r12
and rcx, r13
xor rbx, rcx
lea rcx, [r8 + rdx]
mov r8, r9
add rbx, rcx
ror r8, 0x29
movzx ecx, byte [r15 + 0x67]
mov rdx, r9
or rdi, rcx
not rdx
movzx ecx, byte [r15 + 0x68]
and rdx, rbp
shl rdi, 8
or rdi, rcx
movzx ecx, byte [r15 + 0x69]
shl rdi, 8
or rdi, rcx
movzx ecx, byte [r15 + 0x6a]
shl rdi, 8
or rdi, rcx
movzx ecx, byte [r15 + 0x6b]
shl rdi, 8
or rdi, rcx
movzx ecx, byte [r15 + 0x6c]
shl rdi, 8
or rdi, rcx
movzx ecx, byte [r15 + 0x6d]
shl rdi, 8
or rdi, rcx
mov rcx, r9
ror rcx, 0x12
xor r8, rcx
mov qword [rsp + 0x58], rdi
mov rcx, r9
ror rcx, 0xe
xor r8, rcx
mov rcx, r9
and rcx, r11
xor rdx, rcx
lea rcx, [r10 + r8]
movabs r8, 0x80deb1fe3b1696b1
add rdx, rcx
add r8, rdx
mov rdx, rbx
add r8, rdi
add rax, r8
movzx r9d, byte [r15 + 0x6e]
mov rcx, rbx
mov r10, qword [rsp + 8]
mov rdi, r13
movzx r14d, byte [r15 + 0x76]
xor rdi, rbx
ror rcx, 0x22
and rdi, r12
shl r9, 8
mov rsi, rbx
ror rdx, 0x27
xor rdx, rcx
shl r14, 8
mov rcx, rbx
ror rcx, 0x1c
xor rdx, rcx
mov rcx, r13
and rcx, rbx
xor rdi, rcx
lea rcx, [r8 + rdx]
mov r8, rax
add rdi, rcx
ror r8, 0x29
movzx ecx, byte [r15 + 0x6f]
xor rsi, rdi
or r9, rcx
and rsi, r13
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 + 0x60], r9
mov rcx, rax
ror rcx, 0xe
xor r8, rcx
mov rcx, r10
and rcx, rax
xor rdx, rcx
lea rcx, [r9 + r8]
movabs r8, 0x9bdc06a725c71235
add rdx, rcx
mov rcx, rdi
ror rcx, 0x22
add r8, rdx
add r8, rbp
mov rdx, rdi
ror rdx, 0x27
add r12, r8
xor rdx, rcx
mov rcx, rdi
ror rcx, 0x1c
xor rdx, rcx
mov rcx, rbx
and rcx, rdi
xor rsi, rcx
lea rcx, [r8 + rdx]
add rsi, rcx
movzx ecx, byte [r15 + 0x77]
or r14, rcx
movzx ecx, byte [r15 + 0x78]
shl r14, 8
or r14, rcx
mov r8, r12
movzx ecx, byte [r15 + 0x79]
mov rdx, r12
shl r14, 8
not rdx
or r14, rcx
ror r8, 0x29
movzx ecx, byte [r15 + 0x7a]
and rdx, r10
shl r14, 8
mov rbp, rdi
or r14, rcx
xor rbp, rsi
movzx ecx, byte [r15 + 0x7b]
and rbp, rbx
shl r14, 8
or r14, rcx
movzx ecx, byte [r15 + 0x7c]
shl r14, 8
or r14, rcx
movzx ecx, byte [r15 + 0x7d]
shl r14, 8
or r14, rcx
mov rcx, r12
ror rcx, 0x12
xor r8, rcx
mov qword [rsp + 0x38], r14
mov rcx, r12
ror rcx, 0xe
xor r8, rcx
mov rcx, rax
and rcx, r12
xor rdx, rcx
lea rcx, [r14 + r8]
mov r14, qword [rsp + 0x68]
add rdx, rcx
movabs r8, 0xc19bf174cf692694
add r8, rdx
mov rcx, rsi
ror rcx, 0x22
add r8, r11
mov rdx, rsi
lea r11, [0x18046d5f0]
ror rdx, 0x27
add r13, r8
xor rdx, rcx
mov qword [rsp + 8], r11
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
nop
mov r8, r9
mov rcx, r9
ror rcx, 0x13
mov r15, rsi
ror r8, 0x3d
xor r15, rbp
xor r8, rcx
mov rcx, r9
mov r9, qword [rsp + 0x10]
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, rsi
xor rdx, rcx
and r9, rbp
mov rcx, qword [rsp + 0x118]
add rcx, r8
mov r8, r13
add rdx, rcx
ror r8, 0x29
add r14, rdx
mov rcx, r13
ror rcx, 0x12
mov rdx, r13
xor r8, rcx
mov qword [rsp + 0x68], r14
not rdx
mov rcx, r13
ror rcx, 0xe
and rdx, rax
xor r8, rcx
mov rcx, r12
and rcx, r13
xor rdx, rcx
mov rcx, rbp
add r8, rdx
ror rcx, 0x22
add r8, qword [r11 - 0x10]
mov rdx, rbp
ror rdx, 0x27
add r8, r14
xor rdx, rcx
add r8, r10
add rbx, r8
mov rcx, rbp
ror rcx, 0x1c
mov r10, r15
xor rcx, rdx
and r10, rdi
mov rdx, qword [rsp + 0x38]
add rcx, r8
mov r8, rdx
xor r10, r9
add r10, rcx
ror r8, 0x3d
mov rcx, rdx
ror rcx, 0x13
xor r8, rcx
mov rcx, rdx
shr rcx, 6
xor r8, rcx
mov rcx, qword [rsp + 0x18]
mov rdx, rcx
ror rcx, 1
ror rdx, 8
xor rdx, rcx
mov rcx, qword [rsp + 0x18]
shr rcx, 7
xor rdx, rcx
mov rcx, qword [rsp + 0x20]
add rcx, r8
mov r8, rbx
add rdx, rcx
add qword [rsp + 0x10], rdx
ror r8, 0x29
and r15, r10
mov rcx, rbx
ror rcx, 0x12
xor r15, r9
mov r9, qword [rsp + 0x18]
xor r8, rcx
mov rcx, rbx
mov rdx, rbx
ror rcx, 0xe
not rdx
xor r8, rcx
and rdx, r12
mov rcx, r13
and rcx, rbx
xor rdx, rcx
mov rcx, r10
add r8, rdx
ror rcx, 0x27
add r8, qword [r11 - 8]
mov rdx, r14
add r8, qword [rsp + 0x10]
add r8, rax
ror rdx, 0x3d
add rdi, r8
mov rax, r10
ror rax, 0x22
xor rcx, rax
mov rax, r10
ror rax, 0x1c
xor rax, rcx
add rax, r8
mov r8, qword [rsp + 0x70]
add r15, rax
mov rcx, r8
ror rcx, 8
mov rax, r14
ror rax, 0x13
xor rdx, rax
mov rax, r14
shr rax, 6
mov r14, r15
xor rdx, rax
mov rax, r8
ror rax, 1
xor rcx, rax
mov rax, r8
shr rax, 7
xor rcx, rax
mov rax, qword [rsp + 0x50]
add rax, rdx
mov rdx, rdi
add rcx, rax
ror rdx, 0x29
add r9, rcx
mov rax, rdi
ror rax, 0x12
mov rcx, rdi
xor rdx, rax
mov qword [rsp + 0x18], r9
not rcx
mov rax, rdi
ror rax, 0xe
and rcx, r13
xor rdx, rax
mov rax, rbx
and rax, rdi
xor rcx, rax
mov rax, r15
add rdx, rcx
ror rax, 0x22
add rdx, qword [r11]
mov rcx, r15
ror rcx, 0x27
add rdx, r9
xor rcx, rax
add rdx, r12
mov rax, r15
add rsi, rdx
ror rax, 0x1c
xor rcx, rax
xor r14, rbp
mov r12, qword [rsp + 0x48]
and r14, r10
mov r8, qword [rsp + 0x10]
mov rax, r15
and rax, rbp
xor r14, rax
lea rax, [rdx + rcx]
add r14, rax
mov rcx, r12
ror rcx, 8
mov rax, r8
ror rax, 0x13
mov rdx, r8
ror rdx, 0x3d
xor rdx, rax
mov rax, r8
shr rax, 6
xor rdx, rax
mov rax, r12
ror rax, 1
xor rcx, rax
mov rax, r12
mov r12, qword [rsp + 0x70]
shr rax, 7
xor rcx, rax
mov rax, qword [rsp + 0x30]
add rax, rdx
mov rdx, rsi
add rcx, rax
ror rdx, 0x29
add r12, rcx
mov rax, rsi
ror rax, 0x12
mov rcx, rsi
xor rdx, rax
mov qword [rsp + 0x70], r12
not rcx
mov rax, rsi
ror rax, 0xe
and rcx, rbx
xor rdx, rax
mov rax, rdi
and rax, rsi
xor rcx, rax
mov rax, r14
add rdx, rcx
ror rax, 0x22
add rdx, qword [r11 + 8]
mov rcx, r14
ror rcx, 0x27
add rdx, r12
xor rcx, rax
add rdx, r13
add rbp, rdx
mov rax, r14
ror rax, 0x1c
mov r11, r15
xor rcx, rax
xor r11, r14
and r11, r10
mov rax, r15
and rax, r14
xor r11, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x128]
add r11, 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
mov r9, qword [rsp + 0x48]
mov r13, qword [rsp + 8]
mov rax, qword [rsp + 0x58]
add rax, rdx
mov rdx, rbp
add rcx, rax
ror rdx, 0x29
add r9, rcx
mov rax, rbp
ror rax, 0x12
mov rcx, rbp
xor rdx, rax
mov qword [rsp + 0x48], r9
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 + 0x10]
mov rcx, r11
ror rcx, 0x27
add rdx, r9
xor rcx, rax
add rdx, rbx
add r10, rdx
mov rax, r11
ror rax, 0x1c
mov rbx, r14
xor rcx, rax
xor rbx, r11
and rbx, r15
mov rax, r14
and rax, r11
xor rbx, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x28]
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, 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 + 0x60]
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, rsi
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, rbp
xor rcx, rax
add rdx, rcx
add rdx, qword [r13 + 0x18]
add rdx, qword [rsp + 0x128]
add rdx, rdi
mov rcx, rbx
add r15, rdx
ror rcx, 0x27
mov rax, rbx
mov rdi, r11
ror rax, 0x22
xor rdi, rbx
xor rcx, rax
and rdi, r14
mov rax, rbx
ror rax, 0x1c
xor rcx, rax
mov rax, r11
and rax, rbx
xor rdi, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp]
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, r9
xor rdx, rax
ror rcx, 0x3d
mov rax, r9
ror rax, 0x13
xor rcx, rax
mov rax, r9
mov r9, qword [rsp + 0x28]
shr rax, 6
xor rcx, rax
mov rax, qword [rsp + 0x38]
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 + 0x28], r9
not rcx
mov rax, r15
ror rax, 0xe
and rcx, rbp
xor rdx, rax
mov rax, r10
and rax, r15
xor rcx, rax
mov rax, rdi
add rdx, rcx
ror rax, 0x22
add rdx, qword [r13 + 0x20]
mov rcx, rdi
ror rcx, 0x27
add rdx, r9
add rdx, rsi
xor rcx, rax
add r14, rdx
mov rax, rdi
ror rax, 0x1c
mov rsi, rbx
xor rcx, rax
xor rsi, rdi
and rsi, r11
mov rax, rbx
and rax, rdi
xor rsi, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x40]
add rsi, rax
mov rdx, rcx
ror rdx, 8
mov rax, rcx
ror rax, 1
xor rdx, rax
mov r9, qword [rsp + 0x128]
mov rax, rcx
mov rcx, r9
shr rax, 7
xor rdx, rax
ror rcx, 0x3d
mov rax, r9
ror rax, 0x13
xor rcx, rax
mov rax, r9
mov r9, qword [rsp]
shr rax, 6
xor rcx, rax
mov rax, qword [rsp + 0x68]
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], r9
not rcx
mov rax, r14
ror rax, 0xe
and rcx, r10
xor rdx, rax
mov rax, r15
and rax, r14
xor rcx, rax
mov rax, rsi
add rdx, rcx
ror rax, 0x22
add rdx, qword [r13 + 0x28]
mov rcx, rsi
ror rcx, 0x27
add rdx, r9
mov r9, qword [rsp + 0x28]
xor rcx, rax
add rdx, rbp
mov rax, rsi
ror rax, 0x1c
add r11, rdx
xor rcx, rax
mov rbp, rdi
xor rbp, rsi
mov rax, rdi
and rax, rsi
and rbp, rbx
xor rbp, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + 0x118]
add rbp, 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 + 0x40]
add rcx, rax
add rdx, rcx
mov r8, r11
ror r8, 0x29
mov rax, r11
mov qword [rsp + 0x40], rdx
ror rax, 0x12
xor r8, rax
mov rcx, r11
not rcx
mov rax, r11
and rcx, r15
ror rax, 0xe
xor r8, rax
mov r9, rsi
and r9, rbp
mov rax, r14
and rax, r11
xor rcx, rax
mov rax, rsi
add r8, rcx
xor rax, rbp
add r8, qword [r13 + 0x30]
mov rcx, rbp
add r8, rdx
ror rcx, 0x22
add r8, r10
mov rdx, rbp
add rbx, r8
ror rdx, 0x27
xor rdx, rcx
mov r10, rax
and r10, rdi
mov rcx, rbp
ror rcx, 0x1c
xor r10, r9
xor rcx, rdx
mov rdx, qword [rsp + 0x20]
add rcx, r8
mov r8, rdx
add r10, rcx
ror r8, 8
mov rcx, rdx
ror rcx, 1
xor r8, rcx
mov rcx, rdx
shr rcx, 7
xor r8, rcx
mov rcx, qword [rsp]
mov rdx, rcx
ror rcx, 0x13
ror rdx, 0x3d
xor rdx, rcx
mov rcx, qword [rsp]
shr rcx, 6
xor rdx, rcx
mov rcx, qword [rsp + 0x18]
add rcx, r8
mov r8, rbx
add rdx, rcx
ror r8, 0x29
add qword [rsp + 0x118], rdx
mov rcx, rbx
ror rcx, 0x12
mov rdx, rbx
xor r8, rcx
not rdx
and rdx, r14
mov rcx, rbx
ror rcx, 0xe
xor r8, rcx
mov rcx, r11
and rcx, rbx
xor rdx, rcx
mov rcx, r10
add r8, rdx
ror rcx, 0x22
add r8, qword [r13 + 0x38]
mov rdx, r10
add r8, qword [rsp + 0x118]
ror rdx, 0x27
add r8, r15
xor rdx, rcx
add rdi, r8
mov rcx, r10
ror rcx, 0x1c
xor rcx, rdx
and rax, r10
add rcx, r8
mov rdx, qword [rsp + 0x50]
mov r15, qword [rsp + 0x40]
mov r8, rdx
ror r8, 8
xor rax, r9
add rax, rcx
mov r9, qword [rsp + 0x20]
mov rcx, rdx
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, rdi
add r9, rdx
ror r8, 0x29
mov rcx, rdi
mov qword [rsp + 0x20], r9
ror rcx, 0x12
mov rdx, rdi
xor r8, rcx
not rdx
and rdx, r11
mov rcx, rdi
ror rcx, 0xe
mov r12, rax
xor r8, rcx
xor r12, rbp
and r12, r10
mov rcx, rbx
and rcx, rdi
xor rdx, rcx
mov rcx, rax
add r8, rdx
ror rcx, 0x22
add r8, qword [r13 + 0x40]
mov rdx, rax
ror rdx, 0x27
add r8, r9
mov r9, qword [rsp + 0x118]
xor rdx, rcx
add r8, r14
mov rcx, rax
ror rcx, 0x1c
add rsi, r8
xor rdx, rcx
mov rcx, rax
and rcx, rbp
xor r12, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rsp + 0x30]
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 rcx, qword [rsp + 0x48]
add rcx, r8
add rdx, rcx
mov r9, qword [rsp + 0x20]
mov r14, qword [rsp + 0x50]
mov rcx, rsi
ror rcx, 0x12
add r14, rdx
mov r8, rsi
mov qword [rsp + 0x50], r14
ror r8, 0x29
mov rdx, rsi
xor r8, rcx
not rdx
and rdx, rbx
mov rcx, rsi
ror rcx, 0xe
xor r8, rcx
mov rcx, rdi
and rcx, rsi
xor rdx, rcx
mov rcx, r12
add r8, rdx
ror rcx, 0x22
add r8, qword [r13 + 0x48]
mov rdx, r12
ror rdx, 0x27
add r8, r14
xor rdx, rcx
add r8, r11
mov r11, qword [rsp + 8]
add rbp, r8
mov rcx, r12
mov r13, rax
ror rcx, 0x1c
xor r13, r12
xor rdx, rcx
and r13, r10
mov rcx, rax
and rcx, r12
xor r13, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rsp + 0x58]
add r13, 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 + 0x30]
shr rcx, 6
xor rdx, rcx
mov rcx, qword [rsp + 0x128]
add rcx, r8
mov r8, rbp
add rdx, rcx
ror r8, 0x29
add r9, rdx
mov rcx, rbp
ror rcx, 0x12
mov rdx, rbp
xor r8, rcx
mov qword [rsp + 0x30], r9
not rdx
mov rcx, rbp
ror rcx, 0xe
and rdx, rdi
xor r8, rcx
mov rcx, rsi
and rcx, rbp
xor rdx, rcx
add r8, rdx
add r8, qword [r11 + 0x50]
add r8, r9
add r8, rbx
mov rdx, r13
add r10, r8
ror rdx, 0x27
mov rcx, r13
mov rbx, r12
ror rcx, 0x22
xor rbx, r13
xor rdx, rcx
and rbx, rax
mov rcx, r13
ror rcx, 0x1c
xor rdx, rcx
mov rcx, r12
and rcx, r13
xor rbx, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rsp + 0x60]
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, r14
xor r8, rcx
ror rdx, 0x3d
mov rcx, r14
ror rcx, 0x13
xor rdx, rcx
mov rcx, r14
mov r14, qword [rsp + 0x58]
shr rcx, 6
xor rdx, rcx
mov rcx, qword [rsp + 0x28]
add rcx, r8
mov r8, r10
add rdx, rcx
ror r8, 0x29
add r14, rdx
mov rcx, r10
ror rcx, 0x12
mov rdx, r10
xor r8, rcx
mov qword [rsp + 0x58], r14
not rdx
mov rcx, r10
ror rcx, 0xe
and rdx, rsi
xor r8, rcx
mov rcx, r10
and rcx, rbp
xor rdx, rcx
mov rcx, rbx
add r8, rdx
ror rcx, 0x22
add r8, qword [r11 + 0x58]
mov rdx, rbx
ror rdx, 0x27
add r8, r14
add r8, rdi
xor rdx, rcx
add rax, r8
mov rcx, rbx
ror rcx, 0x1c
mov rdi, r13
xor rdx, rcx
xor rdi, rbx
and rdi, r12
mov rcx, r13
and rcx, rbx
xor rdi, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rsp + 0x38]
add rdi, rcx
mov r8, rdx
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 + 0x60]
shr rcx, 6
xor rdx, rcx
mov rcx, qword [rsp]
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 + 0x60], r9
not rdx
mov rcx, rax
ror rcx, 0xe
and rdx, rbp
xor r8, rcx
mov rcx, r10
and rcx, rax
xor rdx, rcx
mov rcx, rdi
add r8, rdx
ror rcx, 0x22
add r8, qword [r11 + 0x60]
mov rdx, rdi
ror rdx, 0x27
add r8, r9
xor rdx, rcx
add r8, rsi
add r12, r8
mov rcx, rdi
ror rcx, 0x1c
mov rsi, rbx
xor rdx, rcx
xor rsi, rdi
and rsi, r13
mov rcx, rbx
and rcx, rdi
xor rsi, rcx
lea rcx, [r8 + rdx]
mov r8, r14
add rsi, rcx
ror r8, 0x3d
mov rcx, r14
ror rcx, 0x13
xor r8, rcx
mov rcx, r14
mov r14, qword [rsp + 0x68]
shr rcx, 6
mov rdx, r14
xor r8, rcx
ror rdx, 8
mov rcx, r14
ror rcx, 1
xor rdx, rcx
mov rcx, r14
shr rcx, 7
xor rdx, rcx
lea rcx, [r15 + r8]
mov r15, qword [rsp + 0x38]
add rdx, rcx
add r15, rdx
mov rcx, r12
ror rcx, 0x12
mov r8, r12
ror r8, 0x29
xor r8, rcx
mov qword [rsp + 0x38], r15
mov rcx, r12
ror rcx, 0xe
mov rdx, r12
xor r8, rcx
not rdx
and rdx, r10
mov rcx, rax
and rcx, r12
xor rdx, rcx
mov rcx, rsi
add r8, rdx
ror rcx, 0x22
add r8, qword [r11 + 0x68]
mov rdx, rsi
ror rdx, 0x27
add r8, r15
xor rdx, rcx
add r8, rbp
sub r11, 0xffffffffffffff80
mov rcx, rsi
ror rcx, 0x1c
mov rbp, rdi
xor rdx, rcx
mov qword [rsp + 8], r11
xor rbp, rsi
mov rcx, rdi
and rcx, rsi
and rbp, rbx
xor rbp, rcx
add r13, r8
lea rcx, [r8 + rdx]
add rbp, rcx
lea rcx, str.pubkey
cmp r11, rcx
jl 0x180319970
mov rcx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x88]
mov r11, qword [rsp + 0x98]
add r8, rsi
mov rsi, qword [rsp + 0xb0]
add r11, rbx
mov r9, qword [rsp + 0x90]
add rsi, rax
mov rax, qword [rsp + 0xb8]
add r9, rdi
mov rbx, qword [rsp + 0xa0]
add rax, r10
mov rdx, qword [rsp + 0x80]
add rbx, r13
mov rdi, qword [rsp + 0xa8]
add rdx, rbp
mov r13, qword [rsp + 0x78]
add rdi, r12
sub r13, 0xffffffffffffff80
mov qword [rsp + 0xb8], rax
mov qword [rcx + 0x38], rax
mov r10, rax
mov rax, qword [rsp + 0x120]
mov rbp, rbx
mov qword [rsp + 0xa0], rbx
mov r14, rdx
mov qword [rcx + 0x20], rbx
mov r12, r8
mov qword [rsp + 0x80], rdx
movabs rbx, 0x428a2f98d728ae22
mov qword [rcx], rdx
mov qword [rsp + 0x88], r8
mov qword [rcx + 8], r8
mov qword [rsp + 0x90], r9
mov qword [rcx + 0x10], r9
mov qword [rsp + 0x98], r11
mov qword [rcx + 0x18], r11
mov qword [rsp + 0xa8], rdi
mov qword [rcx + 0x28], rdi
mov qword [rsp + 0xb0], rsi
mov qword [rcx + 0x30], rsi
mov qword [rsp + 0x78], r13
mov qword [rsp + 0x118], r9
test rax, rax
jne 0x180318bc0
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