Function at 0x422caa
Capabilities:
Create directory
Get disk information
Query environment variable
Terminate process

Disassembly:
push 0x34
mov eax, 0x4a7459
call fcn.00490e49
mov ebx, ecx
xor esi, esi
mov dword [ebp - 0x28], esi
call fcn.0047dccb
push eax
lea ecx, [ebp - 0x1c]
call fcn.00434103
push 0x4b04e0
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], esi
call fcn.00421197
mov byte [ebp - 4], 1
call fcn.0047dccb
push eax
lea ecx, [ebp - 0x20]
call fcn.00434103
mov edx, dword [ebp + 8]
mov byte [ebp - 4], 2
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x24]
add ecx, ecx
push eax
call fcn.00454470
pop ecx
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.004226f7
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0042001a
lea eax, [ebp - 0x28]
push eax
mov edi, 0x4b0544
push edi
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004223f7
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.004226f7
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0042001a
push 0x10
lea eax, [ebx + 0x48]
push esi
push eax
call fcn.0048cb00
add esp, 0xc
jmp 0x423099
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp + 0xc]
jge 0x4230a3
push ecx
mov eax, esp
mov dword [ebp - 0x24], esp
push dword [ebp - 0x20]
push str.VirtIniSettings:__s
push eax
call fcn.00453c70
add esp, 0xc
call fcn.00422ae7
pop ecx
lea eax, [ebp - 0x24]
push eax
push 0x4b054c
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x24], esi
call fcn.004223f7
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 5
call fcn.00421360
push esi
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 6
push eax
mov eax, dword [ebp - 0x24]
call fcn.00423ad1
push str.AppID
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422deb
push dword [ebp - 0x14]
call fcn.0048cb7a
pop ecx
mov dword [ebx + 8], eax
jmp 0x423056
push str.AutoLaunch
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422e0f
push dword [ebp - 0x14]
call fcn.0048cb7a
pop ecx
mov dword [ebx + 0xc], eax
jmp 0x423056
push str.Streamer
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422e33
push dword [ebp - 0x14]
call fcn.0048cb7a
pop ecx
mov dword [ebx + 0x38], eax
jmp 0x423056
push str.FriendlyName
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422e57
push dword [ebp - 0x14]
call fcn.0048cb7a
pop ecx
mov dword [ebx + 0x10], eax
jmp 0x423056
push str.Shortcuts
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422e7b
push dword [ebp - 0x14]
call fcn.0048cb7a
pop ecx
mov dword [ebx + 0x14], eax
jmp 0x423056
push str.BaseDirName
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422e96
lea ecx, [ebp - 0x10]
jmp 0x422f6f
push str.Publisher
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422eb7
push dword [ebp - 0x14]
call fcn.0048cb7a
pop ecx
lea ecx, [ebx + 0x18]
jmp 0x422ed6
push str.Version
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422ee1
push dword [ebp - 0x14]
call fcn.0048cb7a
pop ecx
lea ecx, [ebx + 0x1c]
push eax
call fcn.004211db
jmp 0x423056
push str.OnStartVirtualized
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422ef9
lea ecx, [ebx + 0x20]
jmp 0x422f6f
push str.OnStartUnvirtualized
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422f11
lea ecx, [ebx + 0x24]
jmp 0x422f6f
push str.OnStopVirtualized
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422f29
lea ecx, [ebx + 0x28]
jmp 0x422f6f
push str.OnStopUnvirtualized
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422f41
lea ecx, [ebx + 0x2c]
jmp 0x422f6f
push str.StopInheritance
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422f59
lea ecx, [ebx + 0x30]
jmp 0x422f6f
push str.AutoUpdate
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x422f7d
lea ecx, [ebx + 0x34]
lea eax, [ebp - 0x14]
push eax
call fcn.004226f7
jmp 0x423056
push str.Expiration
push dword [ebp - 0x18]
call fcn.0048c876
pop ecx
pop ecx
test eax, eax
jne 0x423056
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], esi
je 0x423056
push 0x2f
push ecx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x40], esp
mov ecx, esp
mov dword [ebp - 0x24], esi
push eax
lea esi, [ebp - 0x24]
call fcn.00421360
lea eax, [ebp - 0x30]
push eax
mov ecx, esi
call fcn.00457670
add esp, 0xc
push dword [eax]
call fcn.0048c1c8
pop ecx
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
mov word [ebx + 0x4e], ax
call fcn.0042001a
cmp dword [ebp - 0x24], 0xffffffff
je 0x423054
push 0x2f
push ecx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x40], esp
mov ecx, esp
push eax
call fcn.00421360
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call fcn.00457670
add esp, 0xc
push dword [eax]
call fcn.0048c1c8
pop ecx
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
mov word [ebx + 0x4a], ax
call fcn.0042001a
cmp dword [ebp - 0x24], 0xffffffff
je 0x423054
push 0x2f
push ecx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x40], esp
mov ecx, esp
push eax
call fcn.00421360
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.00457670
add esp, 0xc
push dword [eax]
call fcn.0048c1c8
pop ecx
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
mov word [ebx + 0x48], ax
call fcn.0042001a
xor esi, esi
lea eax, [ebp - 0x28]
push eax
push edi
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004223f7
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 7
call fcn.004226f7
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.0042001a
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0042001a
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0042001a
cmp dword [ebp - 0x28], 0xffffffff
jne 0x422d65
mov eax, dword [ebx + 8]
cmp eax, esi
je 0x4234d1
cmp word [eax], si
je 0x4234d1
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], esi
jne 0x423103
mov eax, 0x514
push eax
push eax
lea ecx, [ebp - 0x10]
call fcn.0042049e
push eax
mov edi, str.CAMEYO_BASEDIRNAME
push edi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
call fcn.00423c25
push ecx
mov eax, esp
mov dword [ebp + 0xc], esp
push dword [ebp - 0x10]
push edi
push str.UnpackUtils_ReadIniFile::BaseDirName:_Environment__s__s_
push eax
call fcn.00453c70
add esp, 0x10
call fcn.00422ae7
pop ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax - 0xc]
cmp eax, esi
jne 0x423313
mov eax, dword [ebx + 0x40]
cmp eax, esi
je 0x423313
movzx eax, word [eax]
push eax
lea eax, [ebp - 0x14]
push str._c:_
push eax
call fcn.00453c70
add esp, 0xc
mov byte [ebp - 4], 0xb
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
push 0x4b04e0
lea ecx, [ebp - 0x28]
mov edi, eax
call fcn.00421197
mov byte [ebp - 4], 0xc
cmp edi, 2
jne 0x42315d
push str.REMOVABLE
jmp 0x423167
cmp edi, 3
jne 0x423171
push str.FIXED
lea ecx, [ebp - 0x28]
call fcn.004214a8
jmp 0x42319f
push edi
lea eax, [ebp - 0x3c]
push 0x4b0bb4
push eax
call fcn.00453c70
add esp, 0xc
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xd
call fcn.004226f7
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.0042001a
push ecx
mov eax, esp
mov dword [ebp - 0x40], esp
push dword [ebp - 0x28]
push dword [ebp - 0x14]
push str.UnpackUtils_ReadIniFile::BaseDirName:_RootDir__s_drive_type_s
push eax
call fcn.00453c70
add esp, 0x10
call fcn.00422ae7
mov ecx, esp
mov dword [ebp - 0x40], esp
push str..data
call fcn.00421197
push ecx
mov byte [ebp - 4], 0xe
mov ecx, esp
mov dword [ebp - 0x3c], esp
push dword [ebx + 0x40]
call fcn.00421197
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 0xc
call fcn.00453fc0
add esp, 0xc
mov byte [ebp - 4], 0xf
cmp edi, 2
jne 0x42322f
push esi
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x423217
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4232ee
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x10]
call fcn.004226f7
mov dword [ebx + 0x58], 2
jmp 0x4232ee
lea eax, [ebp - 0x18]
push eax
call fcn.0046aa50
pop ecx
push 0x5c
push ecx
mov byte [ebp - 4], 0x10
mov ecx, esp
mov dword [ebp - 0x40], esp
push dword [ebx + 0x40]
call fcn.00421197
lea eax, [ebp - 0x24]
push eax
call fcn.004542b0
add esp, 0xc
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 0xc]
cmp eax, esi
je 0x4232ad
push eax
push dword [ebp - 0x24]
push ecx
call fcn.0048ca33
add esp, 0xc
test eax, eax
jne 0x4232ad
push esi
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x423293
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4232a6
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x10]
call fcn.004226f7
mov dword [ebx + 0x58], 1
mov ecx, str.TRUE:_running_from_Dropbox_dir
jmp 0x4232b2
mov ecx, str.FALSE
mov edx, dword [ebp - 0x18]
mov eax, dword [edx - 0xc]
push ecx
mov edi, esp
mov dword [ebp - 0x40], esp
push ecx
push eax
push dword [ebp - 0x24]
push edx
push str.DropboxDir:_comparing__s_to__s___d_chars_compare_:__s
push edi
call fcn.00453c70
add esp, 0x18
call fcn.00422ae7
pop ecx
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0042001a
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0042001a
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.0042001a
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.0042001a
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0042001a
push ecx
mov eax, esp
mov dword [ebp + 0xc], esp
push dword [ebx + 0x40]
push dword [ebp - 0x10]
push str.UnpackUtils_ReadIniFile:_INIs_BaseDirName_s__CarrierExeName_s
push eax
call fcn.00453c70
add esp, 0x10
call fcn.00422ae7
mov eax, dword [ebp - 0x10]
pop ecx
cmp dword [eax - 0xc], esi
jne 0x423365
push str._AppData_
lea ecx, [ebp - 0x10]
call fcn.004214a8
push ecx
mov eax, esp
mov dword [ebp + 0xc], esp
push dword [ebp - 0x10]
push str.UnpackUtils_ReadIniFile::BaseDirName:_Taking_default:__s
push eax
call fcn.00453c70
add esp, 0xc
call fcn.00422ae7
pop ecx
lea eax, [ebp - 0x10]
push eax
call fcn.0046bcd0
pop ecx
push 1
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x10]
call fcn.00423b81
mov edi, 0x4b11ac
push edi
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00422611
test eax, eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x3c]
setne byte [ebp + 0xf]
add ecx, 0xfffffff0
call fcn.0042001a
cmp byte [ebp + 0xf], 0
je 0x4233b2
push edi
lea ecx, [ebp - 0x10]
call fcn.00423c06
push 0x4b11b0
lea ecx, [ebp - 0x10]
call fcn.00423c06
push dword [ebx + 8]
lea ecx, [ebp - 0x10]
call fcn.00423c06
push 1
push ecx
lea eax, [ebp - 0x10]
mov dword [ebp + 0xc], esp
mov ecx, esp
push eax
call fcn.00421360
lea eax, [ebp - 0x2c]
push eax
call fcn.0046c600
add esp, 0xc
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x2c]
cmp dword [eax - 0xc], esi
je 0x423470
push esi
push 0x5c
lea ecx, [ebp - 0x10]
call fcn.00423b4d
cmp eax, 0xffffffff
jne 0x423409
mov eax, dword [ebp - 0x10]
mov eax, dword [eax - 0xc]
push esi
lea ecx, [ebp - 0x10]
push ecx
call fcn.00423ad1
push ecx
mov ecx, esp
mov dword [ebp - 0x40], esp
push edi
call fcn.00421197
push ecx
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x10]
mov dword [ebp - 0x3c], esp
mov ecx, esp
push eax
call fcn.00421360
push ecx
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x38], esp
mov ecx, esp
push eax
call fcn.00421360
lea edi, [ebp + 0xc]
mov byte [ebp - 4], 0x13
call fcn.00453850
add esp, 0xc
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x16
call fcn.004226f7
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.0042001a
push dword [ebp - 0x10]
call fcn.0048cb7a
pop ecx
push 0x10
mov dword [ebx + 0x3c], eax
call fcn.0047d5ba
pop ecx
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 0x17
cmp eax, esi
je 0x423498
mov esi, eax
call fcn.00466420
jmp 0x42349a
xor eax, eax
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
mov dword [ebx + 0x44], eax
call fcn.0042001a
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0042001a
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0042001a
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0042001a
mov al, 1
call fcn.00490f21
ret
push 3
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00423bc8
mov byte [ebp - 4], 8
mov edi, dword [ebp - 0x1c]
mov ebx, dword [edi - 0xc]
cmp ebx, esi
jge 0x4234f7
push 0x80070057
call fcn.00420000
cmp ebx, esi
movzx ecx, word [edi]
movzx edx, cx
jl 0x4234ed
movzx ecx, cx
push ecx
movzx edx, dx
mov ebx, esp
mov dword [ebp - 0x40], esp
push edx
movzx ecx, cx
push ecx
push dword [eax]
push str.VirtIniSettings:_incorrect_data:_Str_3_:_s__0_0x_x_d
push ebx
call fcn.00453c70
add esp, 0x14
call fcn.00422ae7
pop ecx
mov byte [ebp - 4], 2
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.0042001a
push esi
push 0x5c
push ecx
mov eax, esp
mov dword [ebp + 0xc], esp
push eax
call fcn.00452e90
pop ecx
lea eax, [ebp - 0x38]
push eax
call fcn.00454180
add esp, 0xc
mov ebx, eax
push 0x14
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
call fcn.00423bc8
mov byte [ebp - 4], 0xa
cmp dword [edi - 0xc], esi
jl 0x4234ed
push dword [eax]
movzx eax, word [edi]
push eax
lea eax, [ebp + 0xc]
push str.Virt_info_incorrect__is_VirtApp.ini_in_Unicode_format__0x_x_:_n_s
push eax
call fcn.00453c70
add esp, 0x10
push dword [ebx]
push dword [eax]
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.0042001a
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.0042001a
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.0042001a
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]