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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x456c
call fcn.0040fd60
push ebx
push esi
push edi
push 0x104
mov esi, 0x41b200
xor ebx, ebx
push esi
push ebx
mov dword [ebp - 8], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push ebx
push ebx
push 3
push ebx
push 1
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
lea ecx, [ebp - 4]
push ebx
push ecx
push 0x40
lea ecx, [ebp - 0x74]
mov dword [0x417968], eax
push ecx
push eax
call edi
test eax, eax
je 0x401ef1
cmp dword [ebp - 4], 0x40
jne 0x401ef1
push ebx
push ebx
push dword [ebp - 0x38]
push dword [0x417968]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov esi, eax
cmp esi, 0xffffffff
je 0x401ef1
push ebx
lea eax, [ebp - 4]
push eax
push 0xf8
lea eax, [ebp - 0x16c]
push eax
push dword [0x417968]
call edi
test eax, eax
je 0x401ef1
cmp dword [ebp - 4], 0xf8
jne 0x401ef1
cmp dword [ebp - 0x16c], 0x4550
jne 0x401ef1
mov eax, 0xe0
cmp word [ebp - 0x158], ax
jne 0x401ef1
xor eax, eax
cmp ax, word [ebp - 0x166]
jae 0x401bf0
push 0
lea eax, [ebp - 4]
push eax
push 0x28
lea eax, [ebp - 0x34]
push eax
push dword [0x417968]
call edi
test eax, eax
je 0x401ef1
cmp dword [ebp - 4], 0x28
jne 0x401ef1
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x24]
cmp esi, eax
inc ebx
cmovb esi, eax
movzx eax, word [ebp - 0x166]
cmp ebx, eax
jl 0x401bb3
xor ebx, ebx
push ebx
push ebx
push esi
push dword [0x417968]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0xc], eax
cmp eax, 0xffffffff
je 0x401ef1
push ebx
lea eax, [ebp - 4]
push eax
push 0x3fff
lea eax, [ebp - 0x456c]
push eax
push dword [0x417968]
call edi
test eax, eax
je 0x401ef1
mov eax, dword [ebp - 4]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.Unnamed_Archive
push 0x417d98
mov byte [ebp + eax - 0x456c], bl
call esi
mov ebx, dword [ebp - 4]
mov edi, 0x41b320
cmp ebx, 4
jb 0x401e4a
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push 4
lea esi, [ebp - 0x456c]
add esi, dword [ebp - 8]
push str.7kSt
push esi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x401e3f
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, dword [ebp - 8]
inc ebx
add ebx, eax
lea eax, [ebp - 0x56c]
push eax
push 0
push 0x4116ec
push esi
mov dword [ebp - 8], ebx
call fcn.00402e9f
add esp, 0x10
cmp byte [eax], 0
je 0x401e31
push str.Delete
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401cd5
movsx eax, byte [esi + 7]
and eax, 0xf
mov dword [0x417958], eax
jmp 0x401e31
push str.NoGUI
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401cf8
movsx eax, byte [esi + 6]
and eax, 0xf
mov dword [0x417944], eax
jmp 0x401e31
push str.Debug
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401d1b
movsx eax, byte [esi + 6]
and eax, 0xf
mov dword [0x41794c], eax
jmp 0x401e31
push str.Name
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401d37
push 0x417d98
jmp 0x401ddf
push str.Exec
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401d53
push 0x417e98
jmp 0x401ddf
push str.DefaultPath
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401d6c
push 0x41b320
jmp 0x401ddf
push str.Intro
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401d85
push 0x41ade0
jmp 0x401ddf
push str.AutoExtract
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401da8
movsx eax, byte [esi + 0xc]
and eax, 0xf
mov dword [0x417c8c], eax
jmp 0x401e31
push str.OpenFolder
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401dc8
movsx eax, byte [esi + 0xb]
and eax, 0xf
mov dword [0x417d94], eax
jmp 0x401e31
push 0x411744
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401df1
push 0x417fa0
push 1
push 0x4116ec
push esi
call fcn.00402e9f
add esp, 0x10
jmp 0x401e31
push str.Shortcut
lea eax, [ebp - 0x56c]
push eax
call edi
test eax, eax
jne 0x401e31
lea eax, [ebp - 0x56c]
push eax
push 1
push 0x4116ec
push esi
call fcn.00402e9f
add esp, 0x10
lea eax, [ebp - 0x56c]
push eax
push 0
push 0
push dword [0x417964]
call dword [sym.imp.USER32.dll_AppendMenuA]
lea eax, [ebx + 4]
mov ebx, dword [ebp - 4]
cmp eax, ebx
jbe 0x401c61
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, 0x41b320
mov ecx, dword [ebp - 8]
lea eax, [ecx + 4]
cmp eax, ebx
jbe 0x401e5e
push str.Could_not_get_file_info._This_archive_is_likely_corrupted.
jmp 0x401ef6
mov eax, dword [ebp - 0xc]
push 0
push dword [0x417968]
add eax, ecx
mov dword [0x417950], eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
sub eax, dword [0x417950]
cmp byte [0x41b320], 0
mov dword [0x417954], eax
jne 0x401ea2
cmp dword [0x417c8c], 1
jne 0x401e9a
push str._temp_
jmp 0x401e9f
push str._curdir_
push edi
call esi
call fcn.00402459
push 0x104
push edi
call fcn.004024b5
push edi
call fcn.004014ae
add esp, 0xc
push edi
mov edi, 0x41acc0
push edi
call esi
cmp dword [0x417c8c], 1
jne 0x401eea
push 0x411534
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
call fcn.00401519
pop ecx
mov dword [section..data], 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Could_not_read_the_source_SFX.
call fcn.00402939
int3