Function at 0x180064550
Capabilities:
Check if file exists
Get file size
Hash data with md5
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x1b0], rbx
mov rax, qword [0x180332088]
xor rax, rsp
mov qword [rbp + 0x50], rax
mov rbx, rdx
mov rdi, rcx
mov qword [rsp + 0x50], rdx
xor r14d, r14d
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], r14
mov word [rsp + 0x58], r14w
xor r8d, r8d
lea rdx, [0x1802abc2c]
lea rcx, [rsp + 0x58]
call fcn.18005c660
nop
mov byte [rbp + 0x29], r14b
mov qword [rbp - 0x50], r14
mov dword [rbp - 0x60], 0x67452301
mov dword [rbp - 0x5c], 0xefcdab89
mov dword [rbp - 0x58], 0x98badcfe
mov dword [rbp - 0x54], 0x10325476
cmp qword [rbx + 0x18], 8
jb 0x1800645f3
mov rcx, qword [rbx]
jmp 0x1800645f6
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1800647b6
cmp qword [rbx + 0x18], 8
jb 0x180064610
mov rcx, qword [rbx]
jmp 0x180064613
mov rcx, rbx
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x180064679
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], r14
cmp qword [rdi + 0x18], 8
jb 0x18006465b
mov rax, qword [rdi]
jmp 0x18006465e
mov rax, rdi
mov word [rax], r14w
xor r8d, r8d
lea rdx, [0x1802abc2c]
mov rcx, rdi
call fcn.18005c660
jmp 0x1800647e3
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r15d, eax
lea rcx, [r15 + 1]
call fcn.180203f3c
mov r14, rax
test rax, rax
jne 0x18006470b
xor r12d, r12d
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], r12
cmp qword [rdi + 0x18], 8
jb 0x1800646b3
mov rax, qword [rdi]
jmp 0x1800646b6
mov rax, rdi
mov word [rax], r12w
xor r8d, r8d
lea rdx, [0x1802abc2c]
mov rcx, rdi
call fcn.18005c660
nop
mov r8, qword [rsp + 0x70]
cmp r8, 8
jb 0x1800646ea
inc r8
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x58]
call fcn.18005cac0
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], r12
mov word [rsp + 0x58], r12w
mov rcx, rbx
call fcn.18005c830
jmp 0x180064846
lea r8, [r15 + 1]
xor edx, edx
mov rcx, r14
call fcn.180233580
xor r12d, r12d
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x44]
mov r8d, r15d
mov rdx, r14
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r8, r15
mov rdx, r14
lea rcx, [rbp - 0x60]
call fcn.180058b10
mov rcx, r14
call fcn.180085310
lea rdx, [rbp + 0x30]
lea rcx, [rbp - 0x60]
call fcn.180059800
nop
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.18006cf70
nop
lea rcx, [rbp + 0x30]
call fcn.18005ba50
cmp qword [rbp - 0x78], r12
jbe 0x180064797
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x58]
call fcn.18005cbe0
nop
mov r8, qword [rbp - 0x70]
cmp r8, 8
jb 0x1800647b3
inc r8
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x78]
call fcn.18005cac0
xor r14d, r14d
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], r14
cmp qword [rdi + 0x18], 8
jb 0x1800647ce
mov rax, qword [rdi]
jmp 0x1800647d1
mov rax, rdi
mov word [rax], r14w
lea rdx, [rsp + 0x58]
mov rcx, rdi
call fcn.18005c590
nop
mov r8, qword [rsp + 0x70]
cmp r8, 8
jb 0x180064800
inc r8
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x58]
call fcn.18005cac0
mov word [rsp + 0x58], r14w
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], 7
mov r8, qword [rbx + 0x18]
cmp r8, 8
jb 0x18006482c
inc r8
mov rdx, qword [rbx]
mov rcx, rbx
call fcn.18005cac0
mov qword [rbx + 0x18], 7
cmp qword [rbx + 0x18], 8
mov qword [rbx + 0x10], r14
jb 0x180064842
mov rbx, qword [rbx]
mov word [rbx], r14w
mov rax, rdi
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.1802037a0
mov rbx, qword [rsp + 0x1b0]
add rsp, 0x160
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret