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

Disassembly:
push 0x180
mov eax, 0x441e6d
call fcn.0041277c
and dword [ebp - 4], 0
lea eax, [ebp - 0x154]
push eax
mov byte [ebp - 0x69], 0
call fcn.004280ba
pop ecx
push str.:tmp
push eax
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 1
call fcn.00403c02
add esp, 0xc
push 0
push 1
lea esi, [ebp - 0x154]
mov byte [ebp - 4], 3
call fcn.0040115a
lea eax, [ebp - 0x30]
call fcn.004235eb
test al, al
jne 0x4352b5
lea eax, [ebp - 0xd8]
push eax
call fcn.004280ba
pop ecx
push str..tmp
push eax
lea eax, [ebp - 0xf4]
push eax
mov byte [ebp - 4], 4
call fcn.00403c02
add esp, 0xc
push 0xffffffffffffffff
lea ecx, [ebp - 0x30]
push ecx
xor ebx, ebx
mov byte [ebp - 4], 5
call fcn.004010d2
push ebx
push 1
lea esi, [ebp - 0xf4]
call fcn.0040115a
push ebx
push 1
lea esi, [ebp - 0xd8]
mov byte [ebp - 4], 3
call fcn.0040115a
lea eax, [ebp - 0x30]
call fcn.004235eb
test al, al
je 0x43532b
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 0x69], 1
jae 0x4352c5
lea eax, [ebp - 0x2c]
push 0x8000080
push 3
push 1
push 0x80000000
push eax
call fcn.00422d23
mov ebx, eax
add esp, 0x14
cmp ebx, 0xffffffff
jne 0x435346
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x170]
call fcn.00423a1f
mov edx, eax
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 6
call fcn.0043599a
push eax
lea eax, [ebp - 0x18c]
push str.error_opening_file_installer_file_
push eax
mov byte [ebp - 4], 7
call fcn.0040450f
add esp, 0xc
push 0x44d638
lea eax, [ebp - 0x18c]
jmp 0x435340
mov dword [ebp - 0x94], str.installer_not_found
push 0x44d6fc
lea eax, [ebp - 0x94]
push eax
call fcn.004122ab
xor edi, edi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x78], eax
cmp eax, 0xffffffff
jne 0x435376
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x9c], str.error_getting_length_of_installer_binary_file
push 0x44d6fc
lea eax, [ebp - 0x9c]
jmp 0x435340
inc eax
push eax
call fcn.00410cae
and dword [ebp - 0x7c], edi
pop ecx
mov esi, eax
cmp edi, dword [ebp - 0x78]
jae 0x4353f7
push 0
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x78]
sub eax, edi
push eax
lea eax, [edi + esi + 1]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4353cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xb0], str.error_reading_installer_binary_file
push 0x44d6fc
lea eax, [ebp - 0xb0]
jmp 0x435340
cmp dword [ebp - 0x7c], 0
jne 0x4353f2
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x98], str.readed_0_bytes_from_installer_binary_file
push 0x44d6fc
lea eax, [ebp - 0x98]
jmp 0x435340
add edi, dword [ebp - 0x7c]
jmp 0x435383
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, 0x100
push edi
call fcn.00410cae
pop ecx
mov cl, byte [esi + 1]
or cl, 1
xor edx, edx
cmp edx, edi
jge 0x435428
movzx ebx, cl
imul ebx, edx
and ebx, 0xff
mov byte [ebx + eax], dl
inc edx
jmp 0x435412
push 2
mov byte [esi], 0x4d
mov byte [esi + 1], 0x5a
pop ecx
cmp ecx, dword [ebp - 0x78]
jae 0x435448
movzx edx, byte [ecx + esi]
mov bl, cl
dec bl
xor bl, byte [edx + eax]
mov byte [ecx + esi], bl
inc ecx
jmp 0x435432
push eax
call fcn.00410f30
pop ecx
push esi
call fcn.00429751
or dword [ebp - 4], 0xffffffff
mov eax, 0x43545f
ret