Function at 0x4219c0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ea060
mov eax, dword fs:[0]
push eax
sub esp, 0x630
mov eax, dword [0x5315d4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0x10]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0x638]
mov dword [ebp - 0x638], 8
push eax
mov dword [ebp - 0x634], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.0042f950
push 0x4f813c
push 0
call fcn.004a0225
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0x4f8140
call fcn.004257f0
add esp, 8
mov ecx, 0x5374a4
push 0
push dword [0x537490]
push 0
call fcn.00421290
lea ecx, [ebp - 0x63c]
call fcn.00406bc0
mov dword [ebp - 4], 0
call fcn.00421120
mov ecx, eax
call fcn.0045d850
mov eax, dword [0x537530]
test al, 1
jne 0x421ab2
or eax, 1
mov dword [0x537530], eax
mov ecx, 0x53752c
mov byte [ebp - 4], 1
call fcn.0042cfc0
push 0x4f2e30
call fcn.004658b4
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x53752c
call fcn.0042d010
push ebx
call fcn.00421090
mov ecx, eax
call fcn.004184d0
push ebx
push str.lpstrCmdLine_s
call fcn.004257f0
add esp, 8
call fcn.0042f950
lea ecx, [ebp - 0x420]
mov edi, eax
push ecx
push str.DLL_NETUL
push 0xcc
push dword [0x537490]
mov eax, dword [edi]
push edi
call dword [eax + 8]
test eax, eax
jne 0x421b11
push str.InitCloudConfig_failed.
call fcn.004257f0
add esp, 4
jmp 0x421ba6
push str.InitCloudConfig_success.
call fcn.004257f0
mov esi, esp
mov dword [ebp - 0x630], esp
mov dword [ebp - 0x62c], esi
call fcn.00404ec0
mov ecx, eax
test ecx, ecx
je 0x42213c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x420]
mov byte [ebp - 4], 2
push eax
mov ecx, esi
call fcn.004042b0
test al, al
jne 0x421b7f
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421b61
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.00405820
mov byte [ebp - 4], 3
call fcn.00421090
mov ecx, eax
mov byte [ebp - 4], 0
call fcn.004183f0
mov esi, dword [edi]
call fcn.00421090
mov ecx, eax
call fcn.00419db0
push eax
push edi
call dword [esi + 0x54]
call fcn.00421090
mov ecx, eax
call fcn.00419db0
push eax
call fcn.0042c700
call fcn.004117b0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test eax, eax
je 0x421bf1
push str.xp_sp2
call fcn.004257f0
add esp, 4
push 0
push 0
push 0
push 0x4f8198
push 0
call fcn.0042c710
jmp 0x421df1
mov ecx, 0x5374e0
call fcn.00407130
test eax, eax
jne 0x421c23
push str.CheckSingleInstance_failed__exit
call fcn.004257f0
add esp, 4
push 0
push 0
push 0
push 0x4f81f4
push 0
call fcn.0042c710
jmp 0x421df1
call fcn.00404ec0
mov ecx, eax
test ecx, ecx
je 0x422146
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x630], eax
lea eax, [ebp - 0x630]
mov byte [ebp - 4], 4
push eax
call fcn.00420620
mov esi, eax
push esi
push str.CheckVersion_ret:_d
call fcn.004257f0
add esp, 0xc
test esi, esi
jg 0x421f9b
jns 0x421c7c
push 0
push 0
push 0
push 0x4f8238
push 0
call fcn.0042c710
call fcn.00421090
mov ecx, eax
call fcn.00419bb0
mov esi, eax
lea eax, [ebp - 0x62c]
push eax
call fcn.00421090
mov ecx, eax
call fcn.00418160
mov byte [ebp - 4], 5
test esi, esi
jne 0x421da8
call fcn.0042f950
lea ecx, [ebp - 0x630]
push ecx
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x5c]
call fcn.0042f950
push ecx
mov esi, eax
lea ecx, [ebp - 0x630]
mov eax, esp
push 0x4f825c
push ecx
push eax
call fcn.0041fbe0
mov eax, dword [esi]
add esp, 0xc
mov ecx, esi
call dword [eax + 0x60]
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.00471c10
add esp, 0xc
call fcn.0042f950
push 0x104
lea edx, [ebp - 0x628]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x48]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00471c10
add esp, 0xc
lea eax, [ebp - 0x628]
push 0x4f5b6c
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov eax, dword [ebp - 0x62c]
cmp dword [eax - 4], 1
jle 0x421d5e
push dword [eax - 0xc]
lea ecx, [ebp - 0x62c]
call fcn.00404e10
mov eax, dword [ebp - 0x62c]
push eax
push str.RunApp_cmdLine:__s
call fcn.004257f0
add esp, 8
call fcn.0042f950
mov esi, eax
mov eax, dword [ebp - 0x62c]
cmp dword [eax - 4], 1
jle 0x421d93
push dword [eax - 0xc]
lea ecx, [ebp - 0x62c]
call fcn.00404e10
mov eax, dword [ebp - 0x62c]
mov ecx, dword [esi]
lea edx, [ebp - 0x628]
push edx
push eax
lea eax, [ebp - 0x218]
push eax
push esi
call dword [ecx + 0x40]
mov edx, dword [ebp - 0x62c]
or esi, 0xffffffff
mov byte [ebp - 4], 4
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x421dcc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x630]
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x421deb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor ebx, ebx
mov eax, dword [0x537530]
test al, 1
jne 0x421e23
or eax, 1
mov dword [0x537530], eax
mov ecx, 0x53752c
mov byte [ebp - 4], 0x20
call fcn.0042cfc0
push 0x4f2e30
call fcn.004658b4
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x53752c
call fcn.0042d3f0
call fcn.00421120
mov ecx, eax
call fcn.0045d9c0
call fcn.004305f0
push 0x7d0
call edi
mov ecx, 0x5374e0
call fcn.00407320
mov edi, dword [0x53750c]
add edi, 0x10
push edi
call esi
mov esi, dword [0x5374dc]
test esi, esi
je 0x421ead
cmp dword [esi + 4], 0
jle 0x421e7b
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x5374dc]
test esi, esi
je 0x421ead
mov eax, dword [esi]
test eax, eax
je 0x421e94
push eax
call fcn.0048ee56
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.004654b9
add esp, 8
push edi
mov dword [0x5374dc], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x5374d8]
test esi, esi
je 0x421f06
mov eax, dword [esi]
test eax, eax
je 0x421edd
push eax
call fcn.0048ee56
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x421ef4
push eax
call fcn.0048ee56
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.004654b9
add esp, 8
mov esi, dword [0x5374d0]
test esi, esi
je 0x421f38
cmp dword [esi], 0
je 0x421f38
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x421f22
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esi + 0x20]
push 0
mov dword [esi + 0x10], 0
call eax
add esi, 0x24
cmp dword [esi], 0
jne 0x421f15
mov esi, dword [0x52f068]
mov ecx, dword [0x52f06c]
cmp esi, ecx
jae 0x421f62
mov eax, dword [esi]
test eax, eax
je 0x421f5b
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x52f06c]
add esi, 4
cmp esi, ecx
jb 0x421f48
mov ecx, 0x5374a4
call fcn.00423a90
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x63c]
call fcn.00406c00
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004654a8
mov esp, ebp
pop ebp
ret
cmp esi, 1
jne 0x421fa8
call fcn.0042f950
push esi
jmp 0x421fb4
cmp esi, 2
jne 0x421fba
call fcn.0042f950
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x58]
call fcn.00421090
mov ecx, eax
call fcn.00418140
push eax
call fcn.004211b0
mov ecx, eax
call fcn.0040ab60
push str.installpkgfull
call fcn.004211b0
mov ecx, eax
call fcn.0040abd0
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00471c10
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push dword [0x537490]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call fcn.004211b0
mov ecx, eax
call fcn.0040aad0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x634], esp
mov dword [eax + 0x24], 0
mov ecx, dword [0x537524]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 6
test ecx, ecx
jne 0x4220a3
push 0x52f08c
call esi
cmp dword [0x537524], 0
jne 0x422092
push 0x20
call fcn.0042d9f0
add esp, 4
mov dword [ebp - 0x62c], eax
mov byte [ebp - 4], 7
test eax, eax
je 0x42207c
mov ecx, eax
call fcn.00409940
jmp 0x42207e
xor eax, eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x634]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x537524], eax
push 0x52f08c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x537524]
push 0
push 0
push 0x4f82b4
mov byte [ebp - 4], 4
call fcn.0040a7c0
call fcn.004214f0
test eax, eax
jne 0x4220fa
mov ecx, 0x5374e0
call fcn.00407320
push 0xbb8
call edi
mov edx, dword [ebp - 0x630]
or eax, 0xffffffff
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x421df1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421df1
call fcn.00421740
test eax, eax
je 0x4220cf
push dword [ebp + 0x14]
push ebx
call fcn.00423570
mov edx, dword [ebp - 0x630]
add esp, 8
mov ebx, eax
mov byte [ebp - 4], 0
add edx, 0xfffffff0
or ecx, 0xffffffff
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x421df3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421df3
push 0x80004005
call fcn.00404290
push 0x80004005
call fcn.00404290
int3