Function at 0x4011c0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
xor edi, edi
xor esi, esi
mov eax, 0x401058
sub eax, section..text
sar eax, 2
dec eax
mov dword [ebp - 8], eax
dec esi
inc esi
push 0x403594
push dword [esi*4 + 0x401004]
push 1
call fcn.00401670
sar eax, 1
mov dword [esi*4 + 0x403f88], eax
dec dword [ebp - 8]
jne 0x4011dc
mov dword [ebp - 0x48], 0
mov dword [ebp - 0xc], 1
push str.Screenasavers
push str._3planesoft_generic_patch_by_Vovan_Braga_Software_
push 0
push 0
call fcn.00401710
mov dword [ebp - 4], eax
cmp byte [eax], 0
je 0x4014bf
jmp 0x401256
mov dword [ebp - 0x48], 0
dec dword [ebp - 0xc]
push str.Executable
push str._3planesoft_generic_patch_by_Vovan_Braga_Software_
push 0
push 0
call fcn.00401710
mov dword [ebp - 4], eax
cmp byte [eax], 0
je 0x4014bf
push 0
push 0x82
push 3
push 0
push 2
push 0xc0000000
push dword [ebp - 4]
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
je 0x401596
mov dword [ebp - 0x34], eax
push 0
push 0
push 0
push 4
push 0
push eax
call sub.kernel32.dll_CreateFileMappingA
cmp eax, 0
je 0x401596
mov dword [ebp - 0x38], eax
push 0
push dword [ebp - 0x34]
call sub.kernel32.dll_GetFileSize
mov dword [ebp - 0x44], eax
push dword [ebp - 0x44]
push 0
push 0
push 2
push dword [ebp - 0x38]
call sub.kernel32.dll_MapViewOfFile
mov dword [ebp - 0x3c], eax
push dword [ebp - 0x3c]
call fcn.00401188
or eax, eax
jne 0x4015ea
xor esi, esi
mov eax, 0x40106c
sub eax, 0x401058
sar eax, 2
dec eax
mov dword [ebp - 8], eax
dec esi
inc esi
cmp esi, dword [ebp - 8]
je case.0x4014cb.1
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
push dword [esi*4 + 0x40105c]
call fcn.004018c0
or eax, eax
je 0x4012dd
mov dword [ebp - 0x18], eax
push dword [ebp - 0x3c]
push eax
call fcn.00401090
mov byte [0x404188], 0x68
mov dword [0x404189], eax
push 0x404192
push 5
push 0x404188
call fcn.00401130
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
push 0x404192
call fcn.004018c0
or eax, eax
jne 0x401389
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x3c]
push eax
call fcn.00401090
mov byte [0x404188], 0xf
mov byte [0x404189], 0x7e
mov byte [0x40418a], 5
mov dword [0x40418b], eax
push 0x404192
push 7
push 0x404188
call fcn.00401130
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
push 0x404192
call fcn.004018c0
or eax, eax
je case.0x4014cb.1
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], eax
xor esi, esi
mov eax, 0x401058
sub eax, section..text
sar eax, 2
dec eax
mov dword [ebp - 8], eax
dec esi
inc esi
cmp esi, dword [ebp - 8]
je 0x4014c8
push 0x1000
push dword [ebp - 0x10]
push dword [esi*4 + 0x401004]
call fcn.004018c0
or eax, eax
je 0x4013a6
add eax, dword [ebp - 0x10]
add eax, dword [esi*4 + 0x403f88]
mov byte [eax + 1], 0
jmp 0x4013fa
mov esi, dword [ebp - 0x3c]
add esi, dword [esi + 0x3c]
lea eax, [esi + 0x18]
mov ax, word [eax]
movzx eax, ax
mov edx, esi
cmp ax, 0x10b
jne 0x401419
lea eax, [edx + 0x98]
jmp 0x401425
cmp ax, 0x20b
jne 0x401425
lea eax, [edx + 0xa8]
cmp dword [eax], 0
je 0x401437
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x30]
push ecx
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
call sub.imagehlp.dll_CheckSumMappedFile
mov esi, dword [ebp - 0x3c]
add esi, dword [esi + 0x3c]
lea eax, [esi + 0x18]
mov ax, word [eax]
movzx eax, ax
mov edx, esi
cmp word [esi], 0x4550
jne 0x40148a
cmp ax, 0x10b
jne 0x40147e
mov eax, dword [ebp - 0x30]
mov dword [edx + 0x58], eax
jmp 0x40148a
cmp ax, 0x20b
jne 0x40148a
mov eax, dword [ebp - 0x30]
mov dword [edx + 0x58], eax
push dword [ebp - 0x3c]
call sub.kernel32.dll_UnmapViewOfFile
push dword [ebp - 0x38]
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x34]
call sub.kernel32.dll_CloseHandle
cmp dword [ebp - 0xc], 0
jne 0x40122d
push 0
push 0x4035b4
push str.Well_Done
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
leave
ret
mov eax, dword [ebp - 0x48]
jmp dword [eax*4 + 0x40162a]
mov dword [ebp - 0x48], 1
push 0x1000
push dword [ebp - 0x1c]
push str.E8________8886
call fcn.004018c0
or eax, eax
jne 0x40155c
push 0x1000
push dword [ebp - 0x1c]
push str.E8________8887
call fcn.004018c0
or eax, eax
jne 0x40155c
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
push str.E8____________________8881
call fcn.004018c0
or eax, eax
je case.0x4014cb.0
add eax, dword [ebp - 0x3c]
add eax, dword [eax + 1]
add eax, 5
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], eax
jmp 0x401392
mov dword [ebp - 0x48], 2
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
push str.E8____________________8882
call fcn.004018c0
or eax, eax
je case.0x4014cb.1
add eax, dword [ebp - 0x3c]
add eax, dword [eax + 1]
add eax, 5
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], eax
jmp 0x401392
add eax, dword [ebp - 0x1c]
push 0x404192
push 0x14
push eax
call fcn.00401130
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
push 0x404192
call fcn.004018c0
or eax, eax
je case.0x4014cb.1
add eax, dword [ebp - 0x3c]
mov esi, dword [eax + 1]
mov dword [ebp - 0x20], esi
add eax, 5
add eax, esi
mov dword [ebp - 0x10], eax
jmp 0x401392
push dword [ebp - 0x38]
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x34]
call sub.kernel32.dll_CloseHandle
push 0x10
push str.Cant_open_file
push dword [ebp - 4]
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
leave
ret
push dword [ebp - 0x38]
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x34]
call sub.kernel32.dll_CloseHandle
push 0x10
push str.Signature_not_found
push dword [ebp - 4]
push 0
call sub.user32.dll_MessageBoxA
push 0
call sub.kernel32.dll_ExitProcess
leave
ret
mov eax, 0x40107c
sub eax, 0x40106c
sar eax, 2
dec eax
mov ebx, eax
xor esi, esi
dec esi
inc esi
push 1
push dword [esi*4 + 0x401080]
push dword [esi*4 + 0x401070]
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
call fcn.00401ad6
or eax, eax
jne 0x4013fa
cmp ebx, esi
jne 0x4015fd
jmp 0x4012c9