Function at 0x4040d0
Capabilities:
Accept command line arguments
Check if file exists
Create directory
Get common file path
Get file size
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46f909
mov eax, dword fs:[0]
push eax
sub esp, 0x92c
mov eax, dword [0x4899f8]
xor eax, ebp
mov dword [ebp - 0x20], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.UnCompressThread
push str._s_Start
call fcn.00402b50
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
lea ecx, [ebp - 0x77c]
call fcn.00405ec0
mov dword [ebp - 4], 0
push 0
push str._sleep
lea ecx, [ebp - 0x77c]
call fcn.004060e0
test eax, eax
jl 0x404147
push 0x493e0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x660], eax
mov dword [ebp - 0x774], 0
push 0
call fcn.00404aa0
add esp, 4
test eax, eax
jne 0x40419b
mov dword [0x58b034], 0x2714
mov ecx, dword [0x58b034]
mov dword [ebp - 0x898], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x898]
jmp 0x4049da
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
lea edx, [ebp - 0x1c]
push edx
call fcn.00403ea0
add esp, 4
mov byte [ebp - 0x33c], 0
push 0x104
push 0
lea eax, [ebp - 0x33b]
push eax
call fcn.004472f0
add esp, 0xc
mov byte [ebp - 0x65c], 0
push 0x207
push 0
lea ecx, [ebp - 0x65b]
push ecx
call fcn.004472f0
add esp, 0xc
mov byte [ebp - 0x234], 0
push 0x103
push 0
lea edx, [ebp - 0x233]
push edx
call fcn.004472f0
add esp, 0xc
lea eax, [ebp - 0x234]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
jne 0x404239
push 0x104
push str.C:Temp
lea ecx, [ebp - 0x234]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push str._rav7zDir
lea edx, [ebp - 0x234]
push edx
call fcn.004477f0
add esp, 8
lea eax, [ebp - 0x234]
push eax
call fcn.00402550
test eax, eax
jne 0x4042a6
lea ecx, [ebp - 0x234]
push ecx
call fcn.00404a00
add esp, 4
push 0
lea edx, [ebp - 0x234]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x4042a6
mov dword [ebp - 0x89c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x89c]
jmp 0x4049da
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x65c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.Rav.7z
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x104
lea eax, [ebp - 0x33c]
push eax
mov ecx, dword [0x58b29c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0
push 0
push 3
push 0
push 3
push SysReAllocStringLen
lea edx, [ebp - 0x33c]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x778], eax
cmp dword [ebp - 0x778], 0xffffffff
jne 0x404352
lea eax, [ebp - 0x234]
push eax
call fcn.00401770
add esp, 4
mov dword [0x58b034], 0x2715
mov ecx, dword [0x58b034]
mov dword [ebp - 0x8a0], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x8a0]
jmp 0x4049da
mov dword [ebp - 0x450], 0
lea edx, [ebp - 0x450]
push edx
mov eax, dword [ebp - 0x778]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x888], eax
mov eax, dword [ebp - 0x888]
mov ecx, 2
mul ecx
mov dword [ebp - 0x938], eax
mov dword [ebp - 0x934], edx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x934]
ja 0x4043f5
jb 0x4043a7
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x938]
jae 0x4043f5
mov ecx, dword [ebp - 0x778]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edx, [ebp - 0x234]
push edx
call fcn.00401770
add esp, 4
mov dword [0x58b034], 0x2716
mov eax, dword [0x58b034]
mov dword [ebp - 0x8a4], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x8a4]
jmp 0x4049da
mov ecx, dword [ebp - 0x778]
push ecx
call fcn.00402640
add esp, 4
push eax
lea edx, [ebp - 0x65c]
push edx
mov eax, dword [ebp - 0x778]
push eax
call fcn.00402580
add esp, 0xc
mov ecx, dword [ebp - 0x778]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x340], 0
mov byte [ebp - 4], 1
push str.CMy7z_Open_File_Start_...
call fcn.00402b50
add esp, 4
lea edx, [ebp - 0x65c]
push edx
lea ecx, [ebp - 0x340]
call fcn.0040bfa2
test eax, eax
jne 0x4044ac
mov dword [0x58b034], 0x2717
mov eax, dword [0x58b034]
mov dword [ebp - 0x8a8], eax
mov byte [ebp - 4], 0
cmp dword [ebp - 0x340], 0
je 0x40448f
mov ecx, dword [ebp - 0x340]
mov edx, dword [ebp - 0x340]
mov eax, dword [edx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x8a8]
jmp 0x4049da
push str.CMy7z_Open_File_End_...
call fcn.00402b50
add esp, 4
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x1c]
push eax
push 0x58b02c
push 0
push 0x58ae20
lea ecx, [ebp - 0x340]
call fcn.0040c1fe
mov dword [ebp - 0x770], eax
cmp dword [ebp - 0x770], 0
je 0x40468b
lea ecx, [ebp - 0x88c]
call fcn.00420390
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x770]
push ecx
push str._08x
lea edx, [ebp - 0x88c]
push edx
call fcn.004090d0
add esp, 0xc
push 0x4758ac
push 0x4758ac
push str.Extractfailed
mov eax, dword [ebp - 0x88c]
push eax
push str.true
push 0x475aa0
push str.res_watch_install
call fcn.00444830
add esp, 0x1c
cmp dword [0x58b02c], 0
je 0x4045ac
mov dword [0x58b034], 0x2712
mov dword [ebp - 0x8ac], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x88c]
call fcn.00406c00
mov byte [ebp - 4], 0
cmp dword [ebp - 0x340], 0
je 0x40458f
mov ecx, dword [ebp - 0x340]
mov edx, dword [ebp - 0x340]
mov eax, dword [edx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x8ac]
jmp 0x4049da
cmp dword [ebp - 0x770], 0x81000001
jne 0x40462a
push 0x58ae20
call fcn.00401770
add esp, 4
mov dword [0x58b034], 0x2716
mov edx, dword [0x58b034]
mov dword [ebp - 0x8b0], edx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x88c]
call fcn.00406c00
mov byte [ebp - 4], 0
cmp dword [ebp - 0x340], 0
je 0x40460b
mov eax, dword [ebp - 0x340]
mov ecx, dword [ebp - 0x340]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x8b0]
jmp 0x4049da
mov dword [0x58b034], 0x2717
mov dword [ebp - 0x8b4], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x88c]
call fcn.00406c00
mov byte [ebp - 4], 0
cmp dword [ebp - 0x340], 0
je 0x40466e
mov ecx, dword [ebp - 0x340]
mov edx, dword [ebp - 0x340]
mov eax, dword [edx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x8b4]
jmp 0x4049da
push 0x4758ac
push 0x4758ac
push str.Extractsuccess
push 0x4758ac
push str.true
push 0x475a78
push str.res_watch_install
call fcn.00444830
add esp, 0x1c
mov byte [ebp - 0x44c], 0
push 0x104
push 0
lea edx, [ebp - 0x44b]
push edx
call fcn.004472f0
add esp, 0xc
push 0x58ae20
push str._sRapCustomConfig.ini
lea eax, [ebp - 0x44c]
push eax
call fcn.00447420
add esp, 0xc
lea ecx, [ebp - 0x44c]
push ecx
push str.false
push str.RAP_IS_LOCK_HOMEPAGE
push str.RAP_CONFIG
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov byte [ebp - 0x76c], 0
push 0x104
push 0
lea edx, [ebp - 0x76b]
push edx
call fcn.004472f0
add esp, 0xc
mov byte [ebp - 0x12c], 0
push 0x103
push 0
lea eax, [ebp - 0x12b]
push eax
call fcn.004472f0
add esp, 0xc
mov byte [ebp - 0x884], 0
push 0x104
push 0
lea ecx, [ebp - 0x883]
push ecx
call fcn.004472f0
add esp, 0xc
push 0x58ae20
push str._s_auto.ini
lea edx, [ebp - 0x884]
push edx
call fcn.00447420
add esp, 0xc
lea eax, [ebp - 0x884]
push eax
push 0x104
lea ecx, [ebp - 0x76c]
push ecx
push str.Setup.exe
push 0x475a18
push 0x4754e4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x884]
push edx
push 1
push 0x4754ec
push 0x4754e4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x58b030], eax
lea eax, [ebp - 0x884]
push eax
push 0x104
lea ecx, [ebp - 0x12c]
push ecx
push 0x4758ac
push str.Param
push 0x4754e4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x65c]
push edx
call fcn.00401770
add esp, 4
call fcn.00401e90
test eax, eax
je 0x404871
push 0x4758ac
push 0x4758ac
push str.isForbidInstall
push 0x4758ac
push str.true
push 0x4759fc
push str.res_watch_install
call fcn.00444830
add esp, 0x1c
mov dword [ebp - 0x8b8], 0
mov byte [ebp - 4], 0
cmp dword [ebp - 0x340], 0
je 0x404854
mov eax, dword [ebp - 0x340]
mov ecx, dword [ebp - 0x340]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x8b8]
jmp 0x4049da
lea ecx, [ebp - 0x10]
call fcn.00420390
mov byte [ebp - 4], 3
push 0x58ae20
push str._sLabel.dat
lea ecx, [ebp - 0x10]
push ecx
call fcn.004090d0
add esp, 0xc
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x918], edx
mov eax, dword [ebp - 0x918]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x40490d
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x91c], ecx
mov edx, dword [0x58b054]
mov dword [ebp - 0x920], edx
mov eax, dword [ebp - 0x91c]
push eax
push str.rav3MrapChild
push str.CRCHRC6XYNV4G
push str.G3A2UK_K0P0ND_L0EFSU_FH5300
push 0x4759ac
mov ecx, dword [ebp - 0x920]
push ecx
push 0x4758ac
call fcn.00405210
add esp, 0x1c
mov dword [ebp - 0x890], eax
mov edx, dword [ebp - 0x890]
push edx
push str.ModifyLaelDat..._d
call fcn.00402b50
add esp, 8
jmp 0x40496b
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x924], eax
mov ecx, dword [0x58b054]
mov dword [ebp - 0x928], ecx
mov edx, dword [ebp - 0x924]
push edx
push str.rav3MrapChild
push str.CRCHRC6XYNV4G
push str.G3A2UK_K0P0ND_L0EFSU_FH5300
push 0x4759ac
mov eax, dword [ebp - 0x928]
push eax
push 0x4758ac
call fcn.00404bb0
add esp, 0x1c
mov dword [ebp - 0x894], eax
mov ecx, dword [ebp - 0x894]
push ecx
push str.MakeLabelDat..._d
call fcn.00402b50
add esp, 8
call fcn.00402a50
mov dword [0x58b034], eax
cmp dword [0x58b030], 0
je 0x40498b
push 0x58ae20
call fcn.00401290
add esp, 4
mov dword [ebp - 0x8bc], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x10]
call fcn.00406c00
mov byte [ebp - 4], 0
cmp dword [ebp - 0x340], 0
je 0x4049c2
mov edx, dword [ebp - 0x340]
mov eax, dword [ebp - 0x340]
mov ecx, dword [eax]
push edx
mov edx, dword [ecx + 8]
call edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x77c]
call fcn.00406c00
mov eax, dword [ebp - 0x8bc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.004472d8
mov esp, ebp
pop ebp
ret 4