Function at 0x4022b4
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c4
push ebx
push esi
push edi
push dword [ebp + 0x10]
call fcn.0040181e
test al, al
pop ecx
je 0x402884
mov eax, dword [ebp + 8]
mov edi, dword [sym.imp.USER32.dll_LoadIconA]
mov esi, 0x7f00
xor ebx, ebx
push esi
push ebx
mov dword [ebp - 0xc0], 0x30
mov dword [ebp - 0xbc], 3
mov dword [ebp - 0xb8], 0x401ada
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], eax
call edi
push esi
push ebx
mov dword [ebp - 0xa8], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push ebx
mov dword [ebp - 0xa4], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push esi
push ebx
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], str.RAInstallerWrapper
call edi
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0xc0]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
lea ecx, [ebp - 0x60]
call fcn.0040358c
lea eax, [ebp - 0x60]
push eax
call fcn.004016d4
test al, al
pop ecx
jne 0x402397
push 0xb
mov esi, str.Couldnt_open_this_file_as_a_ZipLite_archive.
pop ecx
lea edi, [ebp - 0x90]
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x90]
push eax
movsw word es:[edi], word [esi]
call fcn.0040164c
pop ecx
jmp 0x40287c
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0x28]
push eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
call fcn.00403227
test eax, eax
jbe 0x40284d
push 0x20
call fcn.00405593
cmp eax, ebx
pop ecx
je 0x4023cb
mov ecx, eax
call fcn.004052b5
mov esi, eax
jmp 0x4023cd
xor esi, esi
push esi
push str.settings.txt
lea ecx, [ebp - 0xc]
call fcn.00404290
push eax
lea ecx, [ebp - 0x60]
call fcn.00403137
neg al
sbb al, al
lea ecx, [ebp - 0xc]
inc al
mov byte [ebp + 0x13], al
call fcn.0040431a
cmp byte [ebp + 0x13], bl
jne 0x402445
lea ecx, [ebp - 0x90]
call fcn.0040358c
push 4
push esi
lea ecx, [ebp - 0x90]
call fcn.00403777
lea eax, [ebp - 0x90]
mov ecx, 0x42d468
push eax
call fcn.00401d42
lea ecx, [ebp - 0x90]
call fcn.00403922
push 0x42d468
call fcn.0040191d
pop ecx
lea ecx, [ebp - 0x90]
call fcn.004035e3
cmp byte [0x42d49c], bl
jne 0x40256d
lea eax, [ebp - 0x60]
push str.splash.jpg
push eax
call fcn.00401994
pop ecx
cmp eax, ebx
pop ecx
mov dword [0x42d4a4], eax
jne 0x402483
lea eax, [ebp - 0x60]
push str.splash.bmp
push eax
call fcn.00401a37
pop ecx
cmp eax, ebx
pop ecx
mov dword [0x42d4a4], eax
je 0x4024a0
lea ecx, [ebp - 0x7c]
push ecx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [ebp - 0x78]
mov dword [0x42d4a8], eax
mov eax, dword [ebp - 0x74]
mov dword [0x42d4ac], eax
mov eax, dword [0x42d4a8]
mov esi, dword [0x42d4ac]
mov dword [ebp + 0x10], eax
mov eax, dword [0x42d484]
xor ecx, ecx
cmp eax, 1
mov edx, 0x80000000
jne 0x4024c7
mov edx, 0x80800000
inc ecx
jmp 0x4024d4
cmp eax, 2
jne 0x4024d4
push 3
mov edx, 0x80400000
pop ecx
lea eax, [ecx + ecx]
add dword [ebp + 0x10], eax
add esi, eax
cmp byte [0x42d488], bl
mov dword [ebp - 0xc], esi
je 0x4024f0
add esi, dword [0x42d490]
mov dword [ebp - 0xc], esi
push ebx
push dword [ebp + 8]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edx
push 0x42d4cc
push str.RAInstallerWrapper
push 0x80
call dword [sym.imp.USER32.dll_CreateWindowExA]
push eax
mov dword [0x42d4b0], eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov edi, eax
push 8
push edi
call esi
push 0xa
push edi
mov dword [ebp + 8], eax
call esi
push edi
mov esi, eax
push dword [0x42d4b0]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, esi
push 0x40
sub eax, dword [ebp - 0xc]
push dword [ebp - 0xc]
push dword [ebp + 0x10]
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [ebp + 8]
sub eax, dword [ebp + 0x10]
cdq
sub eax, edx
sar eax, 1
push eax
push 0xffffffffffffffff
push dword [0x42d4b0]
call dword [sym.imp.USER32.dll_SetWindowPos]
call sub.KERNEL32.dll_GetTickCount
fld1
push ecx
mov dword [0x42d4b4], eax
fstp dword [esp]
call fcn.00401c8b
push dword [0x42d478]
lea eax, [ebp - 0x1c]
push eax
call fcn.00402dc3
add esp, 0xc
lea ecx, [ebp - 0x14]
push str.Channel.dat
call fcn.00404290
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x10]
push eax
call fcn.0040427c
push 0x4274dc
lea ecx, [ebp - 0x10]
call fcn.00404ef9
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0x10]
push eax
call fcn.00404edb
lea eax, [ebp - 0x10]
push ebx
push eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x60]
call fcn.00402fdf
lea ecx, [ebp - 8]
call fcn.00404268
lea ecx, [ebp - 0x28]
mov byte [ebp + 0xb], bl
xor edi, edi
call fcn.004032cc
test eax, eax
jbe 0x402674
mov esi, str..exe
cmp byte [ebp + 0xb], bl
jne 0x4026a1
lea eax, [ebp - 0x30]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004032d0
push eax
lea ecx, [ebp - 8]
call fcn.00404e29
lea ecx, [ebp - 0x30]
call fcn.0040431a
lea eax, [ebp - 0xc]
push 4
push eax
lea ecx, [ebp - 8]
call fcn.00404c9b
push esi
lea ecx, [ebp - 0x34]
call fcn.00404290
push eax
lea ecx, [ebp - 0xc]
call fcn.00404d90
neg eax
sbb al, al
lea ecx, [ebp - 0x34]
inc al
mov byte [ebp + 0x13], al
call fcn.0040431a
cmp byte [ebp + 0x13], bl
je 0x40265a
mov byte [ebp + 0xb], 1
lea ecx, [ebp - 0xc]
call fcn.0040431a
lea ecx, [ebp - 0x28]
inc edi
call fcn.004032cc
cmp edi, eax
jb 0x4025f9
cmp byte [ebp + 0xb], bl
jne 0x4026a1
lea ecx, [ebp - 0x60]
call fcn.00402f44
push 8
mov esi, str.Didnt_find_an_installer_exe_file.
pop ecx
lea edi, [ebp - 0x88]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x88]
push eax
movsb byte es:[edi], byte [esi]
call fcn.0040164c
pop ecx
jmp 0x40282b
lea eax, [ebp - 0x1c4]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x1c4]
lea ecx, [ebp - 4]
push eax
call fcn.00404290
lea eax, [ebp - 8]
lea ecx, [ebp - 4]
push eax
call fcn.00404edb
call sub.KERNEL32.dll_GetTickCount
push eax
call fcn.0041a633
pop ecx
call fcn.0041a63d
cdq
mov ecx, 0x186a0
idiv ecx
lea ecx, [ebp - 0x18]
mov edi, edx
call fcn.00404268
push ebx
push ebx
push edi
lea ecx, [ebp - 0x18]
call fcn.00404b36
lea eax, [ebp - 0x18]
lea ecx, [ebp - 4]
push eax
call fcn.00404ba7
push esi
mov edi, eax
call fcn.0041a390
pop ecx
sub edi, eax
push edi
lea ecx, [ebp - 4]
call fcn.00404a22
lea eax, [ebp - 4]
push fcn.00401c8b
push eax
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x60]
call fcn.00402fdf
test al, al
jne 0x402796
lea ecx, [ebp - 0x60]
call fcn.00402f44
push 8
mov esi, str.Couldnt_copy_out_the_exe_file.
pop ecx
lea edi, [ebp - 0x84]
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x84]
push eax
call fcn.0040164c
pop ecx
jmp 0x40281b
cmp byte [0x42d4c4], bl
je 0x40279e
fldz
push ecx
fstp dword [esp]
call fcn.00401c8b
fld dword [0x42d4c0]
fcomp dword [0x4241e8]
pop ecx
fnstsw ax
test ah, 1
jne 0x402796
push ebx
push ebx
push 0x10
push dword [0x42d4b0]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp byte [0x42d49c], bl
je 0x40275f
lea eax, [ebp - 0x2c]
push ebx
push eax
push ebx
mov ecx, 0x42d4a0
call fcn.00404ba1
push eax
lea ecx, [ebp - 4]
call fcn.00404ba1
push eax
call fcn.00405127
add esp, 0x14
test al, al
jne 0x4027ef
lea ecx, [ebp - 0x60]
call fcn.00402f44
push 6
mov esi, str.Couldnt_launch_installer.
pop ecx
lea edi, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x80]
jmp 0x402753
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x2c]
call fcn.004051ca
test al, al
pop ecx
jne 0x4027e4
push 0x20
lea ecx, [ebp - 4]
call fcn.00404ba1
push eax
call fcn.00403547
pop ecx
pop ecx
call fcn.0040352a
lea ecx, [ebp - 0x60]
call fcn.00402f44
lea ecx, [ebp - 0x18]
call fcn.0040431a
lea ecx, [ebp - 4]
call fcn.0040431a
lea ecx, [ebp - 8]
call fcn.0040431a
lea ecx, [ebp - 0x10]
call fcn.0040431a
lea ecx, [ebp - 0x14]
call fcn.0040431a
lea ecx, [ebp - 0x1c]
call fcn.0040431a
jmp 0x402874
lea ecx, [ebp - 0x60]
call fcn.00402f44
push 8
mov esi, str.Didnt_find_any_files_in_wrapper.
pop ecx
lea edi, [ebp - 0x84]
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x84]
push eax
movsw word es:[edi], word [esi]
call fcn.0040164c
pop ecx
lea ecx, [ebp - 0x28]
call fcn.0040320c
lea ecx, [ebp - 0x60]
call fcn.004035e3
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0x10