Function at 0x180038290
Capabilities:
Create new key via cryptacquirecontext
Get file size
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x50]
sub rsp, 0x150
mov rax, qword [0x18011b040]
xor rax, rsp
mov qword [rbp + 0x48], rax
xor ebx, ebx
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], rbx
mov qword [rbp - 8], rbx
lea r8d, [rbx + 0x35]
lea rdx, str.http:__127.0.0.1:3219_carbon_cranium_verify_hash_text
lea rcx, [rbp - 0x20]
call fcn.18001d5d0
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
xor r8d, r8d
lea rdx, [0x1800f1ad6]
lea rcx, [rsp + 0x40]
call fcn.18001d5d0
nop
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x60]
call fcn.180037db0
mov rdi, rax
cmp qword [rax + 0x18], 0xf
jbe 0x18003832b
mov rdi, qword [rax]
lea rcx, [rsp + 0x60]
call fcn.18001faf0
nop
lea rcx, [rsp + 0x40]
call fcn.18001faf0
lea rcx, [rbp - 0x78]
call fcn.180038010
nop
mov r8d, 0xe
lea rdx, str.CraniumV1.dll
mov rcx, rax
call fcn.180031530
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x30], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 7
mov word [rax], bx
lea rcx, [rbp - 0x78]
call fcn.18001fa60
lea rcx, [rbp - 0x40]
cmp qword [rbp - 0x28], 7
cmova rcx, qword [rbp - 0x40]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x18003842e
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
lea r8d, [rax + 0x15]
lea rdx, str.Invalid_Handle_Value
lea rcx, [rsp + 0x40]
call fcn.18001d5d0
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], socket
mov byte [rsp + 0x60], 0
lea rcx, [rsp + 0x60]
call fcn.18001faf0
lea rcx, [rsp + 0x40]
call fcn.18001faf0
jmp 0x18003862a
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r15d, eax
cmp eax, 0xffffffff
je 0x180038621
mov ecx, r15d
call fcn.1800c6f74
mov r14, rax
mov dword [rbp - 0x54], ebx
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 0x54]
mov r8d, r15d
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180038619
cmp dword [rbp - 0x54], r15d
jne 0x180038619
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 0x18
lea r8, str.Microsoft_Enhanced_RSA_and_AES_Cryptographic_Provider
xor edx, edx
lea rcx, [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x180038619
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8004
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x1800384ea
mov rcx, r14
call fcn.1800c6c80
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x18003862a
xor r9d, r9d
mov r8d, r15d
mov rdx, r14
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
mov rcx, r14
test eax, eax
jne 0x18003852d
call fcn.1800c6c80
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
xor edx, edx
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x18003862a
call fcn.1800c6c80
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [rbp - 0x58], socket
mov dword [rsp + 0x20], ebx
lea r9, [rbp - 0x58]
lea r8, [rbp + 0x30]
mov edx, 2
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov rcx, qword [rbp - 0x50]
test eax, eax
je 0x180038516
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
xor edx, edx
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rax
mov byte [rbp + 0x28], al
cmp dword [rbp - 0x58], eax
jbe 0x1800385ba
mov eax, ebx
movzx r9d, byte [rbp + rax + 0x30]
lea ecx, [rbx + rbx]
lea rax, [rbp]
add rcx, rax
lea r8, str._02x
mov edx, 3
call fcn.18004c640
inc ebx
cmp ebx, dword [rbp - 0x58]
jb 0x180038590
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea r8, [rbp]
lea rdx, str.Actual_hash:__s_n
call fcn.18004c5f0
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
mov r8, rdi
lea rdx, str.Expected_hash:__s_n
call fcn.18004c5f0
lea rax, [rbp]
sub rdi, rax
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + rdi]
sub edx, ecx
jne 0x180038612
inc rax
test ecx, ecx
jne 0x180038600
test edx, edx
sete bl
jmp 0x18003862c
mov rcx, r14
call fcn.1800c6c80
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor bl, bl
lea rcx, [rbp - 0x40]
call fcn.18001fa60
nop
lea rcx, [rbp - 0x20]
call fcn.18001faf0
movzx eax, bl
mov rcx, qword [rbp + 0x48]
xor rcx, rsp
call fcn.1800c68f0
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret