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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5154d4
mov eax, dword fs:[0]
push eax
sub esp, 0x2a4
mov eax, dword [0x5746cc]
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 0x40b894
push 0x52b668
mov ecx, edi
call fcn.00408de0
jmp 0x40bb31
lea eax, [ebp - 0x29c]
mov dword [ebp - fcn.0040cf20], 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.0040cf20
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x274], eax
test ecx, ecx
je 0x40b911
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 0x40b96d
push esi
lea eax, [ebp - 0x230]
mov dword [ebp - 0x220], esi
push 0
push eax
call fcn.004a3360
mov byte [ebp + esi - 0x230], 0
mov ecx, dword [ebp - 0x230]
jmp 0x40b9d7
cmp esi, 0x7fffffff
ja 0x40bb4e
mov edi, esi
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x40b98d
mov edi, SysReAllocString
jmp 0x40b997
mov eax, 0x16
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x230]
call fcn.0040d0a0
push esi
push 0
push eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x220], esi
mov dword [ebp - 0x21c], edi
call fcn.004a3360
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 0x40ba42
cmp dword [ebp - 0x2a0], esi
je 0x40ba42
push 0x52b668
mov ecx, edi
call fcn.00408de0
lea ecx, [ebp - 0x230]
call fcn.00408fb0
lea ecx, [ebp - 0x298]
call fcn.0040b2f0
jmp 0x40bb31
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.00408de0
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.00465ac0
add esp, 0xc
lea ecx, [ebp - 0x260]
call fcn.00408fb0
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.00408fb0
lea ecx, [ebp - 0x230]
call fcn.00408fb0
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 4], 7
test ecx, ecx
je 0x40bb53
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x274]
test ecx, ecx
je 0x40bb31
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.004864b8
mov esp, ebp
pop ebp
ret
call fcn.0040afd0
call fcn.0046198e
int3