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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50afb5
mov eax, dword fs:[0]
push eax
sub esp, 0x434
mov eax, dword [0x5555ac]
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 [0x55ce04], 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.00431c30
push 0x51b228
push 0
call fcn.004c0b35
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0x51b22c
call fcn.00426060
add esp, 8
mov ecx, 0x55ce34
push 0
push dword [0x55ce04]
push 0
call fcn.0041c710
lea ecx, [ebp - 0x440]
call fcn.00406b10
mov dword [ebp - 4], 0
call fcn.00420b10
mov ecx, eax
call fcn.004605d0
mov eax, dword [0x55cea4]
test al, 1
jne 0x421679
or eax, 1
mov dword [0x55cea4], eax
mov ecx, 0x55cea0
mov byte [ebp - 4], 1
call fcn.0042d2a0
push 0x515b20
call fcn.00463e64
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x55cea0
call fcn.0042d2f0
push ebx
call fcn.0041add0
mov ecx, eax
call fcn.004162b0
push ebx
push str.lpstrCmdLine_s
call fcn.00426060
add esp, 8
call fcn.00431c30
lea ecx, [ebp - 0x420]
mov edi, eax
push ecx
push str.DLL_NETUL
push 0xcc
push dword [0x55ce04]
mov eax, dword [edi]
push edi
call dword [eax + 8]
test eax, eax
jne 0x4216d8
push str.InitCloudConfig_failed.
call fcn.00426060
add esp, 4
jmp 0x421775
push str.InitCloudConfig_success.
call fcn.00426060
mov esi, esp
mov dword [ebp - 0x42c], esp
mov dword [ebp - 0x428], esi
call fcn.00404f90
mov ecx, eax
test ecx, ecx
je 0x421fc6
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 0x42174e
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421730
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.0041add0
mov ecx, eax
mov byte [ebp - 4], 0
call fcn.004161d0
mov esi, dword [edi]
call fcn.0041add0
mov ecx, eax
call fcn.00418b10
push eax
push edi
call dword [esi + 0x54]
call fcn.0041add0
mov ecx, eax
call fcn.00418b10
push eax
call fcn.0042ccc0
mov ecx, dword [0x55a468]
xor bl, bl
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ecx, ecx
jne 0x4217f4
push 0x552d84
call edi
cmp dword [0x55a468], 0
jne 0x4217e3
push 0x98
call fcn.0042dcd0
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x4217cd
mov ecx, eax
call fcn.00412730
jmp 0x4217cf
xor eax, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x55a468], eax
push 0x552d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x55a468]
call fcn.00418190
mov esi, dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test al, al
je 0x4218a5
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.SOFTWARESmartWriter
push reloc.OLEAUT32.dll_SysReAllocString
call esi
cmp dword [ebp - 0x42c], 1
je 0x4218a5
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x428], 1
push 0
push eax
mov dword [ebp - 0x42c], 0x104
call fcn.00492640
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.SOFTWARESmartWriter
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x4218a5
mov bl, 1
jmp 0x4219b7
mov ecx, dword [0x55a468]
test ecx, ecx
jne 0x42190a
push 0x552d84
call edi
cmp dword [0x55a468], 0
jne 0x4218f9
push 0x98
call fcn.0042dcd0
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x4218e3
mov ecx, eax
call fcn.00412730
jmp 0x4218e5
xor eax, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x55a468], eax
push 0x552d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x55a468]
call fcn.00418190
test al, al
jne 0x4219b7
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.SOFTWARESmartWriter
push reloc.OLEAUT32.dll_SysReAllocString
call esi
cmp dword [ebp - 0x424], 1
jne 0x4219b7
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x428], 1
push 0
push eax
mov dword [ebp - 0x42c], 0x104
call fcn.00492640
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.SOFTWARESmartWriter
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.00492640
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.SOFTWARESmartWriter
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x421a7d
mov ecx, dword [0x55a468]
test ecx, ecx
jne 0x421a70
push 0x552d84
call edi
cmp dword [0x55a468], 0
jne 0x421a5f
push 0x98
call fcn.0042dcd0
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x421a49
mov ecx, eax
call fcn.00412730
jmp 0x421a4b
xor eax, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x55a468], eax
push 0x552d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x55a468]
call fcn.00418340
test al, al
jne 0x421e0e
call fcn.00404f90
mov ecx, eax
test ecx, ecx
je 0x421fd0
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.004201b0
add esp, 4
test eax, eax
jle 0x421cfc
test bl, bl
jne 0x421cfc
call fcn.0041add0
mov ecx, eax
call fcn.00415e80
push eax
call fcn.00420ba0
mov ecx, eax
call fcn.004093e0
push str.installpkg
call fcn.00420ba0
mov ecx, eax
call fcn.004093f0
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00492640
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push dword [0x55ce04]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call fcn.00420ba0
mov ecx, eax
call fcn.00409350
call fcn.0041add0
mov ecx, eax
call fcn.00418190
or edi, 0xffffffff
test al, al
je 0x421bba
call fcn.00404f90
mov ecx, eax
test ecx, ecx
je 0x421fda
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x424], eax
push str.in_write
lea ecx, [ebp - 0x424]
mov byte [ebp - 4], 9
call fcn.00404360
test al, al
jne 0x421b82
push 8
push str.in_write
lea ecx, [ebp - 0x424]
call fcn.00405750
lea eax, [ebp - 0x424]
mov byte [ebp - 4], 0xa
push eax
call fcn.00420ba0
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 0x421bba
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 [0x55ce9c]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0xb
test ecx, ecx
jne 0x421c38
push 0x55314c
call esi
cmp dword [0x55ce9c], 0
jne 0x421c27
push 0x20
call fcn.0042dcd0
add esp, 4
mov dword [ebp - 0x428], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x421c11
mov ecx, eax
call fcn.00407990
jmp 0x421c13
xor eax, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x42c]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x55ce9c], eax
push 0x55314c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x55ce9c]
push 0
push 0
push 0x51b2e8
mov byte [ebp - 4], 7
call fcn.00409030
call fcn.00420f10
mov ebx, eax
test ebx, ebx
je 0x421c88
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 0x421e16
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421e16
call fcn.00421180
test eax, eax
jne 0x421cbb
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 0x421e16
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421e16
push dword [ebp + 0x14]
push dword [ebp - 0x43c]
push dword [ebp - 0x438]
call fcn.00423600
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 0x421e16
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421e16
or edi, 0xffffffff
test eax, eax
jns 0x421d16
push 0
push 0x51b274
push 0
call fcn.0042ccd0
jmp 0x421de8
lea eax, [ebp - 0x424]
push eax
call fcn.0041add0
mov ecx, eax
call fcn.00415ea0
mov byte [ebp - 4], 8
call fcn.00431c30
lea ecx, [ebp - 0x434]
push ecx
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x58]
call fcn.00431c30
push ecx
mov ecx, esp
mov esi, eax
push 0x51b290
lea eax, [ebp - 0x434]
push eax
push ecx
call fcn.0041f740
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 0x421d86
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.00426060
add esp, 8
call fcn.00431c30
mov ecx, dword [ebp - 0x424]
mov esi, eax
cmp dword [ecx - 4], 1
jle 0x421dbb
push dword [ecx - 0xc]
lea ecx, [ebp - 0x424]
call fcn.00404ee0
mov ecx, dword [ebp - 0x424]
mov eax, dword [esi]
push ecx
push str.SmartWriter.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 0x421de8
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 0x421e10
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421e10
xor ebx, ebx
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x55cea4]
test al, 1
jne 0x421e46
or eax, 1
mov dword [0x55cea4], eax
mov ecx, 0x55cea0
mov byte [ebp - 4], 0xd
call fcn.0042d2a0
push 0x515b20
call fcn.00463e64
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x55cea0
call fcn.0042d760
call fcn.00420b10
mov ecx, eax
call fcn.00460740
call fcn.004324f0
mov ecx, 0x55ce70
call fcn.00407860
push 0x5dc
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [0x55ce00]
add edi, 0x10
push edi
call esi
mov esi, dword [0x55ce6c]
test esi, esi
je 0x421ed4
cmp dword [esi + 4], 0
jle 0x421ea2
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x55ce6c]
test esi, esi
je 0x421ed4
mov eax, dword [esi]
test eax, eax
je 0x421ebb
push eax
call fcn.004bcb86
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.00463a69
add esp, 8
push edi
mov dword [0x55ce6c], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x55ce68]
test esi, esi
je 0x421f2d
mov eax, dword [esi]
test eax, eax
je 0x421f04
push eax
call fcn.004bcb86
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x421f1b
push eax
call fcn.004bcb86
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.00463a69
add esp, 8
mov esi, dword [0x55ce60]
test esi, esi
je 0x421f63
cmp dword [esi], 0
je 0x421f63
nop dword [eax]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x421f4d
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 0x421f40
mov esi, dword [0x552fec]
mov ecx, dword [0x552ff0]
cmp esi, ecx
jae 0x421f8d
mov eax, dword [esi]
test eax, eax
je 0x421f86
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x552ff0]
add esi, 4
cmp esi, ecx
jb 0x421f73
mov ecx, 0x55ce34
call fcn.00423b90
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.00463a58
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00404340
push 0x80004005
call fcn.00404340
push 0x80004005
call fcn.00404340
int3