Function at 0x421970
Capabilities:
Accept command line arguments
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50b845
mov eax, dword fs:[0]
push eax
sub esp, 0x434
mov eax, dword [0x55758c]
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 eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x10]
push 0
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x43c], ecx
mov dword [0x55ede4], eax
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 - 0x430]
mov dword [ebp - 0x430], 8
push eax
mov dword [ebp - 0x42c], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.00432440
push 0x51c33c
push 0
call fcn.004c1355
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0x51c340
call fcn.004265f0
add esp, 8
mov ecx, 0x55ee14
push 0
push dword [0x55ede4]
push 0
call fcn.0041caf0
lea ecx, [ebp - 0x440]
call fcn.00406b10
mov dword [ebp - 4], 0
call fcn.00420f20
mov ecx, eax
call fcn.00460df0
mov eax, dword [0x55ee84]
test al, 1
jne 0x421a79
or eax, 1
mov dword [0x55ee84], eax
mov ecx, 0x55ee80
mov byte [ebp - 4], 1
call fcn.0042dac0
push 0x516420
call fcn.00464684
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x55ee80
call fcn.0042db10
push ebx
call fcn.0041b1b0
mov ecx, eax
call fcn.00416850
push ebx
push str.lpstrCmdLine_s
call fcn.004265f0
add esp, 8
call fcn.00432440
lea ecx, [ebp - 0x420]
mov edi, eax
push ecx
push str.DLL_NETUL
push 0xcc
push dword [0x55ede4]
mov eax, dword [edi]
push edi
call dword [eax + 8]
test eax, eax
jne 0x421ad8
push str.InitCloudConfig_failed.
call fcn.004265f0
add esp, 4
jmp 0x421b75
push str.InitCloudConfig_success.
call fcn.004265f0
mov esi, esp
mov dword [ebp - 0x42c], esp
mov dword [ebp - 0x428], esi
call fcn.00404f90
mov ecx, eax
test ecx, ecx
je 0x4223c6
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.00404360
test al, al
jne 0x421b4e
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421b30
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.00405750
mov byte [ebp - 4], 3
call fcn.0041b1b0
mov ecx, eax
mov byte [ebp - 4], 0
call fcn.00416770
mov esi, dword [edi]
call fcn.0041b1b0
mov ecx, eax
call fcn.00418ee0
push eax
push edi
call dword [esi + 0x54]
call fcn.0041b1b0
mov ecx, eax
call fcn.00418ee0
push eax
call fcn.0042d4e0
mov ecx, dword [0x55c448]
xor bl, bl
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ecx, ecx
jne 0x421bf4
push 0x554d84
call edi
cmp dword [0x55c448], 0
jne 0x421be3
push 0x94
call fcn.0042e4e0
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x421bcd
mov ecx, eax
call fcn.00412ce0
jmp 0x421bcf
xor eax, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x55c448], eax
push 0x554d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x55c448]
call fcn.00418650
mov esi, dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test al, al
je 0x421ca5
lea eax, [ebp - 0x424]
mov dword [ebp - 0x428], 4
push eax
lea eax, [ebp - 0x42c]
mov dword [ebp - 0x424], 0x104
push eax
lea eax, [ebp - 0x428]
push eax
push str.em_lds
push str.SOFTWARESmartChat
push reloc.OLEAUT32.dll_SysReAllocString
call esi
cmp dword [ebp - 0x42c], 1
je 0x421ca5
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x428], 1
push 0
push eax
mov dword [ebp - 0x42c], 0x104
call fcn.00492e60
add esp, 0xc
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x428]
push eax
push str.Setup_Path
push str.SOFTWARESmartChat
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x421ca5
mov bl, 1
jmp 0x421db7
mov ecx, dword [0x55c448]
test ecx, ecx
jne 0x421d0a
push 0x554d84
call edi
cmp dword [0x55c448], 0
jne 0x421cf9
push 0x94
call fcn.0042e4e0
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x421ce3
mov ecx, eax
call fcn.00412ce0
jmp 0x421ce5
xor eax, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x55c448], eax
push 0x554d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x55c448]
call fcn.00418650
test al, al
jne 0x421db7
lea eax, [ebp - 0x42c]
mov dword [ebp - 0x428], 4
push eax
lea eax, [ebp - 0x424]
mov dword [ebp - 0x42c], 0x104
push eax
lea eax, [ebp - 0x428]
push eax
push str.em_lds
push str.SOFTWARESmartChat
push reloc.OLEAUT32.dll_SysReAllocString
call esi
cmp dword [ebp - 0x424], 1
jne 0x421db7
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x428], 1
push 0
push eax
mov dword [ebp - 0x42c], 0x104
call fcn.00492e60
add esp, 0xc
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x428]
push eax
push str.Setup_Path
push str.SOFTWARESmartChat
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
movzx ebx, bl
mov ecx, 1
cmove ebx, ecx
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x428], 1
push 0
push eax
mov dword [ebp - 0x42c], 0x104
call fcn.00492e60
add esp, 0xc
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x428]
push eax
push str.Setup_Path
push str.SOFTWARESmartChat
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x421e7d
mov ecx, dword [0x55c448]
test ecx, ecx
jne 0x421e70
push 0x554d84
call edi
cmp dword [0x55c448], 0
jne 0x421e5f
push 0x94
call fcn.0042e4e0
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x421e49
mov ecx, eax
call fcn.00412ce0
jmp 0x421e4b
xor eax, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x55c448], eax
push 0x554d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x55c448]
call fcn.00418800
test al, al
jne 0x42220e
call fcn.00404f90
mov ecx, eax
test ecx, ecx
je 0x4223d0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x434], eax
lea eax, [ebp - 0x434]
mov byte [ebp - 4], 7
push eax
call fcn.004205c0
add esp, 4
test eax, eax
jle 0x4220fc
test bl, bl
jne 0x4220fc
call fcn.0041b1b0
mov ecx, eax
call fcn.00416420
push eax
call fcn.00420fb0
mov ecx, eax
call fcn.004093e0
push str.installpkg
call fcn.00420fb0
mov ecx, eax
call fcn.004093f0
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00492e60
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push dword [0x55ede4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call fcn.00420fb0
mov ecx, eax
call fcn.00409350
call fcn.0041b1b0
mov ecx, eax
call fcn.00418650
or edi, 0xffffffff
test al, al
je 0x421fba
call fcn.00404f90
mov ecx, eax
test ecx, ecx
je 0x4223da
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x424], eax
push str.in_chat
lea ecx, [ebp - 0x424]
mov byte [ebp - 4], 9
call fcn.00404360
test al, al
jne 0x421f82
push 7
push str.in_chat
lea ecx, [ebp - 0x424]
call fcn.00405750
lea eax, [ebp - 0x424]
mov byte [ebp - 4], 0xa
push eax
call fcn.00420fb0
mov ecx, eax
call fcn.00409340
mov edx, dword [ebp - 0x424]
mov eax, edi
mov byte [ebp - 4], 7
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x421fba
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x42c], esp
mov dword [eax + 0x24], 0
mov ecx, dword [0x55ee7c]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0xb
test ecx, ecx
jne 0x422038
push 0x55512c
call esi
cmp dword [0x55ee7c], 0
jne 0x422027
push 0x20
call fcn.0042e4e0
add esp, 4
mov dword [ebp - 0x428], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x422011
mov ecx, eax
call fcn.00407990
jmp 0x422013
xor eax, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x55ee7c], eax
push 0x55512c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x55ee7c]
push 0
push 0
push 0x51c3f8
mov byte [ebp - 4], 7
call fcn.00409030
call fcn.00421310
mov ebx, eax
test ebx, ebx
je 0x422088
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [ebp - 0x434]
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x422216
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x422216
call fcn.00421580
test eax, eax
jne 0x4220bb
mov edx, dword [ebp - 0x434]
lea ebx, [eax + 0xe]
mov byte [ebp - 4], al
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x422216
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x422216
push dword [ebp + 0x14]
push dword [ebp - 0x43c]
push dword [ebp - 0x438]
call fcn.00423a00
mov edx, dword [ebp - 0x434]
add esp, 0xc
mov ebx, eax
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x422216
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x422216
or edi, 0xffffffff
test eax, eax
jns 0x422116
push 0
push 0x51c388
push 0
call fcn.0042d4f0
jmp 0x4221e8
lea eax, [ebp - 0x424]
push eax
call fcn.0041b1b0
mov ecx, eax
call fcn.00416440
mov byte [ebp - 4], 8
call fcn.00432440
lea ecx, [ebp - 0x434]
push ecx
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x58]
call fcn.00432440
push ecx
mov ecx, esp
mov esi, eax
push 0x51c3a4
lea eax, [ebp - 0x434]
push eax
push ecx
call fcn.0041fb50
mov eax, dword [esi]
add esp, 0xc
mov ecx, esi
call dword [eax + 0x5c]
mov eax, dword [ebp - 0x424]
cmp dword [eax - 4], 1
jle 0x422186
push dword [eax - 0xc]
lea ecx, [ebp - 0x424]
call fcn.00404ee0
mov eax, dword [ebp - 0x424]
push eax
push str.RunApp_cmdLine:__s
call fcn.004265f0
add esp, 8
call fcn.00432440
mov ecx, dword [ebp - 0x424]
mov esi, eax
cmp dword [ecx - 4], 1
jle 0x4221bb
push dword [ecx - 0xc]
lea ecx, [ebp - 0x424]
call fcn.00404ee0
mov ecx, dword [ebp - 0x424]
mov eax, dword [esi]
push ecx
push str.SmartChat.exe
push esi
call dword [eax + 0x3c]
mov edx, dword [ebp - 0x424]
mov eax, edi
mov byte [ebp - 4], 7
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4221e8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x434]
mov ebx, 0x10
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x422210
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x422210
xor ebx, ebx
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x55ee84]
test al, 1
jne 0x422246
or eax, 1
mov dword [0x55ee84], eax
mov ecx, 0x55ee80
mov byte [ebp - 4], 0xd
call fcn.0042dac0
push 0x516420
call fcn.00464684
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x55ee80
call fcn.0042df60
call fcn.00420f20
mov ecx, eax
call fcn.00460f60
call fcn.00432d00
mov ecx, 0x55ee50
call fcn.00407860
push 0x5dc
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [0x55ede0]
add edi, 0x10
push edi
call esi
mov esi, dword [0x55ee4c]
test esi, esi
je 0x4222d4
cmp dword [esi + 4], 0
jle 0x4222a2
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x55ee4c]
test esi, esi
je 0x4222d4
mov eax, dword [esi]
test eax, eax
je 0x4222bb
push eax
call fcn.004bd3a6
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.00464289
add esp, 8
push edi
mov dword [0x55ee4c], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x55ee48]
test esi, esi
je 0x42232d
mov eax, dword [esi]
test eax, eax
je 0x422304
push eax
call fcn.004bd3a6
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x42231b
push eax
call fcn.004bd3a6
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.00464289
add esp, 8
mov esi, dword [0x55ee40]
test esi, esi
je 0x422363
cmp dword [esi], 0
je 0x422363
nop dword [eax]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x42234d
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 0x422340
mov esi, dword [0x554fcc]
mov ecx, dword [0x554fd0]
cmp esi, ecx
jae 0x42238d
mov eax, dword [esi]
test eax, eax
je 0x422386
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x554fd0]
add esi, 4
cmp esi, ecx
jb 0x422373
mov ecx, 0x55ee14
call fcn.00423f90
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x440]
call fcn.00406b50
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.00464278
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00404340
push 0x80004005
call fcn.00404340
push 0x80004005
call fcn.00404340
int3