Function at 0x40f6a0
Capabilities:
Get file size
Read file on windows

Disassembly:
mov rax, rsp
sub rsp, 0x198
mov qword [rsp + 0xc0], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax - 8], rdi
mov qword [rax - 0x10], r12
mov qword [rax - 0x18], r13
mov qword [rax - 0x20], r14
mov rax, qword [0x0045f6c0]
xor rax, rsp
mov qword [rsp + 0x168], rax
xor r12d, r12d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r12 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x40f733
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.Create_Inf_file_failed__d____n
call fcn.00404a90
xor eax, eax
jmp 0x40ffac
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp eax, 0xffffffff
jne 0x40f769
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.GetFileSize_failed__d____n
call fcn.00404a90
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x40ffac
lea eax, [rsi + 1]
mov ebp, eax
mov ecx, eax
call fcn.00418744
mov rbx, rax
test rax, rax
jne 0x40f78d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x40ffac
mov r8, rbp
xor edx, edx
mov rcx, rax
call fcn.004255a0
mov dword [rsp + 0x40], r12d
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x40]
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40f7e8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.ReadFile_failed__d___
call fcn.00404a90
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbx
call fcn.0041873c
xor eax, eax
jmp 0x40ffac
mov byte [rsi + rbx], r12b
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, 0xf
mov qword [rsp + 0xe8], rdx
mov r8, r12
mov qword [rsp + 0xe0], r12
mov byte [rsp + 0xd0], r8b
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
cmp rcx, 0xfffffffffffffffe
jbe 0x40f848
call fcn.0043e3e0
mov rdx, qword [rsp + 0xe8]
mov r8, qword [rsp + 0xe0]
cmp rdx, rdi
jae 0x40f867
mov rdx, rdi
lea rcx, [rsp + 0xc8]
call fcn.00402120
mov rdx, qword [rsp + 0xe8]
jmp 0x40f88e
test rdi, rdi
jne 0x40f88e
mov qword [rsp + 0xe0], r12
lea rax, [rsp + 0xd0]
cmp rdx, 0x10
cmovae rax, qword [rsp + 0xd0]
mov byte [rax], r12b
jmp 0x40f8d9
test rdi, rdi
je 0x40f8d9
lea rcx, [rsp + 0xd0]
cmp rdx, 0x10
cmovae rcx, qword [rsp + 0xd0]
mov r9, rdi
mov r8, rbx
call fcn.00426220
mov qword [rsp + 0xe0], rdi
lea rax, [rsp + 0xd0]
cmp qword [rsp + 0xe8], 0x10
cmovae rax, qword [rsp + 0xd0]
mov byte [rax + rdi], r12b
mov rcx, rbx
call fcn.0041873c
mov qword [rsp + 0x110], 0xf
mov qword [rsp + 0x108], r12
mov byte [rsp + 0xf8], 0
mov qword [rsp + 0x138], 0xf
mov qword [rsp + 0x130], r12
mov byte [rsp + 0x120], 0
mov qword [rsp + 0x160], 0xf
mov qword [rsp + 0x158], r12
mov byte [rsp + 0x148], 0
lea rdi, [rsp + 0xd0]
mov rdx, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xe8]
cmp rax, 0x10
cmovae rdi, rdx
lea r8, [rsp + 0xd0]
cmp rax, 0x10
cmovae r8, rdx
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
not rcx
mov rdx, rcx
mov rcx, r8
call fcn.00425340
lea r13, [0x004adbb8]
movabs rbp, 0x6666666666666667
lea r14, [0x004adbd8]
nop
nop
nop
mov rsi, qword [rsp + 0xe0]
test rsi, rsi
je 0x40fef3
cmp rsi, 5
jb 0x40fef3
add rsi, 0xfffffffffffffffc
lea rbx, [rsp + 0xd0]
cmp qword [rsp + 0xe8], 0x10
cmovae rbx, qword [rsp + 0xd0]
mov r8, rsi
mov edx, 0x26
mov rcx, rbx
call fcn.00426300
mov rdi, rax
test rax, rax
je 0x40fef3
nop
nop
nop
lea rcx, str.pid_
mov edx, dword [rdi]
cmp edx, dword [rcx]
jne 0x40fa1a
mov dl, byte [rdi + 4]
cmp dl, byte [rcx + 4]
jne 0x40fa1a
mov eax, r12d
jmp 0x40fa1f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40fa4d
sub rbx, rdi
lea rsi, [rsi + rbx - 1]
lea rbx, [rdi + 1]
mov r8, rsi
mov edx, 0x26
mov rcx, rbx
call fcn.00426300
mov rdi, rax
test rax, rax
je 0x40fef3
jmp 0x40fa00
lea rax, [rsp + 0xd0]
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xe8]
cmp rdx, 0x10
cmovae rax, rcx
sub rdi, rax
cmp rdi, 0xffffffffffffffff
je 0x40fef3
mov rsi, qword [rsp + 0xe0]
test rsi, rsi
je 0x40fb29
cmp rsi, 5
jb 0x40fb29
add rsi, 0xfffffffffffffffc
lea rdi, [rsp + 0xd0]
cmp rdx, 0x10
cmovae rdi, rcx
mov r8, rsi
mov edx, 0x26
mov rcx, rdi
call fcn.00426300
mov rbx, rax
test rax, rax
je 0x40fb29
lea rcx, str.pid_
mov edx, dword [rbx]
cmp edx, dword [rcx]
jne 0x40fadb
mov dl, byte [rbx + 4]
cmp dl, byte [rcx + 4]
jne 0x40fadb
mov eax, r12d
jmp 0x40fae0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40fb0a
sub rdi, rbx
lea rsi, [rsi + rdi - 1]
lea rdi, [rbx + 1]
mov r8, rsi
mov edx, 0x26
mov rcx, rdi
call fcn.00426300
mov rbx, rax
test rax, rax
jne 0x40fac1
jmp 0x40fb29
lea rax, [rsp + 0xd0]
cmp qword [rsp + 0xe8], 0x10
cmovae rax, qword [rsp + 0xd0]
sub rbx, rax
jmp 0x40fb30
mov rbx, 0xffffffffffffffff
lea r8, [rbx - 4]
mov r9d, 4
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xc8]
call fcn.00404020
nop
mov r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x118]
call fcn.00403070
nop
cmp qword [rsp + 0x68], 0x10
jb 0x40fb7a
mov rcx, qword [rsp + 0x50]
call fcn.0041873c
lea r8, [rbx + 5]
mov r9d, 4
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xc8]
call fcn.00404020
nop
mov r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xf0]
call fcn.00403070
nop
cmp qword [rsp + 0x68], 0x10
jb 0x40fbc4
mov rcx, qword [rsp + 0x50]
call fcn.0041873c
lea rdx, [rsp + 0x120]
cmp qword [rsp + 0x138], 0x10
cmovae rdx, qword [rsp + 0x120]
lea rcx, str.12d1
call fcn.00424e10
test rax, rax
je 0x40fd17
lea rcx, [rsp + 0xf8]
cmp qword [rsp + 0x110], 0x10
cmovae rcx, qword [rsp + 0xf8]
mov dl, 1
call fcn.00402560
test eax, eax
jne 0x40fe7a
mov rdi, qword [0x004adbc0]
mov rsi, rdi
mov r8, qword [0x004adbc8]
cmp rdi, r8
jbe 0x40fc45
call fcn.00426650
mov r8, qword [0x004adbc8]
mov rdi, qword [0x004adbc0]
mov qword [rsp + 0x80], r13
mov qword [rsp + 0x88], rsi
test rdi, rdi
je 0x40fc9c
mov rcx, r8
sub rcx, rdi
mov rax, rbp
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x40fc9c
cmp rdi, r8
jbe 0x40fc80
call fcn.00426650
sub rsi, rdi
mov rax, rbp
imul rsi
mov rdi, rdx
sar rdi, 4
mov rax, rdi
shr rax, 0x3f
add rdi, rax
jmp 0x40fc9f
mov rdi, r12
movaps xmm0, xmmword [rsp + 0x80]
movdqa xmmword [rsp + 0xa0], xmm0
lea r9, [rsp + 0xf0]
mov r8d, 1
lea rdx, [rsp + 0xa0]
mov rcx, r13
call fcn.0040f0a0
mov r11, qword [0x004adbc0]
mov rsi, r11
mov rcx, qword [0x004adbc8]
cmp r11, rcx
jbe 0x40fcf7
call fcn.00426650
mov rcx, qword [0x004adbc8]
mov r11, qword [0x004adbc0]
lea rax, [rdi + rdi*4]
lea rdx, [rsi + rax*8]
cmp rdx, rcx
ja 0x40fd0d
cmp rdx, r11
jae 0x40fe7a
call fcn.00426650
jmp 0x40fe7a
lea r8, [rsp + 0xf0]
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x48]
call fcn.00404420
nop
mov r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x140]
call fcn.00403070
nop
cmp qword [rsp + 0x68], 0x10
jb 0x40fd5f
mov rcx, qword [rsp + 0x50]
call fcn.0041873c
lea rcx, [rsp + 0x148]
cmp qword [rsp + 0x160], 0x10
cmovae rcx, qword [rsp + 0x148]
xor edx, edx
call fcn.00402560
test eax, eax
jne 0x40fe7a
mov rdi, qword [0x004adbe0]
mov rsi, rdi
mov r8, qword [0x004adbe8]
cmp rdi, r8
jbe 0x40fdb1
call fcn.00426650
mov r8, qword [0x004adbe8]
mov rdi, qword [0x004adbe0]
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x98], rsi
test rdi, rdi
je 0x40fe08
mov rcx, r8
sub rcx, rdi
mov rax, rbp
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x40fe08
cmp rdi, r8
jbe 0x40fdec
call fcn.00426650
sub rsi, rdi
mov rax, rbp
imul rsi
mov rdi, rdx
sar rdi, 4
mov rax, rdi
shr rax, 0x3f
add rdi, rax
jmp 0x40fe0b
mov rdi, r12
movaps xmm0, xmmword [rsp + 0x90]
movdqa xmmword [rsp + 0xb0], xmm0
lea r9, [rsp + 0x140]
mov r8d, 1
lea rdx, [rsp + 0xb0]
mov rcx, r14
call fcn.0040f0a0
mov r11, qword [0x004adbe0]
mov rsi, r11
mov rcx, qword [0x004adbe8]
cmp r11, rcx
jbe 0x40fe63
call fcn.00426650
mov rcx, qword [0x004adbe8]
mov r11, qword [0x004adbe0]
lea rax, [rdi + rdi*4]
lea rdx, [rsi + rax*8]
cmp rdx, rcx
ja 0x40fe75
cmp rdx, r11
jae 0x40fe7a
call fcn.00426650
lea rdi, [rsp + 0xd0]
cmp qword [rsp + 0xe8], 0x10
cmovae rdi, qword [rsp + 0xd0]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
not rcx
lea r8, [rbx + 9]
lea r9, [rcx - 0xa]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xc8]
call fcn.00404020
nop
mov r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xc8]
call fcn.00403070
nop
cmp qword [rsp + 0x68], 0x10
jb 0x40f9a0
mov rcx, qword [rsp + 0x50]
call fcn.0041873c
jmp 0x40f9a0
cmp qword [rsp + 0x160], 0x10
jb 0x40ff0b
mov rcx, qword [rsp + 0x148]
call fcn.0041873c
mov qword [rsp + 0x160], 0xf
mov qword [rsp + 0x158], r12
mov byte [rsp + 0x148], 0
cmp qword [rsp + 0x138], 0x10
jb 0x40ff3f
mov rcx, qword [rsp + 0x120]
call fcn.0041873c
mov qword [rsp + 0x138], 0xf
mov qword [rsp + 0x130], r12
mov byte [rsp + 0x120], 0
cmp qword [rsp + 0x110], 0x10
jb 0x40ff73
mov rcx, qword [rsp + 0xf8]
call fcn.0041873c
mov qword [rsp + 0x110], 0xf
mov qword [rsp + 0x108], r12
mov byte [rsp + 0xf8], 0
cmp qword [rsp + 0xe8], 0x10
jb 0x40ffa7
mov rcx, qword [rsp + 0xd0]
call fcn.0041873c
mov eax, 1
mov rcx, qword [rsp + 0x168]
xor rcx, rsp
call fcn.00425570
mov rbx, qword [rsp + 0x1a8]
mov rbp, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0x1b8]
mov rdi, qword [rsp + 0x190]
mov r12, qword [rsp + 0x188]
mov r13, qword [rsp + 0x180]
mov r14, qword [rsp + 0x178]
add rsp, 0x198
ret