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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50aa85
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.00431bc0
push 0x51b228
push 0
call fcn.004c0605
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0x51b22c
call fcn.00426020
add esp, 8
mov ecx, 0x55ce34
push 0
push dword [0x55ce04]
push 0
call fcn.0041c6e0
lea ecx, [ebp - 0x440]
call fcn.00406ad0
mov dword [ebp - 4], 0
call fcn.00420ae0
mov ecx, eax
call fcn.00460090
mov eax, dword [0x55cea4]
test al, 1
jne 0x421639
or eax, 1
mov dword [0x55cea4], eax
mov ecx, 0x55cea0
mov byte [ebp - 4], 1
call fcn.0042d260
push 0x515580
call fcn.00463924
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x55cea0
call fcn.0042d2b0
push ebx
call fcn.0041ad90
mov ecx, eax
call fcn.00416260
push ebx
push str.lpstrCmdLine_s
call fcn.00426020
add esp, 8
call fcn.00431bc0
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 0x421698
push str.InitCloudConfig_failed.
call fcn.00426020
add esp, 4
jmp 0x421735
push str.InitCloudConfig_success.
call fcn.00426020
mov esi, esp
mov dword [ebp - 0x42c], esp
mov dword [ebp - 0x428], esi
call fcn.00404f50
mov ecx, eax
test ecx, ecx
je 0x421f86
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.00404320
test al, al
jne 0x42170e
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4216f0
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.00405710
mov byte [ebp - 4], 3
call fcn.0041ad90
mov ecx, eax
mov byte [ebp - 4], 0
call fcn.00416180
mov esi, dword [edi]
call fcn.0041ad90
mov ecx, eax
call fcn.00418ac0
push eax
push edi
call dword [esi + 0x54]
call fcn.0041ad90
mov ecx, eax
call fcn.00418ac0
push eax
call fcn.0042cc80
mov ecx, dword [0x55a468]
xor bl, bl
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ecx, ecx
jne 0x4217b4
push 0x552d84
call edi
cmp dword [0x55a468], 0
jne 0x4217a3
push 0x98
call fcn.0042dc90
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x42178d
mov ecx, eax
call fcn.004126e0
jmp 0x42178f
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.00418140
mov esi, dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test al, al
je 0x421865
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 0x421865
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x428], 1
push 0
push eax
mov dword [ebp - 0x42c], 0x104
call fcn.00492110
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 0x421865
mov bl, 1
jmp 0x421977
mov ecx, dword [0x55a468]
test ecx, ecx
jne 0x4218ca
push 0x552d84
call edi
cmp dword [0x55a468], 0
jne 0x4218b9
push 0x98
call fcn.0042dc90
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x4218a3
mov ecx, eax
call fcn.004126e0
jmp 0x4218a5
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.00418140
test al, al
jne 0x421977
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 0x421977
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x428], 1
push 0
push eax
mov dword [ebp - 0x42c], 0x104
call fcn.00492110
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.00492110
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 0x421a3d
mov ecx, dword [0x55a468]
test ecx, ecx
jne 0x421a30
push 0x552d84
call edi
cmp dword [0x55a468], 0
jne 0x421a1f
push 0x98
call fcn.0042dc90
add esp, 4
mov dword [ebp - 0x42c], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x421a09
mov ecx, eax
call fcn.004126e0
jmp 0x421a0b
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.004182f0
test al, al
jne 0x421dce
call fcn.00404f50
mov ecx, eax
test ecx, ecx
je 0x421f90
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.00420180
add esp, 4
test eax, eax
jle 0x421cbc
test bl, bl
jne 0x421cbc
call fcn.0041ad90
mov ecx, eax
call fcn.00415e30
push eax
call fcn.00420b70
mov ecx, eax
call fcn.004093a0
push str.installpkg
call fcn.00420b70
mov ecx, eax
call fcn.004093b0
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00492110
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.00420b70
mov ecx, eax
call fcn.00409310
call fcn.0041ad90
mov ecx, eax
call fcn.00418140
or edi, 0xffffffff
test al, al
je 0x421b7a
call fcn.00404f50
mov ecx, eax
test ecx, ecx
je 0x421f9a
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.00404320
test al, al
jne 0x421b42
push 8
push str.in_write
lea ecx, [ebp - 0x424]
call fcn.00405710
lea eax, [ebp - 0x424]
mov byte [ebp - 4], 0xa
push eax
call fcn.00420b70
mov ecx, eax
call fcn.00409300
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 0x421b7a
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 0x421bf8
push 0x55314c
call esi
cmp dword [0x55ce9c], 0
jne 0x421be7
push 0x20
call fcn.0042dc90
add esp, 4
mov dword [ebp - 0x428], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x421bd1
mov ecx, eax
call fcn.00407950
jmp 0x421bd3
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.00408ff0
call fcn.00420ed0
mov ebx, eax
test ebx, ebx
je 0x421c48
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 0x421dd6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421dd6
call fcn.00421140
test eax, eax
jne 0x421c7b
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 0x421dd6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421dd6
push dword [ebp + 0x14]
push dword [ebp - 0x43c]
push dword [ebp - 0x438]
call fcn.004235c0
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 0x421dd6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421dd6
or edi, 0xffffffff
test eax, eax
jns 0x421cd6
push 0
push 0x51b274
push 0
call fcn.0042cc90
jmp 0x421da8
lea eax, [ebp - 0x424]
push eax
call fcn.0041ad90
mov ecx, eax
call fcn.00415e50
mov byte [ebp - 4], 8
call fcn.00431bc0
lea ecx, [ebp - 0x434]
push ecx
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x58]
call fcn.00431bc0
push ecx
mov ecx, esp
mov esi, eax
push 0x51b290
lea eax, [ebp - 0x434]
push eax
push ecx
call fcn.0041f710
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 0x421d46
push dword [eax - 0xc]
lea ecx, [ebp - 0x424]
call fcn.00404ea0
mov eax, dword [ebp - 0x424]
push eax
push str.RunApp_cmdLine:__s
call fcn.00426020
add esp, 8
call fcn.00431bc0
mov ecx, dword [ebp - 0x424]
mov esi, eax
cmp dword [ecx - 4], 1
jle 0x421d7b
push dword [ecx - 0xc]
lea ecx, [ebp - 0x424]
call fcn.00404ea0
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 0x421da8
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 0x421dd0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421dd0
xor ebx, ebx
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x55cea4]
test al, 1
jne 0x421e06
or eax, 1
mov dword [0x55cea4], eax
mov ecx, 0x55cea0
mov byte [ebp - 4], 0xd
call fcn.0042d260
push 0x515580
call fcn.00463924
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x55cea0
call fcn.0042d720
call fcn.00420ae0
mov ecx, eax
call fcn.00460200
call fcn.00432480
mov ecx, 0x55ce70
call fcn.00407820
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 0x421e94
cmp dword [esi + 4], 0
jle 0x421e62
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x55ce6c]
test esi, esi
je 0x421e94
mov eax, dword [esi]
test eax, eax
je 0x421e7b
push eax
call fcn.004bc656
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.00463529
add esp, 8
push edi
mov dword [0x55ce6c], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x55ce68]
test esi, esi
je 0x421eed
mov eax, dword [esi]
test eax, eax
je 0x421ec4
push eax
call fcn.004bc656
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x421edb
push eax
call fcn.004bc656
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.00463529
add esp, 8
mov esi, dword [0x55ce60]
test esi, esi
je 0x421f23
cmp dword [esi], 0
je 0x421f23
nop dword [eax]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x421f0d
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 0x421f00
mov esi, dword [0x552fec]
mov ecx, dword [0x552ff0]
cmp esi, ecx
jae 0x421f4d
mov eax, dword [esi]
test eax, eax
je 0x421f46
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x552ff0]
add esi, 4
cmp esi, ecx
jb 0x421f33
mov ecx, 0x55ce34
call fcn.00423b50
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x440]
call fcn.00406b10
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.00463518
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00404300
push 0x80004005
call fcn.00404300
push 0x80004005
call fcn.00404300
int3