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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x511404
mov eax, dword fs:[0]
push eax
sub esp, 0x2a4
mov eax, dword [0x56e6c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x218]
push 0x104
push eax
mov dword [ebp - 0x2b0], edi
push 0
mov dword [ebp - 0x2a8], edi
mov dword [ebp - 0x2ac], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push str...product
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
push 0
push 3
push 0
push 1
push SysReAllocString
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x29c], eax
cmp eax, 0xffffffff
jne 0x40ac54
push 0x526668
mov ecx, edi
call fcn.004081a0
jmp 0x40aef1
lea eax, [ebp - 0x29c]
mov dword [ebp - fcn.0040c2e0], vtable.std::_Func_impl_no_alloc_class__lambda_dd62e7f1d1a2fb2a68172da2c91e45da___void___.0
mov dword [ebp - 0x26c], eax
lea eax, [ebp - 0x270]
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x298]
mov dword [ebp - 4], 1
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x274], 0
push eax
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 2
call fcn.0040c2e0
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x274], eax
test ecx, ecx
je 0x40acd1
mov edx, dword [ecx]
lea eax, [ebp - 0x270]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [ebp - 0x24c], 0
push 0
push dword [ebp - 0x29c]
mov dword [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
cmp esi, 0xf
ja 0x40ad2d
push esi
lea eax, [ebp - 0x230]
mov dword [ebp - 0x220], esi
push 0
push eax
call fcn.0049d980
mov byte [ebp + esi - 0x230], 0
mov ecx, dword [ebp - 0x230]
jmp 0x40ad97
cmp esi, 0x7fffffff
ja 0x40af0e
mov edi, esi
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x40ad4d
mov edi, SysReAllocString
jmp 0x40ad57
mov eax, 0x16
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x230]
call fcn.0040c460
push esi
push 0
push eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x220], esi
mov dword [ebp - 0x21c], edi
call fcn.0049d980
mov ecx, dword [ebp - 0x2a4]
mov edi, dword [ebp - 0x2a8]
mov byte [ecx + esi], 0
mov dword [ebp - 0x230], ecx
add esp, 0xc
cmp dword [ebp - 0x21c], 0x10
lea eax, [ebp - 0x230]
push 0
cmovae eax, ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2a0]
mov dword [ebp - 0x2a0], 0
push ecx
push esi
push eax
push dword [ebp - 0x29c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40ae02
cmp dword [ebp - 0x2a0], esi
je 0x40ae02
push 0x526668
mov ecx, edi
call fcn.004081a0
lea ecx, [ebp - 0x230]
call fcn.00408370
lea ecx, [ebp - 0x298]
call fcn.0040a6b0
jmp 0x40aef1
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
push str.446CBED6_34B7_43B4_AEF6_6025BBBE1B1B
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 5
call fcn.004081a0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00462350
add esp, 0xc
lea ecx, [ebp - 0x260]
call fcn.00408370
movups xmm0, xmmword [ebp - 0x248]
mov dword [edi + 0x10], 0
lea ecx, [ebp - 0x248]
mov dword [edi + 0x14], 0
movups xmmword [edi], xmm0
mov byte [ebp - 0x248], 0
movq xmm0, qword [ebp - 0x238]
movq qword [edi + 0x10], xmm0
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov dword [ebp - 0x2ac], 1
call fcn.00408370
lea ecx, [ebp - 0x230]
call fcn.00408370
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 4], 7
test ecx, ecx
je 0x40af13
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x274]
test ecx, ecx
je 0x40aef1
mov edx, dword [ecx]
lea eax, [ebp - 0x298]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00483518
mov esp, ebp
pop ebp
ret
call fcn.0040a390
call fcn.0046095c
int3