Function at 0x1800e77d0
Capabilities:
Hash data using sha512

Disassembly:
test r8, r8
je 0x1800e8e92
push rbp
lea rbp, [rsp - 0x50]
mov eax, 0x150
call fcn.1800e9570
sub rsp, rax
mov rax, qword [0x180173200]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov r10, qword [rcx + 0x10]
mov rax, r8
mov r11, qword [rcx + 0x38]
movabs r9, 0x428a2f98d728ae22
mov qword [rsp + 0x168], rbx
mov rbx, qword [rcx]
mov qword [rsp + 0x170], rsi
mov rsi, qword [rcx + 8]
mov qword [rsp + 0x178], rdi
mov qword [rsp + 0x148], r12
mov r12, qword [rcx + 0x18]
mov qword [rsp + 0x140], r13
mov r13, qword [rcx + 0x30]
mov qword [rsp + 0x138], r14
mov r14, qword [rcx + 0x28]
mov qword [rsp + 0x130], r15
mov r15, qword [rcx + 0x20]
mov qword [rbp - 0x70], rcx
lea rcx, [rdx + 2]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x78], r11
mov qword [rsp + 0x68], r12
movzx r8d, byte [rcx - 2]
dec rax
shl r8, 8
mov rdx, r15
mov qword [rbp - 0x68], rax
mov rdi, r10
movzx eax, byte [rcx - 1]
or r8, rax
ror rdx, 0x29
movzx eax, byte [rcx]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 1]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 2]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 3]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 4]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 5]
shl r8, 8
mov rcx, r15
or r8, rax
not rcx
mov qword [rbp - 0x60], r8
and rcx, r13
mov rax, r15
ror rax, 0x12
xor rdx, rax
mov rax, r15
ror rax, 0xe
xor rdx, rax
mov rax, r14
add rdx, r8
and rax, r15
xor rcx, rax
mov rax, rbx
ror rax, 0x22
add rdx, rcx
add rdx, r9
mov rcx, rbx
add rdx, r11
ror rcx, 0x27
xor rcx, rax
mov r9, rsi
and r9, rbx
mov rax, rbx
ror rax, 0x1c
xor rax, rcx
lea r11, [r12 + rdx]
mov rcx, qword [rsp + 0x38]
add rax, rdx
mov r12, rsi
xor r12, rbx
and rdi, r12
movzx r8d, byte [rcx + 6]
xor rdi, r9
shl r8, 8
add rdi, rax
movzx eax, byte [rcx + 7]
or r8, rax
movzx eax, byte [rcx + 8]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 9]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0xa]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0xb]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0xc]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0xd]
and r12, rdi
shl r8, 8
xor r12, r9
or r8, rax
mov rdx, r11
mov qword [rbp - 0x58], r8
mov rax, r11
ror rax, 0x12
mov rcx, r11
ror rdx, 0x29
not rcx
xor rdx, rax
and rcx, r14
mov rax, r11
ror rax, 0xe
xor rdx, rax
mov rax, r15
and rax, r11
xor rcx, rax
lea rax, [rdx + r13]
mov r13, qword [rsp + 0x38]
add rcx, rax
movabs rdx, 0x7137449123ef65cd
add rdx, rcx
mov rax, rdi
add rdx, r8
ror rax, 0x22
movzx r8d, byte [r13 + 0xe]
add r10, rdx
shl r8, 8
mov rcx, rdi
ror rcx, 0x27
xor rcx, rax
mov rax, rdi
ror rax, 0x1c
xor rax, rcx
mov rcx, r10
add rax, rdx
not rcx
add r12, rax
and rcx, r15
movzx eax, byte [r13 + 0xf]
mov rdx, r10
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, r10
ror rax, 0x12
xor rdx, rax
mov qword [rbp - 0x50], r8
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, r11
and rax, r10
xor rcx, rax
lea rax, [r14 + rdx]
movabs rdx, 0xb5c0fbcfec4d3b2f
add rcx, rax
add rdx, rcx
mov rcx, r12
add rdx, r8
lea r9, [rsi + rdx]
movzx r8d, byte [r13 + 0x16]
mov rsi, rbx
shl r8, 8
xor rsi, r12
ror rcx, 0x27
and rsi, rdi
mov rax, r12
mov r14, r12
ror rax, 0x22
xor rcx, rax
mov rax, r12
ror rax, 0x1c
xor rcx, rax
mov rax, rbx
and rax, r12
xor rsi, rax
lea rax, [rdx + rcx]
mov rdx, r9
add rsi, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x17]
xor r14, rsi
or r8, rax
and r14, rdi
movzx eax, byte [r13 + 0x18]
mov rcx, r9
shl r8, 8
not rcx
or r8, rax
and rcx, r11
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, r9
ror rax, 0x12
xor rdx, rax
mov qword [rbp - 0x48], r8
mov rax, r9
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, r9
xor rcx, rax
lea rax, [r15 + rdx]
movabs rdx, 0xe9b5dba58189dbbc
add rcx, rax
mov rax, rsi
ror rax, 0x22
add rdx, rcx
add rdx, r8
mov rcx, rsi
movzx r8d, byte [r13 + 0x1e]
add rbx, rdx
ror rcx, 0x27
xor rcx, rax
shl r8, 8
mov rax, rsi
ror rax, 0x1c
xor rcx, rax
mov rax, r12
and rax, rsi
xor r14, rax
lea rax, [rdx + rcx]
add r14, rax
movzx eax, byte [r13 + 0x1f]
or r8, rax
movzx eax, byte [r13 + 0x20]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x21]
mov rdx, rbx
shl r8, 8
mov rcx, rbx
or r8, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x22]
not rcx
shl r8, 8
and rcx, r10
or r8, rax
movzx eax, byte [r13 + 0x23]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x24]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x25]
shl r8, 8
or r8, rax
mov rax, rbx
ror rax, 0x12
xor rdx, rax
mov qword [rbp - 0x40], r8
mov rax, rbx
ror rax, 0xe
xor rdx, rax
mov rax, r9
and rax, rbx
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r13 + 0x26]
add rcx, rax
shl r8, 8
movabs rdx, 0x3956c25bf348b538
mov rax, r14
ror rax, 0x22
add rdx, rcx
add rdx, r11
mov rcx, r14
add rdi, rdx
ror rcx, 0x27
xor rcx, rax
mov r11, rsi
xor r11, r14
mov rax, r14
ror rax, 0x1c
and r11, r12
xor rcx, rax
mov rax, rsi
and rax, r14
xor r11, rax
lea rax, [rdx + rcx]
mov rdx, rdi
add r11, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x27]
or r8, rax
movzx eax, byte [r13 + 0x28]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x29]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x2a]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x2b]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x2c]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x2d]
shl r8, 8
or r8, rax
mov rax, rdi
ror rax, 0x12
xor rdx, rax
mov qword [rbp - 0x38], r8
mov rax, rdi
ror rax, 0xe
mov rcx, rdi
xor rdx, rax
not rcx
and rcx, r9
mov rax, rdi
and rax, rbx
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r13 + 0x2e]
add rcx, rax
shl r8, 8
movabs rdx, 0x59f111f1b605d019
mov rax, r11
ror rax, 0x22
add rdx, rcx
add rdx, r10
mov rcx, r11
ror rcx, 0x27
add r12, rdx
xor rcx, rax
mov r10, r14
xor r10, r11
mov rax, r11
ror rax, 0x1c
and r10, rsi
xor rcx, rax
mov rax, r14
and rax, r11
xor r10, rax
lea rax, [rdx + rcx]
mov rdx, r12
add r10, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x2f]
mov rcx, r12
or r8, rax
not rcx
movzx eax, byte [r13 + 0x30]
and rcx, rbx
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x31]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x32]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x33]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x34]
shl r8, 8
or r8, rax
movzx eax, byte [r13 + 0x35]
shl r8, 8
or r8, rax
mov rax, r12
ror rax, 0x12
xor rdx, rax
mov qword [rbp - 0x30], r8
mov rax, r12
ror rax, 0xe
xor rdx, rax
mov rax, rdi
and rax, r12
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0x923f82a4af194f9b
add rcx, rax
mov rax, r10
add rdx, rcx
ror rax, 0x22
add rdx, r9
mov rcx, r10
ror rcx, 0x27
add rsi, rdx
xor rcx, rax
mov rax, r10
ror rax, 0x1c
xor rcx, rax
movzx r8d, byte [r13 + 0x36]
mov r15, r11
shl r8, 8
xor r15, r10
and r15, r14
mov rax, r11
and rax, r10
xor r15, rax
lea rax, [rdx + rcx]
add r15, rax
mov rdx, rsi
movzx eax, byte [r13 + 0x37]
mov rcx, rsi
or r8, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x38]
not rcx
shl r8, 8
and rcx, rdi
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, rsi
ror rax, 0x12
xor rdx, rax
mov qword [rbp - 0x28], r8
mov rax, rsi
ror rax, 0xe
xor rdx, rax
mov rax, r12
and rax, rsi
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r13 + 0x3e]
add rcx, rax
shl r8, 8
movabs rdx, 0xab1c5ed5da6d8118
mov rax, r15
ror rax, 0x22
add rdx, rcx
add rdx, rbx
mov rcx, r15
ror rcx, 0x27
mov rbx, r10
xor rcx, rax
xor rbx, r15
and rbx, r11
mov rax, r15
ror rax, 0x1c
add r14, rdx
xor rcx, rax
mov rax, r10
and rax, r15
xor rbx, rax
lea rax, [rdx + rcx]
add rbx, 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
shl r8, 8
movzx eax, byte [r13 + 0x43]
mov rdx, r14
or r8, rax
ror rdx, 0x29
movzx eax, byte [r13 + 0x44]
mov rcx, r14
shl r8, 8
not rcx
or r8, rax
and rcx, r12
movzx eax, byte [r13 + 0x45]
mov r9, r15
shl r8, 8
and r9, rbx
or r8, rax
mov r13, r15
mov qword [rbp - 0x20], r8
xor r13, rbx
mov rax, r14
ror rax, 0x12
xor rdx, rax
mov rax, r14
ror rax, 0xe
xor rdx, rax
mov rax, rsi
and rax, r14
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0xd807aa98a3030242
add rcx, rax
mov rax, rbx
ror rax, 0x22
add rdx, rcx
add rdx, rdi
mov rcx, rbx
add r11, rdx
ror rcx, 0x27
xor rcx, rax
mov rdi, r13
and rdi, r10
mov rax, rbx
ror rax, 0x1c
xor rdi, r9
xor rax, rcx
mov rcx, qword [rsp + 0x38]
add rax, rdx
mov rdx, r11
add rdi, rax
ror rdx, 0x29
movzx eax, byte [rcx + 0x47]
movzx r8d, byte [rcx + 0x46]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0x48]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0x49]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0x4a]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0x4b]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0x4c]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 0x4d]
shl r8, 8
mov rcx, r11
or r8, rax
not rcx
mov rax, r11
mov qword [rbp - 0x18], r8
ror rax, 0x12
xor rdx, rax
mov rax, r11
ror rax, 0xe
xor rdx, rax
and rcx, rsi
and r13, rdi
mov rax, r14
and rax, r11
xor r13, r9
xor rcx, rax
lea rax, [r8 + rdx]
add rcx, rax
movabs rdx, 0x12835b0145706fbe
add rdx, rcx
mov rax, rdi
ror rax, 0x22
add rdx, r12
mov r12, qword [rsp + 0x38]
add r10, rdx
mov rcx, rdi
ror rcx, 0x27
xor rcx, rax
mov rax, rdi
movzx r8d, byte [r12 + 0x4e]
ror rax, 0x1c
xor rax, rcx
shl r8, 8
add rax, rdx
mov rcx, r10
add r13, rax
not rcx
movzx eax, byte [r12 + 0x4f]
and rcx, r14
or r8, rax
mov rdx, r10
movzx eax, byte [r12 + 0x50]
shl r8, 8
or r8, rax
ror rdx, 0x29
movzx eax, byte [r12 + 0x51]
shl r8, 8
or r8, rax
movzx eax, byte [r12 + 0x52]
shl r8, 8
or r8, rax
movzx eax, byte [r12 + 0x53]
shl r8, 8
or r8, rax
movzx eax, byte [r12 + 0x54]
shl r8, 8
or r8, rax
movzx eax, byte [r12 + 0x55]
shl r8, 8
or r8, rax
mov rax, r10
ror rax, 0x12
xor rdx, rax
mov qword [rbp - 0x10], r8
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, r11
and rax, r10
xor rcx, rax
lea rax, [r8 + rdx]
mov rdx, r13
add rcx, rax
ror rdx, 0x27
mov rax, r13
movabs r8, 0x243185be4ee4b28c
ror rax, 0x22
add r8, rcx
xor rdx, rax
add r8, rsi
mov rax, r13
mov rcx, r13
ror rax, 0x1c
and rcx, rbx
xor rdx, rax
add r15, r8
mov rax, r13
xor rax, rbx
and rax, rdi
xor rax, rcx
lea rcx, [r8 + rdx]
add rax, rcx
movzx ecx, byte [r12 + 0x57]
mov r8, r15
movzx r9d, byte [r12 + 0x56]
mov rdx, r15
shl r9, 8
not rdx
or r9, rcx
ror r8, 0x29
movzx ecx, byte [r12 + 0x58]
and rdx, r11
shl r9, 8
mov rsi, r13
or r9, rcx
xor rsi, rax
movzx ecx, byte [r12 + 0x59]
and rsi, rdi
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x5a]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x5b]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x5c]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x5d]
shl r9, 8
or r9, rcx
mov rcx, r15
ror rcx, 0x12
xor r8, rcx
mov qword [rbp - 8], r9
mov rcx, r15
ror rcx, 0xe
xor r8, rcx
mov rcx, r10
and rcx, r15
xor rdx, rcx
lea rcx, [r9 + r8]
movzx r9d, byte [r12 + 0x5e]
add rdx, rcx
shl r9, 8
movabs r8, 0x550c7dc3d5ffb4e2
mov rcx, rax
ror rcx, 0x22
add r8, rdx
add r8, r14
mov rdx, rax
ror rdx, 0x27
add rbx, r8
xor rdx, rcx
mov rcx, rax
ror rcx, 0x1c
xor rdx, rcx
mov rcx, r13
and rcx, rax
xor rsi, rcx
lea rcx, [r8 + rdx]
add rsi, rcx
movzx ecx, byte [r12 + 0x5f]
or r9, rcx
movzx ecx, byte [r12 + 0x60]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x61]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x62]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x63]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x64]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x65]
shl r9, 8
or r9, rcx
mov qword [rbp], r9
mov r8, rbx
ror r8, 0x29
mov rcx, rbx
ror rcx, 0x12
mov rdx, rbx
xor r8, rcx
not rdx
and rdx, r10
mov rcx, rbx
ror rcx, 0xe
xor r8, rcx
mov rcx, r15
and rcx, rbx
xor rdx, rcx
lea rcx, [r9 + r8]
movzx r9d, byte [r12 + 0x66]
add rdx, rcx
shl r9, 8
movabs r8, 0x72be5d74f27b896f
mov rcx, rsi
ror rcx, 0x22
add r8, rdx
add r8, r11
mov rdx, rsi
add rdi, r8
ror rdx, 0x27
xor rdx, rcx
mov qword [rsp], rdi
mov r14, qword [rsp]
mov rcx, rsi
ror rcx, 0x1c
mov rdi, rax
xor rdx, rcx
xor rdi, rsi
and rdi, r13
mov rcx, rax
and rcx, rsi
xor rdi, rcx
lea rcx, [r8 + rdx]
mov r8, r14
add rdi, rcx
ror r8, 0x29
movzx ecx, byte [r12 + 0x67]
mov rdx, r14
or r9, rcx
not rdx
movzx ecx, byte [r12 + 0x68]
and rdx, r15
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x69]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x6a]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x6b]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x6c]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x6d]
shl r9, 8
or r9, rcx
mov rcx, r14
ror rcx, 0x12
xor r8, rcx
mov qword [rbp + 8], r9
mov rcx, r14
ror rcx, 0xe
xor r8, rcx
mov rcx, r14
and rcx, rbx
xor rdx, rcx
lea rcx, [r9 + r8]
movabs r8, 0x80deb1fe3b1696b1
add rdx, rcx
add r8, rdx
add r8, r10
movzx r9d, byte [r12 + 0x6e]
add r13, r8
shl r9, 8
mov rdx, rdi
ror rdx, 0x27
mov rcx, rdi
ror rcx, 0x22
mov r10, rsi
xor rdx, rcx
mov qword [rsp + 0x10], r13
xor r10, rdi
mov rcx, rdi
ror rcx, 0x1c
and r10, rax
xor rdx, rcx
mov r11, rdi
mov rcx, rsi
and rcx, rdi
xor r10, rcx
lea rcx, [r8 + rdx]
mov r8, r13
add r10, rcx
ror r8, 0x29
movzx ecx, byte [r12 + 0x6f]
xor r11, r10
or r9, rcx
mov qword [rsp + 0x20], r10
movzx ecx, byte [r12 + 0x70]
and r11, rsi
shl r9, 8
mov rdx, r13
or r9, rcx
not rdx
movzx ecx, byte [r12 + 0x71]
and rdx, rbx
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x72]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x73]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x74]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x75]
shl r9, 8
or r9, rcx
mov rcx, r13
ror rcx, 0x12
xor r8, rcx
mov qword [rbp + 0x10], r9
mov rcx, r13
ror rcx, 0xe
xor r8, rcx
mov rcx, r14
and rcx, r13
xor rdx, rcx
lea rcx, [r9 + r8]
movzx r9d, byte [r12 + 0x76]
add rdx, rcx
movabs r8, 0x9bdc06a725c71235
add r8, rdx
mov rcx, r10
ror rcx, 0x22
add r8, r15
mov rdx, r10
add rax, r8
ror rdx, 0x27
xor rdx, rcx
mov rcx, r10
ror rcx, 0x1c
xor rdx, rcx
mov rcx, rdi
and rcx, r10
xor r11, rcx
lea rcx, [r8 + rdx]
add r11, rcx
mov qword [rsp + 0x28], r11
shl r9, 8
movzx ecx, byte [r12 + 0x77]
mov r15, r10
or r9, rcx
xor r15, r11
movzx ecx, byte [r12 + 0x78]
mov r8, rax
shl r9, 8
and r15, rdi
or r9, rcx
ror r8, 0x29
movzx ecx, byte [r12 + 0x79]
mov rdx, rax
shl r9, 8
not rdx
or r9, rcx
and rdx, r14
movzx ecx, byte [r12 + 0x7a]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x7b]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x7c]
shl r9, 8
or r9, rcx
movzx ecx, byte [r12 + 0x7d]
shl r9, 8
or r9, rcx
mov rcx, rax
ror rcx, 0x12
xor r8, rcx
mov qword [rbp + 0x18], 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, 0xc19bf174cf692694
add rdx, rcx
mov rcx, r11
add r8, rdx
ror rcx, 0x22
add r8, rbx
mov rdx, r11
ror rdx, 0x27
add rsi, r8
xor rdx, rcx
mov qword [rsp + 0x40], rsi
mov rcx, r11
ror rcx, 0x1c
xor rdx, rcx
mov rcx, r10
and rcx, r11
lea r10, [0x180137610]
xor r15, rcx
mov qword [rsp + 0x18], r10
lea rcx, [r8 + rdx]
mov r8d, reloc.WS2_32.dll_recvfrom
add r15, rcx
mov qword [rsp + 8], r8
mov qword [rsp + 0x30], r15
jmp 0x1800e8664
mov rsi, r14
mov rcx, r8
lea ebx, [r8 - 7]
and ecx, 0xf
lea r14, [rbp - 0x60]
mov r9, qword [r14 + rcx*8]
lea r14, [r14 + rcx*8]
lea ecx, [r8 - 3]
and ecx, 0xf
lea r12, [rbp - 0x60]
mov rdx, qword [r12 + rcx*8]
lea r12, [r12 + rcx*8]
lea ecx, [r8 - 1]
mov r8, rdx
and ecx, 0xf
ror r8, 0x3d
lea r13, [rbp - 0x60]
lea r13, [r13 + rcx*8]
mov rcx, rdx
ror rcx, 0x13
xor r8, rcx
shr rdx, 6
xor r8, rdx
mov rcx, r9
ror rcx, 1
mov rdx, r9
ror rdx, 8
xor rdx, rcx
shr r9, 7
xor rdx, r9
lea ecx, [rbx - 1]
add r8, rdx
and ecx, 0xf
mov rdx, rsi
not rdx
and rdx, qword [rsp + 0x10]
add r8, qword [rbp + rcx*8 - 0x60]
mov rcx, rsi
add qword [r13], r8
mov r8, rsi
ror rcx, 0x12
ror r8, 0x29
xor r8, rcx
mov rcx, rsi
ror rcx, 0xe
xor r8, rcx
mov rcx, rax
and rcx, rsi
xor rdx, rcx
mov rcx, r15
add r8, rdx
ror rcx, 0x22
add r8, qword [r10 - 0x10]
mov rdx, r15
add r8, qword [r13]
mov r10, r11
add r8, qword [rsp]
xor r10, r15
add rdi, r8
ror rdx, 0x27
xor rdx, rcx
mov qword [rsp + 0x48], rdi
and r11, r15
lea rdi, [rbp - 0x60]
mov rcx, r15
mov r9, r10
and r9, qword [rsp + 0x20]
lea r15, [rbp - 0x60]
ror rcx, 0x1c
xor r9, r11
xor rcx, rdx
mov rdx, qword [rsp + 8]
add rcx, r8
add r9, rcx
mov qword [rsp], r9
lea ecx, [rdx + 1]
and ecx, 0xf
mov r8, qword [rdi + rcx*8]
lea rdi, [rdi + rcx*8]
lea ecx, [rdx - 2]
and ecx, 0xf
lea r15, [r15 + rcx*8]
mov rdx, qword [r15]
mov r9, rdx
mov rcx, rdx
ror rcx, 0x13
shr rdx, 6
ror r9, 0x3d
xor r9, rcx
mov rcx, r8
xor r9, rdx
ror rcx, 1
mov rdx, r8
shr r8, 7
ror rdx, 8
xor rdx, rcx
mov ecx, ebx
xor rdx, r8
and ecx, 0xf
add r9, rdx
add r9, qword [rbp + rcx*8 - 0x60]
add qword [r14], r9
mov r9, qword [rsp + 0x48]
mov r8, r9
mov rcx, r9
ror rcx, 0x12
mov rdx, r9
not rdx
ror r8, 0x29
xor r8, rcx
and rdx, rax
mov rcx, r9
ror rcx, 0xe
xor r8, rcx
mov rcx, rsi
and rcx, r9
mov r9, qword [rsp]
xor rdx, rcx
mov rcx, qword [rsp + 0x18]
add r8, rdx
mov rdx, r9
ror rdx, 0x27
add r8, qword [rcx - 8]
mov rcx, r9
add r8, qword [r14]
add r8, qword [rsp + 0x10]
add qword [rsp + 0x20], r8
ror rcx, 0x22
xor rdx, rcx
mov rcx, r9
ror rcx, 0x1c
mov r9, r10
and r9, qword [rsp]
lea r10, [rbp - 0x60]
xor rcx, rdx
xor r9, r11
mov rdx, qword [r13]
add rcx, r8
add r9, rcx
mov rcx, qword [rsp + 8]
add ecx, 2
mov qword [rsp + 0x10], r9
and ecx, 0xf
mov r9, rdx
mov r8, qword [r10 + rcx*8]
lea r10, [r10 + rcx*8]
mov rcx, rdx
ror r9, 0x3d
ror rcx, 0x13
xor r9, rcx
shr rdx, 6
xor r9, rdx
mov rcx, r8
ror rcx, 1
mov rdx, r8
ror rdx, 8
xor rdx, rcx
shr r8, 7
lea ecx, [rbx + 1]
xor rdx, r8
and ecx, 0xf
add r9, rdx
add r9, qword [rbp + rcx*8 - 0x60]
add qword [rdi], r9
mov rbx, qword [rsp + 0x20]
mov r8, qword [rdi]
mov rdx, rbx
mov r11, qword [rsp + 0x48]
mov rcx, rbx
ror rcx, 0x12
mov r9, rbx
ror rdx, 0x29
not r9
xor rdx, rcx
and r9, rsi
mov rcx, rbx
lea rsi, [rbp - 0x60]
ror rcx, 0xe
xor rdx, rcx
mov rcx, r11
and rcx, rbx
xor r9, rcx
lea rcx, [r8 + rdx]
add r9, rcx
mov rcx, qword [rsp + 0x10]
add r9, rax
mov rdx, rcx
mov rax, qword [rsp + 0x18]
ror rdx, 0x27
add r9, qword [rax]
mov rax, rcx
add qword [rsp + 0x28], r9
ror rax, 0x22
xor rdx, rax
mov rax, rcx
ror rax, 0x1c
xor rdx, rax
mov rax, rcx
and rcx, qword [rsp + 0x30]
xor rax, qword [rsp + 0x30]
and rax, qword [rsp]
xor rax, rcx
lea rcx, [r9 + rdx]
mov rdx, qword [r14]
add rax, rcx
mov rcx, qword [rsp + 8]
mov r9, rdx
add ecx, 3
ror r9, 0x3d
and ecx, 0xf
mov r8, qword [rsi + rcx*8]
lea rsi, [rsi + rcx*8]
mov rcx, rdx
shr rdx, 6
ror rcx, 0x13
xor r9, rcx
mov rcx, r8
xor r9, rdx
ror rcx, 1
mov rdx, r8
shr r8, 7
ror rdx, 8
xor rdx, rcx
mov rcx, qword [rsp + 8]
xor rdx, r8
add ecx, 0xfffffffb
and ecx, 0xf
add r9, rdx
add r9, qword [rbp + rcx*8 - 0x60]
add qword [r10], r9
mov r9, qword [rsp + 0x28]
mov r8, r9
mov rcx, r9
ror rcx, 0x12
mov rdx, r9
ror r8, 0x29
not rdx
xor r8, rcx
and rdx, r11
mov rcx, r9
ror rcx, 0xe
xor r8, rcx
mov rcx, rbx
and rcx, r9
xor rdx, rcx
lea rbx, [rbp - 0x60]
mov rcx, qword [rsp + 0x18]
add r8, rdx
mov rdx, rax
ror rdx, 0x27
add r8, qword [rcx + 8]
mov rcx, rax
add r8, qword [r10]
add r8, qword [rsp + 0x40]
add qword [rsp + 0x30], r8
ror rcx, 0x22
xor rdx, rcx
mov rcx, rax
ror rcx, 0x1c
xor rdx, rcx
mov rcx, qword [rsp + 0x10]
mov r14, rcx
and rcx, rax
xor r14, rax
and r14, qword [rsp]
xor r14, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rdi]
add r14, rcx
mov rcx, qword [rsp + 8]
mov r9, rdx
add ecx, 4
ror r9, 0x3d
and ecx, 0xf
mov rdi, rax
mov r8, qword [rbx + rcx*8]
lea rbx, [rbx + rcx*8]
mov rcx, rdx
shr rdx, 6
ror rcx, 0x13
xor r9, rcx
mov rcx, r8
xor r9, rdx
ror rcx, 1
mov rdx, r8
shr r8, 7
ror rdx, 8
xor rdx, rcx
mov rcx, qword [rsp + 8]
xor rdx, r8
add ecx, 0xfffffffc
and ecx, 0xf
add r9, rdx
add r9, qword [rbp + rcx*8 - 0x60]
add qword [rsi], r9
mov r9, qword [rsp + 0x30]
mov r8, r9
mov rcx, r9
ror rcx, 0x12
mov rdx, r9
ror r8, 0x29
not rdx
and rdx, qword [rsp + 0x20]
xor r8, rcx
mov rcx, r9
ror rcx, 0xe
xor r8, rcx
mov rcx, qword [rsp + 0x28]
and rcx, r9
xor rdx, rcx
mov rcx, qword [rsp + 0x18]
add r8, rdx
mov rdx, r14
ror rdx, 0x27
add r8, qword [rcx + 0x10]
mov rcx, r14
add r8, qword [rsi]
ror rcx, 0x22
add r8, r11
add qword [rsp], r8
xor rdx, rcx
mov rcx, r14
ror rcx, 0x1c
xor rdx, rcx
xor rdi, r14
and rdi, qword [rsp + 0x10]
lea r11, [rbp - 0x60]
mov rcx, rax
and rcx, r14
xor rdi, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [r10]
add rdi, rcx
mov rcx, qword [rsp + 8]
lea r10, [rbp - 0x60]
add ecx, 5
mov r9, rdx
and ecx, 0xf
ror r9, 0x3d
mov r8, qword [r11 + rcx*8]
lea r11, [r11 + rcx*8]
mov rcx, rdx
shr rdx, 6
ror rcx, 0x13
xor r9, rcx
mov rcx, r8
ror rcx, 1
xor r9, rdx
mov rdx, r8
shr r8, 7
ror rdx, 8
xor rdx, rcx
xor rdx, r8
add r9, rdx
add r9, qword [r12]
mov r12, r14
add qword [rbx], r9
xor r12, rdi
mov r9, qword [rsp]
and r12, rax
mov r8, r9
mov rcx, r9
ror rcx, 0x12
mov rdx, r9
ror r8, 0x29
not rdx
and rdx, qword [rsp + 0x28]
xor r8, rcx
mov rcx, r9
ror rcx, 0xe
xor r8, rcx
mov rcx, r9
and rcx, qword [rsp + 0x30]
xor rdx, rcx
mov rcx, qword [rsp + 0x18]
add r8, rdx
mov rdx, rdi
ror rdx, 0x27
add r8, qword [rcx + 0x18]
mov rcx, rdi
add r8, qword [rbx]
add r8, qword [rsp + 0x20]
add qword [rsp + 0x10], r8
ror rcx, 0x22
xor rdx, rcx
mov rcx, rdi
ror rcx, 0x1c
xor rdx, rcx
mov rcx, r14
and rcx, rdi
xor r12, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rsi]
add r12, rcx
mov r9, rdx
mov rcx, qword [rsp + 8]
add ecx, 6
ror r9, 0x3d
and ecx, 0xf
mov qword [rsp + 0x20], r12
mov r8, qword [r10 + rcx*8]
lea r10, [r10 + rcx*8]
mov rcx, rdx
ror rcx, 0x13
xor r9, rcx
shr rdx, 6
xor r9, rdx
mov rcx, r8
ror rcx, 1
mov rdx, r8
ror rdx, 8
xor rdx, rcx
shr r8, 7
xor rdx, r8
add r9, rdx
add r9, qword [r15]
add qword [r11], r9
mov r15, qword [rsp + 0x10]
mov r8, r15
mov rcx, r15
ror rcx, 0x12
mov rdx, r15
not rdx
ror r8, 0x29
and rdx, qword [rsp + 0x30]
xor r8, rcx
mov rcx, r15
ror rcx, 0xe
xor r8, rcx
mov rcx, qword [rsp]
and rcx, r15
xor rdx, rcx
mov rcx, qword [rsp + 0x18]
add r8, rdx
mov rdx, r12
ror rdx, 0x27
add r8, qword [rcx + 0x20]
mov rcx, r12
add r8, qword [r11]
mov r11, rdi
add r8, qword [rsp + 0x28]
xor r11, r12
ror rcx, 0x22
add rax, r8
xor rdx, rcx
and r11, r14
mov rcx, r12
ror rcx, 0x1c
xor rdx, rcx
mov rcx, rdi
and rcx, r12
xor r11, rcx
lea rcx, [r8 + rdx]
mov rdx, qword [rbx]
add r11, rcx
mov r9, rdx
mov rcx, qword [rsp + 8]
add ecx, 7
ror r9, 0x3d
and ecx, 0xf
mov qword [rsp + 0x28], r11
mov r8, qword [rbp + rcx*8 - 0x60]
mov rcx, rdx
ror rcx, 0x13
xor r9, rcx
shr rdx, 6
xor r9, rdx
mov rcx, r8
mov rdx, r8
ror rcx, 1
ror rdx, 8
xor rdx, rcx
shr r8, 7
xor rdx, r8
mov rcx, rax
ror rcx, 0x12
add r9, rdx
add r9, qword [r13]
mov r8, rax
add qword [r10], r9
mov rdx, rax
ror r8, 0x29
not rdx
xor r8, rcx
mov rcx, rax
ror rcx, 0xe
xor r8, rcx
mov r9, qword [rsp]
mov rcx, r15
and rcx, rax
and rdx, r9
xor rdx, rcx
mov r15, r12
mov rcx, qword [rsp + 0x18]
add r8, rdx
xor r15, r11
mov rdx, r11
ror rdx, 0x27
and r15, rdi
add r8, qword [rcx + 0x28]
mov rcx, r11
add r8, qword [r10]
add r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x18]
add r14, r8
ror rcx, 0x22
add r10, 0x40
xor rdx, rcx
mov qword [rsp + 0x40], r14
mov rcx, r11
mov qword [rsp + 0x18], r10
ror rcx, 0x1c
xor rdx, rcx
mov rcx, r12
and rcx, r11
xor r15, rcx
lea rcx, [r8 + rdx]
mov r8, qword [rsp + 8]
add r8d, 8
add r15, rcx
mov qword [rsp + 0x30], r15
mov qword [rsp + 8], r8
lea ecx, [r8 - 1]
cmp ecx, 0x50
jl 0x1800e8661
mov rcx, qword [rbp - 0x70]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rbx, r15
mov r15, qword [rsp + 0x70]
add rsi, r11
mov r10, qword [rsp + 0x60]
add r15, r14
mov r14, qword [rsp + 0x78]
add r10, r12
mov r12, qword [rsp + 0x68]
add r14, rax
mov r13, qword [rbp - 0x80]
add r12, rdi
add r13, qword [rsp + 0x10]
mov r11, qword [rbp - 0x78]
mov rax, qword [rbp - 0x68]
add r11, r9
mov qword [rcx + 0x28], r14
movabs r9, 0x428a2f98d728ae22
mov qword [rcx], rbx
mov qword [rcx + 8], rsi
mov qword [rcx + 0x10], r10
mov qword [rcx + 0x18], r12
mov qword [rcx + 0x20], r15
mov qword [rcx + 0x30], r13
mov qword [rcx + 0x38], r11
mov rcx, qword [rsp + 0x38]
sub rcx, 0xffffffffffffff80
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x78], r11
mov qword [rsp + 0x38], rcx
test rax, rax
jne 0x1800e7891
mov r15, qword [rsp + 0x130]
mov r14, qword [rsp + 0x138]
mov r13, qword [rsp + 0x140]
mov r12, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x170]
mov rbx, qword [rsp + 0x168]
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.1800e95d0
add rsp, 0x150
pop rbp
ret