Function at 0x18000651d
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rcx, qword [str.KERNEL32.dll]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, dword [0x18003b920]
xor r8d, r8d
xor edx, edx
mov r12, rax
xor ecx, ecx
mov rdi, qword [sym.imp.KERNEL32.dll_HeapCreate]
call rdi
xor edx, edx
mov rsi, qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rcx, rax
mov r8d, ebx
call rsi
mov edx, dword [0x18003b920]
mov rbx, rax
mov rcx, rax
call fcn.1800064e9
mov rdx, qword [str.GetModuleFileNameW]
mov rcx, r12
mov rbp, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rbp
mov r8d, 0x104
mov rdx, rbx
xor ecx, ecx
call rax
mov r9, qword [0x18003b958]
xor eax, eax
mov edx, eax
cmp word [rbx + rdx*2], 0
je 0x1800065ab
inc eax
jmp 0x18000659e
lea ecx, [rax - 1]
cmp word [rbx + rcx*2], 0x5c
je 0x1800065bf
mov word [rbx + rax*2], 0
mov eax, ecx
jmp 0x1800065ab
xor edx, edx
lea r8d, [rax + rdx]
mov ecx, edx
movsx cx, byte [r9 + rcx]
test cl, cl
je 0x1800065da
mov word [rbx + r8*2], cx
inc edx
jmp 0x1800065c1
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0x30], 0
mov r8d, 1
mov dword [rsp + 0x28], 0x80
mov edx, 1
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
mov rbx, rax
je 0x1800067b5
mov rdx, qword [str.GetFileSize]
mov rcx, r12
call rbp
xor edx, edx
mov rcx, rbx
call rax
mov r14d, dword [0x18003b8f8]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov r13d, eax
call rdi
xor edx, edx
mov rcx, rax
mov r8d, r14d
call rsi
mov edx, dword [0x18003b8f8]
mov rdi, rax
mov rcx, rax
call fcn.1800064e9
lea r9, [rsp + 0x50]
mov r8d, r13d
mov rdx, rdi
mov dword [rsp + 0x50], 0
mov rcx, rbx
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1800067b5
mov eax, dword [0x18003b948]
xor edx, edx
mov esi, dword [rsp + 0x50]
add rax, rdi
mov r8d, dword [rax]
mov ecx, dword [rax + 4]
cmp r8d, edx
jbe 0x1800066a8
add dword [rax + rdx*4 + 8], ecx
inc rdx
jmp 0x18000669a
mov ebx, dword [0x18003b954]
mov rcx, r12
add rbx, rax
lea rdx, [rbx + 1]
call rbp
test rax, rax
mov r13, rax
je 0x1800067b5
movsx rax, byte [rbx]
mov rcx, r12
add rbx, rax
lea rdx, [rbx + 1]
call rbp
test rax, rax
mov r12, rax
je 0x1800067b5
movsx rax, byte [rbx]
add rbx, rax
lea rcx, [rbx + 1]
call r13
test rax, rax
je 0x1800067b5
movsx rdx, byte [rbx]
add rdi, rsi
mov dword [rsp + 0x54], 0
mov ebp, dword [0x18003b8fc]
lea r15, [rsp + 0x54]
mov r9, r15
mov r8d, dword [0x18003b8e4]
add rbx, rdx
movsxd rdx, dword [rax + 0x3c]
mov r14d, dword [rbx + 8]
add rbp, rbx
mov esi, dword [rbx + 4]
mov ebx, dword [rax + rdx + 0x2c]
mov rdx, r14
mov dword [rsp + 0x4c], esi
lea rsi, [rbp + r14]
add rbx, rax
mov rcx, rbx
call r12
mov rcx, rbx
mov r8d, r14d
mov rdx, rbp
call fcn.180006501
mov rdx, r14
mov rcx, rbx
mov r9, r15
mov r8d, dword [rsp + 0x54]
call r12
mov r13d, dword [rsp + 0x4c]
xor edx, edx
add rbx, r13
mov rcx, qword [str.cowardice.sql]
lea rax, [rdx + rdx]
add rax, rdi
cmp byte [rcx + rdx], 0
je 0x180006799
mov rax, qword [str.cowardice.sql]
movsx ax, byte [rax + rdx]
mov word [rdi + rdx*2], ax
inc rdx
jmp 0x180006770
mov word [rax], 0
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x58], rsi
mov byte [rsp + 0x68], 1
call rbx
nop
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret