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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5229c4
mov eax, dword fs:[0]
push eax
sub esp, 0x2a4
mov eax, dword [0x576644]
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 0x4186f4
push 0x53802c
mov ecx, edi
call fcn.00418250
jmp 0x418991
lea eax, [ebp - 0x29c]
mov dword [ebp - fcn.00419d60], vtable.std::_Func_impl_no_alloc_class__lambda_7cdf079ac7baac2e62caaf9eb8a5b444___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.00419d60
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x274], eax
test ecx, ecx
je 0x418771
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 0x4187cd
push esi
lea eax, [ebp - 0x230]
mov dword [ebp - 0x220], esi
push 0
push eax
call fcn.004ca680
mov byte [ebp + esi - 0x230], 0
mov ecx, dword [ebp - 0x230]
jmp 0x418837
cmp esi, 0x7fffffff
ja 0x4189ae
mov edi, esi
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x4187ed
mov edi, SysReAllocString
jmp 0x4187f7
mov eax, 0x16
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x230]
call fcn.00419f00
push esi
push 0
push eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x220], esi
mov dword [ebp - 0x21c], edi
call fcn.004ca680
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 0x4188a2
cmp dword [ebp - 0x2a0], esi
je 0x4188a2
push 0x53802c
mov ecx, edi
call fcn.00418250
lea ecx, [ebp - 0x230]
call fcn.00412ee0
lea ecx, [ebp - 0x298]
call fcn.00418460
jmp 0x418991
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.00418250
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.00489210
add esp, 0xc
lea ecx, [ebp - 0x260]
call fcn.00412ee0
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.00412ee0
lea ecx, [ebp - 0x230]
call fcn.00412ee0
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 4], 7
test ecx, ecx
je 0x4189b3
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x274]
test ecx, ecx
je 0x418991
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.004a7695
mov esp, ebp
pop ebp
ret
call fcn.00413c60
call fcn.0046a02d
int3