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

Disassembly:
mov rax, rsp
sub rsp, 0x148
mov qword [rsp + 0x78], 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 rax, qword [0x0045f6c0]
xor rax, rsp
mov qword [rsp + 0x120], 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 0x41018c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.Create_Inf_file_failed__d___
call fcn.00404a90
xor eax, eax
jmp 0x410784
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp eax, 0xffffffff
jne 0x4101c2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.GetFileSize_failed__d___
call fcn.00404a90
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x410784
lea eax, [rsi + 1]
mov ebp, eax
mov ecx, eax
call fcn.00418744
mov rbx, rax
test rax, rax
jne 0x4101e6
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x410784
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 0x410241
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 0x410784
mov byte [rsi + rbx], r12b
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, 0xf
mov qword [rsp + 0xc8], rdx
mov r8, r12
mov qword [rsp + 0xc0], r12
mov byte [rsp + 0xb0], 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 0x4102a1
call fcn.0043e3e0
mov rdx, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xc0]
cmp rdx, rdi
jae 0x4102c0
mov rdx, rdi
lea rcx, [rsp + 0xa8]
call fcn.00402120
mov rdx, qword [rsp + 0xc8]
jmp 0x4102e7
test rdi, rdi
jne 0x4102e7
mov qword [rsp + 0xc0], r12
lea rax, [rsp + 0xb0]
cmp rdx, 0x10
cmovae rax, qword [rsp + 0xb0]
mov byte [rax], r12b
jmp 0x410332
test rdi, rdi
je 0x410332
lea rcx, [rsp + 0xb0]
cmp rdx, 0x10
cmovae rcx, qword [rsp + 0xb0]
mov r9, rdi
mov r8, rbx
call fcn.00426220
mov qword [rsp + 0xc0], rdi
lea rax, [rsp + 0xb0]
cmp qword [rsp + 0xc8], 0x10
cmovae rax, qword [rsp + 0xb0]
mov byte [rax + rdi], r12b
mov rcx, rbx
call fcn.0041873c
mov qword [rsp + 0xf0], 0xf
mov qword [rsp + 0xe8], r12
mov byte [rsp + 0xd8], 0
lea rdi, [rsp + 0xb0]
mov rdx, qword [rsp + 0xb0]
mov rax, qword [rsp + 0xc8]
cmp rax, 0x10
cmovae rdi, rdx
lea r8, [rsp + 0xb0]
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 rbp, [0x004adb98]
movabs r13, 0x6666666666666667
mov rsi, qword [rsp + 0xc0]
test rsi, rsi
je 0x410720
cmp rsi, 0xd
jb 0x410720
add rsi, 0xfffffffffffffff4
lea rbx, [rsp + 0xb0]
cmp qword [rsp + 0xc8], 0x10
cmovae rbx, qword [rsp + 0xb0]
mov r8, rsi
mov edx, 0x76
mov rcx, rbx
call fcn.00426300
mov rdi, rax
test rax, rax
je 0x410720
nop
nop
nop
lea rcx, str.vid_12d1pid_
mov rdx, qword [rdi]
cmp rdx, qword [rcx]
jne 0x410434
mov edx, dword [rdi + 8]
cmp edx, dword [rcx + 8]
jne 0x410434
mov dl, byte [rdi + 0xc]
cmp dl, byte [rcx + 0xc]
jne 0x410434
mov eax, r12d
jmp 0x410439
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x410467
sub rbx, rdi
lea rsi, [rsi + rbx - 1]
lea rbx, [rdi + 1]
mov r8, rsi
mov edx, 0x76
mov rcx, rbx
call fcn.00426300
mov rdi, rax
test rax, rax
je 0x410720
jmp 0x410410
lea rax, [rsp + 0xb0]
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xc8]
cmp rdx, 0x10
cmovae rax, rcx
sub rdi, rax
cmp rdi, 0xffffffffffffffff
je 0x410730
mov rsi, qword [rsp + 0xc0]
test rsi, rsi
je 0x410552
cmp rsi, 0xd
jb 0x410552
add rsi, 0xfffffffffffffff4
lea rbx, [rsp + 0xb0]
cmp rdx, 0x10
cmovae rbx, rcx
mov r8, rsi
mov edx, 0x76
mov rcx, rbx
call fcn.00426300
mov rdi, rax
test rax, rax
je 0x410552
nop
nop
lea rcx, str.vid_12d1pid_
mov rdx, qword [rdi]
cmp rdx, qword [rcx]
jne 0x410504
mov edx, dword [rdi + 8]
cmp edx, dword [rcx + 8]
jne 0x410504
mov dl, byte [rdi + 0xc]
cmp dl, byte [rcx + 0xc]
jne 0x410504
mov eax, r12d
jmp 0x410509
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x410533
sub rbx, rdi
lea rsi, [rsi + rbx - 1]
lea rbx, [rdi + 1]
mov r8, rsi
mov edx, 0x76
mov rcx, rbx
call fcn.00426300
mov rdi, rax
test rax, rax
jne 0x4104e0
jmp 0x410552
lea rax, [rsp + 0xb0]
cmp qword [rsp + 0xc8], 0x10
cmovae rax, qword [rsp + 0xb0]
sub rdi, rax
jmp 0x410559
mov rdi, 0xffffffffffffffff
mov esi, edi
lea r8, [rsi + 0xd]
mov r9d, 4
lea rdx, [rsp + 0xf8]
lea rcx, [rsp + 0xa8]
call fcn.00404020
nop
lea rcx, [rsp + 0x100]
cmp qword [rsp + 0x118], 0x10
cmovae rcx, qword [rsp + 0x100]
call fcn.00402760
test eax, eax
jne 0x410685
mov rdi, qword [0x004adba0]
mov rbx, rdi
mov r8, qword [0x004adba8]
cmp rdi, r8
jbe 0x4105cb
call fcn.00426650
mov r8, qword [0x004adba8]
mov rdi, qword [0x004adba0]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rbx
test rdi, rdi
je 0x41061c
mov rcx, r8
sub rcx, rdi
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x41061c
cmp rdi, r8
jbe 0x410600
call fcn.00426650
sub rbx, rdi
mov rax, r13
imul rbx
mov rdi, rdx
sar rdi, 4
mov rax, rdi
shr rax, 0x3f
add rdi, rax
jmp 0x41061f
mov rdi, r12
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x60], xmm0
lea r9, [rsp + 0xf8]
mov r8d, 1
lea rdx, [rsp + 0x60]
mov rcx, rbp
call fcn.0040f0a0
mov r11, qword [0x004adba0]
mov rbx, r11
mov rcx, qword [0x004adba8]
cmp r11, rcx
jbe 0x41066e
call fcn.00426650
mov rcx, qword [0x004adba8]
mov r11, qword [0x004adba0]
lea rax, [rdi + rdi*4]
lea rdx, [rbx + rax*8]
cmp rdx, rcx
ja 0x410680
cmp rdx, r11
jae 0x410685
call fcn.00426650
lea rdi, [rsp + 0xb0]
cmp qword [rsp + 0xc8], 0x10
cmovae rdi, qword [rsp + 0xb0]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
not rcx
lea r8, [rsi + 0x11]
lea r9, [rcx - 0x12]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0xa8]
call fcn.00404020
nop
mov r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xa8]
call fcn.00403070
nop
cmp qword [rsp + 0xa0], 0x10
jb 0x4106ff
mov rcx, qword [rsp + 0x88]
call fcn.0041873c
nop
cmp qword [rsp + 0x118], 0x10
jb 0x4103b0
mov rcx, qword [rsp + 0x100]
call fcn.0041873c
jmp 0x4103b0
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb0]
cmp qword [rsp + 0xf0], 0x10
jb 0x410758
mov rcx, qword [rsp + 0xd8]
call fcn.0041873c
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xf0], 0xf
mov qword [rsp + 0xe8], r12
mov byte [rsp + 0xd8], 0
cmp rdx, 0x10
jb 0x41077f
call fcn.0041873c
mov eax, 1
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.00425570
mov rbx, qword [rsp + 0x158]
mov rbp, qword [rsp + 0x160]
mov rsi, qword [rsp + 0x168]
mov rdi, qword [rsp + 0x140]
mov r12, qword [rsp + 0x138]
mov r13, qword [rsp + 0x130]
add rsp, 0x148
ret