Function at 0x180015c60
Capabilities:
Hash data using sha256

Disassembly:
mov r11, rsp
push rbp
push r13
lea rbp, [r11 - 0x18]
sub rsp, 0x108
mov rax, qword [0x180093030]
xor rax, rsp
mov qword [rbp - 0x30], rax
mov eax, dword [rcx]
mov qword [r11 - 0x38], r15
mov qword [rsp + 0x30], rcx
mov r15, rcx
mov r13d, 3
mov dword [rsp + 0x28], eax
cmp eax, 0xf4240
je 0x180016058
mov qword [r11 - 0x18], rsi
lea rsi, [rcx + 8]
mov byte [rsp + 0x20], r13b
mov r9, rsi
mov dword [rsp + 0x24], eax
call fcn.180015900
mov r13d, eax
test eax, eax
jne 0x180016050
mov qword [rsp + 0x138], rbx
mov qword [rsp + 0xf8], rdi
mov qword [rsp + 0xf0], r12
mov eax, eax
mov qword [rsp + 0xe8], r14
mov dword [rsp + 0x40], 0x6a09e667
lea r14, [rsp + 0x20]
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 dword [rbp - 0x60], eax
mov qword [rbp - 0x5c], r13
mov r12d, 1
nop word [rax + rax]
mov edi, 0x40
lea rcx, [rsp + rax + 0x60]
mov rdx, r14
sub edi, eax
cmp r12d, edi
cmovb edi, r12d
mov r8d, edi
mov ebx, edi
call fcn.18002d8c0
mov eax, dword [rbp - 0x60]
add r14, rbx
add eax, edi
sub r12d, edi
mov dword [rbp - 0x60], eax
cmp eax, 0x40
jne 0x180015dcd
lea rdx, [rsp + 0x60]
lea r8d, [rax - 0x30]
nop dword [rax]
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 0x180015d80
lea rcx, [rsp + 0x40]
call fcn.180019cb0
test eax, eax
jne 0x180016027
mov ecx, dword [rbp - 0x5c]
mov eax, ecx
add ecx, 0x40
mov dword [rbp - 0x5c], ecx
cmp ecx, eax
jae 0x180015dc7
inc dword [rbp - 0x58]
mov eax, r13d
mov dword [rbp - 0x60], eax
test r12d, r12d
jne 0x180015d40
mov r12d, gethostname
mov r14, rsi
nop
mov edi, 0x40
lea rcx, [rsp + rax + 0x60]
mov rdx, r14
sub edi, eax
cmp r12d, edi
cmovb edi, r12d
mov r8d, edi
mov ebx, edi
call fcn.18002d8c0
mov eax, dword [rbp - 0x60]
add r14, rbx
add eax, edi
sub r12d, edi
mov dword [rbp - 0x60], eax
cmp eax, 0x40
jne 0x180015e6d
lea rdx, [rsp + 0x60]
lea r8d, [rax - 0x30]
nop dword [rax]
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 0x180015e20
lea rcx, [rsp + 0x40]
call fcn.180019cb0
test eax, eax
jne 0x180016027
mov ecx, dword [rbp - 0x5c]
mov eax, ecx
add ecx, 0x40
mov dword [rbp - 0x5c], ecx
cmp ecx, eax
jae 0x180015e67
inc dword [rbp - 0x58]
mov eax, r13d
mov dword [rbp - 0x60], eax
test r12d, r12d
jne 0x180015de0
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x40]
call fcn.18001a470
test eax, eax
jne 0x180016027
lea rax, [rbp - 0x50]
lea rdi, [rbp - 0x50]
lea r12, [rbp - 0x50]
dec rax
lea r14, [rbp - 0x50]
mov r9, rsi
mov r10, rsi
mov r11, rsi
mov rbx, rsi
sub rdi, rax
sub r12, rax
sub r14, rax
sub r9, rax
sub r10, rax
sub r11, rax
lea r8, [rax + 0x1f]
movzx edx, r13w
mov r15d, 8
sub rbx, rax
nop
movzx eax, byte [r9 + r8 + 0x17]
movzx ecx, byte [rdi + r8]
sub r8, 4
add cx, ax
movzx eax, byte [r10 + r8 + 0x1a]
add dx, cx
movzx ecx, byte [r12 + 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 [r14 + r8 + 1]
add cx, ax
movzx eax, byte [rbx + r8 + 0x18]
mov byte [r11 + r8 + 0x19], cl
shr cx, 8
add dx, cx
add dx, ax
mov byte [rbx + r8 + 0x18], dl
shr dx, 8
dec r15
jne 0x180015ed0
lea ecx, [r15 + 0x16]
test dx, dx
je 0x180015f6c
nop dword [rax]
test rcx, rcx
js 0x180015f6c
movzx eax, byte [rsi + rcx]
dec rcx
add dx, ax
mov byte [rsi + rcx + 1], dl
shr dx, 8
test dx, dx
jne 0x180015f50
mov r15, qword [rsp + 0x30]
mov edx, gethostname
mov rcx, rsi
lea r8, [r15 + 0x3f]
mov r9d, edx
call fcn.180015bc0
mov eax, dword [rsp + 0x28]
mov r11d, eax
ror r11d, 8
and r11d, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or r11d, eax
movzx eax, byte [rsi + 0x36]
mov dword [rsp + 0x24], r11d
movzx ecx, byte [rsp + 0x27]
add cx, ax
movzx eax, byte [rsp + 0x26]
mov byte [rsi + 0x36], cl
shr cx, 8
add cx, ax
movzx eax, byte [rsi + 0x35]
add cx, ax
movzx eax, byte [rsp + 0x25]
mov byte [rsi + 0x35], cl
shr cx, 8
add cx, ax
movzx eax, byte [rsi + 0x34]
add cx, ax
movzx eax, r11b
mov byte [rsi + 0x34], cl
shr cx, 8
add cx, ax
movzx eax, byte [rsi + 0x33]
add cx, ax
mov byte [rsi + 0x33], cl
shr cx, 8
test cx, cx
je 0x18001602d
lea rdx, [rsi + 0x32]
neg rsi
lea rax, [rsi + rdx]
test rax, rax
js 0x18001602d
movzx eax, byte [rdx]
dec rdx
add cx, ax
mov byte [rdx + 1], cl
shr cx, 8
test cx, cx
jne 0x180016007
jmp 0x18001602d
mov r13d, 2
inc dword [r15]
mov r14, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x100]
mov r15, qword [rsp + 0xe0]
mov eax, reloc.WLDAP32.dll_Ordinal_32
lea rcx, [rbp - 0x50]
nop dword [rax]
mov byte [rcx], 0
inc rcx
dec eax
jne 0x180016070
mov eax, r13d
mov rcx, qword [rbp - 0x30]
xor rcx, rsp
call fcn.18002cf50
add rsp, 0x108
pop r13
pop rbp
ret