Function at 0x401268
Capabilities:
Extract resource via kernel32 functions
Get file size
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x3fa4]
mov eax, 0x4024
call fcn.004038b0
mov eax, dword [0x414004]
xor eax, ebp
mov dword [ebp + 0x3fa0], eax
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_FindResourceA]
push edi
push 0xa
push str.setup.ico
xor ebx, ebx
push ebx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_SizeofResource]
push eax
push ebx
mov dword [ebp - 0x68], eax
call edi
push dword [ebp - 0x68]
mov dword [ebp - 0x74], eax
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
push 0x410334
push 0x415210
mov dword [ebp - 0x78], eax
call fcn.00401147
pop ecx
pop ecx
test eax, eax
je 0x401302
cmp dword [0x41552c], ebx
je 0x4012ec
cmp dword [0x415314], ebx
je 0x4012e5
mov eax, str.header64_cab_elevated
jmp 0x401332
mov eax, str.header64_cab
jmp 0x401332
cmp dword [0x415314], ebx
je 0x4012fb
mov eax, str.header32_cab_elevated
jmp 0x401332
mov eax, str.header32_cab
jmp 0x401332
cmp dword [0x41552c], ebx
je 0x401320
cmp dword [0x415314], ebx
je 0x401319
mov eax, str.header64_elevated
jmp 0x401332
mov eax, str.header64
jmp 0x401332
mov eax, str.header32_elevated
cmp dword [0x415314], ebx
jne 0x401332
mov eax, str.header32
push 0xa
push eax
push ebx
call esi
mov esi, eax
push esi
push ebx
call edi
mov dword [ebp - 0x64], eax
call fcn.004038e0
mov edi, esp
push dword [ebp - 0x64]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
push edi
call fcn.00403540
mov esi, eax
mov eax, dword [esi + 0x3c]
add esp, 0xc
add eax, esi
xor edi, edi
mov ecx, 0x41541c
movzx edx, di
mov dword [ebp - 0x68], edx
xor edi, edi
jmp 0x40138b
cmp dl, 0x2e
je 0x401391
imul edi, edi, 0xa
and dl, 0xf
movsx dx, dl
add dx, di
movzx edi, dx
inc ecx
mov dl, byte [ecx]
cmp dl, bl
jne 0x401375
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40136b
mov ecx, dword [ebp - 0x68]
cmp cx, bx
je 0x4013b0
mov word [eax + 0x40], cx
mov word [eax + 0x42], di
mov word [eax + 0x48], cx
mov word [eax + 0x4a], di
push str.Reading_source_ZIP_file...
call fcn.004033d7
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
pop ecx
push ebx
push ebx
push 3
push ebx
push 1
push 0x80000000
push 0x415210
call edi
mov dword [ebp - 0x6c], eax
cmp dword [0x418548], ebx
je 0x4013f6
push 0x415428
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp - 0x64]
push esi
call fcn.004011c0
add esp, 0x14
push ebx
push ebx
push 2
push ebx
push 3
push 0x40000000
push 0x415318
call edi
push ebx
lea ecx, [ebp - 0x7c]
push ecx
push dword [ebp - 0x64]
mov dword [ebp - 0x68], eax
push esi
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
push str.Saving_archive_settings...
call fcn.004033d7
pop ecx
cmp byte [0x418fe0], bl
je 0x40144b
mov eax, 0x418fe0
cmp byte [eax], 0x5c
jne 0x401446
cmp byte [eax + 1], 0x6e
jne 0x401446
mov byte [eax], 0xd
mov byte [eax + 1], 0xa
inc eax
cmp byte [eax], bl
jne 0x401434
push ebx
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push 0x415638
lea eax, [ebp - 0x60]
push str.Name_s
push eax
call esi
push 0x415738
lea edi, [ebp + eax - 0x5f]
push str.Exec_s
push edi
call esi
push 0x415530
lea edi, [edi + eax + 1]
push str.DefaultPath_s
push edi
call esi
push 0x418fe0
lea edi, [edi + eax + 1]
push str.Intro_s
push edi
call esi
push 0x415840
lea edi, [edi + eax + 1]
push str.URL_s
push edi
call esi
lea edi, [edi + eax + 1]
mov eax, dword [0x415634]
add esp, 0x3c
cmp eax, ebx
je 0x4014cf
push eax
push str.AutoExtract_u
push edi
call esi
add esp, 0xc
lea edi, [edi + eax + 1]
cmp dword [0x41583c], ebx
je 0x4014e5
push str.OpenFolder1
push edi
call esi
pop ecx
pop ecx
lea edi, [edi + eax + 1]
cmp dword [0x418540], ebx
je 0x4014fb
push str.Delete1
push edi
call esi
pop ecx
pop ecx
lea edi, [edi + eax + 1]
cmp dword [0x418544], ebx
je 0x401511
push str.NoGUI1
push edi
call esi
pop ecx
pop ecx
lea edi, [edi + eax + 1]
mov dword [ebp - 0x64], 0x415d40
cmp byte [0x415d40], bl
je 0x401549
push dword [ebp - 0x64]
push 0x410200
push edi
call esi
add esp, 0xc
push dword [ebp - 0x64]
lea edi, [edi + eax + 1]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x64]
lea eax, [ecx + eax + 1]
mov dword [ebp - 0x64], eax
cmp byte [eax], bl
jne 0x401520
push ebx
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x60]
sub edi, eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
push eax
push dword [ebp - 0x68]
call edi
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
jmp 0x40157e
cmp dword [ebp - 0x70], ebx
je 0x401595
push ebx
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x70]
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x68]
call edi
push ebx
lea eax, [ebp - 0x70]
push eax
push 0x4000
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x6c]
call esi
test eax, eax
jne 0x401568
push str.Finishing_up_...
call fcn.004033d7
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ecx
push dword [ebp - 0x68]
call esi
push dword [ebp - 0x6c]
call esi
push 0x12c
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x3fa0]
xor ecx, ebp
call fcn.00401d48
add ebp, 0x3fa4
leave
ret 4