Function at 0x18001ac00
Capabilities:
Hash data using sha256

Disassembly:
push rbp
push rsi
lea rbp, [rsp - 0x18]
sub rsp, 0x118
mov rax, qword [0x1800ac030]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov eax, dword [rcx]
mov rsi, rcx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
cmp eax, 0xf4240
jne 0x18001ac3c
mov eax, 2
jmp 0x18001afdb
mov qword [rsp + 0x148], rbx
lea rbx, [rcx + 8]
mov byte [rsp + 0x24], 3
mov r9, rbx
mov qword [rsp + 0x110], rdi
mov dword [rsp + 0x20], eax
call fcn.18001a910
xor edi, edi
mov r11d, eax
test eax, eax
jne 0x18001afae
xor eax, eax
mov ecx, 1
mov edx, edi
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x40], 0x6a09e667
mov dword [rsp + 0x44], 0xbb67ae85
mov dword [rsp + 0x48], 0x3c6ef372
mov dword [rsp + 0x4c], 0xa54ff53a
mov dword [rsp + 0x50], 0x510e527f
mov dword [rsp + 0x54], 0x9b05688c
mov dword [rsp + 0x58], 0x1f83d9ab
mov dword [rsp + 0x5c], 0x5be0cd19
mov qword [rbp - 0x50], rdi
mov dword [rbp - 0x58], edx
mov dword [rbp - 0x5c], ecx
mov byte [rsp + 0x60], 3
mov r8d, ecx
mov dword [rbp - 0x60], ecx
test rbx, rbx
je 0x18001afa6
mov eax, ecx
add ecx, 0x37
mov r11d, edi
mov dword [rbp - 0x5c], ecx
cmp ecx, eax
jae 0x18001acfd
inc edx
mov dword [rbp - 0x58], edx
mov rax, qword [rbx]
add r8d, 0x37
mov qword [rsp + 0x61], rax
mov rax, qword [rbx + 8]
mov dword [rbp - 0x60], r8d
mov qword [rsp + 0x69], rax
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x71], rax
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x79], rax
mov rax, qword [rbx + 0x20]
mov qword [rbp - 0x7f], rax
mov rax, qword [rbx + 0x28]
mov qword [rbp - 0x77], rax
mov eax, dword [rbx + 0x30]
mov dword [rbp - 0x6f], eax
movzx eax, word [rbx + 0x34]
mov word [rbp - 0x6b], ax
movzx eax, byte [rbx + 0x36]
mov byte [rbp - 0x69], al
cmp r8d, 0x40
jne 0x18001ada1
lea rdx, [rsp + 0x60]
mov r8d, reloc.WS2_32.dll_recv
nop
mov eax, dword [rdx]
add rdx, 4
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or ecx, eax
dec r8
mov dword [rdx - 4], ecx
jne 0x18001ad60
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.18001e090
mov r11d, eax
mov eax, dword [rbp - 0x60]
test r11d, r11d
cmove eax, edi
mov dword [rbp - 0x60], eax
test r11d, r11d
jne 0x18001afac
lea rdx, [rbp - 0x40]
lea rcx, [rsp + 0x40]
call fcn.18001eac0
mov r11d, eax
test eax, eax
jne 0x18001afac
mov qword [rsp + 0x108], r12
mov qword [rsp + 0x100], r13
mov qword [rsp + 0xf8], r14
mov qword [rsp + 0xf0], r15
lea rax, [rbp - 0x40]
lea r13, [rbp - 0x40]
dec rax
lea r15, [rbp - 0x40]
lea r14, [rbp - 0x40]
mov r9, rbx
mov r10, rbx
mov r11, rbx
mov r12, rbx
sub r15, rax
sub r13, rax
sub r14, rax
sub r9, rax
sub r10, rax
sub r11, rax
movzx edx, di
lea r8, [rax + 0x1f]
sub r12, rax
mov esi, 8
nop word [rax + rax]
movzx eax, byte [r9 + r8 + 0x17]
movzx ecx, byte [r13 + r8]
sub r8, 4
add cx, ax
movzx eax, byte [r10 + r8 + 0x1a]
add dx, cx
movzx ecx, byte [r14 + r8 + 2]
mov byte [r9 + r8 + 0x1b], dl
shr dx, 8
add dx, ax
movzx eax, byte [r8 + 4]
add dx, ax
movzx eax, byte [r11 + r8 + 0x19]
mov byte [r10 + r8 + 0x1a], dl
shr dx, 8
add cx, dx
movzx edx, byte [r15 + r8 + 1]
add cx, ax
movzx eax, byte [r8 + r12 + 0x18]
mov byte [r11 + r8 + 0x19], cl
shr cx, 8
add dx, cx
add dx, ax
mov byte [r8 + r12 + 0x18], dl
shr dx, 8
dec rsi
jne 0x18001ae30
mov r15, qword [rsp + 0xf0]
mov r14, qword [rsp + 0xf8]
mov r13, qword [rsp + 0x100]
mov r12, qword [rsp + 0x108]
lea ecx, [rsi + 0x16]
mov rsi, qword [rsp + 0x30]
test dx, dx
je 0x18001aeed
test rcx, rcx
js 0x18001aeed
movzx eax, byte [rbx + rcx]
dec rcx
add dx, ax
mov byte [rbx + rcx + 1], dl
shr dx, 8
test dx, dx
jne 0x18001aed1
mov edx, gethostname
lea r8, [rsi + 0x3f]
mov rcx, rbx
mov r9d, edx
call fcn.18001ab60
mov eax, dword [rsp + 0x28]
movzx ecx, byte [rbx + 0x36]
mov r11d, eax
ror r11d, 8
and r11d, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or r11d, eax
mov dword [rsp + 0x20], r11d
movzx eax, byte [rsp + 0x23]
add cx, ax
movzx eax, byte [rsp + 0x22]
mov byte [rbx + 0x36], cl
shr cx, 8
add cx, ax
movzx eax, byte [rbx + 0x35]
add cx, ax
movzx eax, byte [rsp + 0x21]
mov byte [rbx + 0x35], cl
shr cx, 8
add cx, ax
movzx eax, byte [rbx + 0x34]
add cx, ax
movzx eax, r11b
mov byte [rbx + 0x34], cl
shr cx, 8
add cx, ax
movzx eax, byte [rbx + 0x33]
add cx, ax
mov byte [rbx + 0x33], cl
shr cx, 8
test cx, cx
je 0x18001afa1
lea rdx, [rbx + 0x32]
neg rbx
lea rax, [rbx + rdx]
test rax, rax
js 0x18001afa1
movzx eax, byte [rdx]
dec rdx
add cx, ax
mov byte [rdx + 1], cl
shr cx, 8
test cx, cx
jne 0x18001af83
mov r11d, edi
jmp 0x18001afac
mov r11d, 0xffffff53
inc dword [rsi]
mov rbx, qword [rsp + 0x148]
mov ecx, 0x20
lea rdx, [rbp - 0x40]
nop
mov byte [rdx], dil
inc rdx
dec ecx
jne 0x18001afc0
test r11d, r11d
setne dil
mov eax, edi
mov rdi, qword [rsp + 0x110]
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.1800334b0
add rsp, 0x118
pop rsi
pop rbp
ret