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.00403900
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 0x41038c
push 0x415210
mov dword [ebp - 0x78], eax
call fcn.00401147
pop ecx
pop ecx
test eax, eax
je 0x40130b
cmp dword [0x41552c], ebx
je 0x4012f2
cmp dword [0x415314], ebx
je 0x4012e8
mov eax, str.header64_cab_elevated
jmp 0x401384
mov eax, str.header64_cab
jmp 0x401384
cmp dword [0x415314], ebx
je 0x401304
mov eax, str.header32_cab_elevated
jmp 0x401384
mov eax, str.header32_cab
jmp 0x401384
push str.zpaq
push 0x415210
call fcn.00401147
pop ecx
pop ecx
test eax, eax
je 0x401354
cmp dword [0x41552c], ebx
je 0x40133e
cmp dword [0x415314], ebx
je 0x401337
mov eax, str.header64_zpaq_elevated
jmp 0x401384
mov eax, str.header64_zpaq
jmp 0x401384
cmp dword [0x415314], ebx
je 0x40134d
mov eax, str.header32_zpaq_elevated
jmp 0x401384
mov eax, str.header32_zpaq
jmp 0x401384
cmp dword [0x41552c], ebx
je 0x401372
cmp dword [0x415314], ebx
je 0x40136b
mov eax, str.header64_elevated
jmp 0x401384
mov eax, str.header64
jmp 0x401384
mov eax, str.header32_elevated
cmp dword [0x415314], ebx
jne 0x401384
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.00403930
mov edi, esp
push dword [ebp - 0x64]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
push edi
call fcn.00403590
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 0x4013dd
cmp dl, 0x2e
je 0x4013e3
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 0x4013c7
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4013bd
mov ecx, dword [ebp - 0x68]
cmp cx, bx
je 0x401402
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.00403429
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 0x401448
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.00403429
pop ecx
cmp byte [0x418fe0], bl
je 0x40149d
mov eax, 0x418fe0
cmp byte [eax], 0x5c
jne 0x401498
cmp byte [eax + 1], 0x6e
jne 0x401498
mov byte [eax], 0xd
mov byte [eax + 1], 0xa
inc eax
cmp byte [eax], bl
jne 0x401486
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 0x401521
push eax
push str.AutoExtract_u
push edi
call esi
add esp, 0xc
lea edi, [edi + eax + 1]
cmp dword [0x41583c], ebx
je 0x401537
push str.OpenFolder1
push edi
call esi
pop ecx
pop ecx
lea edi, [edi + eax + 1]
cmp dword [0x418540], ebx
je 0x40154d
push str.Delete1
push edi
call esi
pop ecx
pop ecx
lea edi, [edi + eax + 1]
cmp dword [0x418544], ebx
je 0x401563
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 0x40159b
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 0x401572
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 0x4015d0
cmp dword [ebp - 0x70], ebx
je 0x4015e7
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 0x4015ba
push str.Finishing_up_...
call fcn.00403429
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.00401d9a
add ebp, 0x3fa4
leave
ret 4