Function at 0x42daa0
Capabilities:
Accept command line arguments
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52016e
mov eax, dword fs:[0]
push eax
sub esp, 0x25c
mov eax, dword [0x57c8b4]
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 6
push 0
mov dword [ebp - 0x228], ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0x224]
mov dword [ebp - 0x224], 8
push eax
mov dword [ebp - 0x220], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0x539b5c
push 0
call fcn.004d6f75
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push 0x539b60
call fcn.00436ff0
add esp, 8
mov ecx, 0x583d60
push 0
push dword [0x57fc98]
push 0
call fcn.0042c7d0
lea ecx, [ebp - 0x22c]
call fcn.0040d6c0
mov dword [ebp - 4], 0
call fcn.0042c490
mov ecx, eax
call fcn.0047f520
mov eax, dword [0x583de4]
test al, 1
jne 0x42db95
or eax, 1
mov dword [0x583de4], eax
mov ecx, 0x583de0
mov byte [ebp - 4], 1
call fcn.0043e420
push 0x52fcd0
call fcn.0049067c
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x583de0
call fcn.0043e470
push ebx
call fcn.0042c380
mov ecx, eax
call fcn.00421a20
push ebx
push str.lpstrCmdLine_s
call fcn.00436ff0
add esp, 8
call fcn.0042c380
mov ecx, eax
call fcn.00423050
push eax
call fcn.0043ddc0
mov ecx, 0x583d9c
call fcn.0040de90
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test eax, eax
jne 0x42dc02
push str.CheckSingleInstance_failed__exit
call fcn.00436ff0
add esp, 4
push 0
push 0
push 0x539bec
push 0
call fcn.0043ddd0
jmp 0x42e084
call fcn.0042b8b0
test eax, eax
jne 0x42dc1d
push eax
push eax
push 0x539c08
push eax
call fcn.0043ddd0
jmp 0x42e084
call fcn.0042c380
mov ecx, eax
call fcn.004214c0
push eax
call fcn.0041c940
mov ecx, eax
call fcn.00416fb0
push str.bizhi
call fcn.0041c940
mov ecx, eax
call fcn.00417070
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004a99f0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push dword [0x57fc98]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call fcn.0041c940
mov ecx, eax
call fcn.00416f20
mov edx, dword [0x583ddc]
mov edi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
test edx, edx
jne 0x42dced
push 0x57b310
call ebx
cmp dword [0x583ddc], 0
jne 0x42dcd4
push 0x1c
call fcn.004402f0
mov esi, eax
add esp, 4
mov dword [ebp - 0x21c], esi
test esi, esi
je 0x42dccc
lea ecx, [esi + 4]
mov dword [esi], vtable._BaseModule::CCriticalSection.0
push ecx
call edi
jmp 0x42dcce
xor esi, esi
mov dword [0x583ddc], esi
push 0x57b310
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [0x583ddc]
test edx, edx
jne 0x42dced
xor ecx, ecx
jmp 0x42dd4b
mov ecx, dword [0x583dd8]
test ecx, ecx
jne 0x42dd4b
mov eax, dword [edx]
push edx
call dword [eax]
cmp dword [0x583dd8], 0
jne 0x42dd3a
push 0x64
call fcn.004402f0
add esp, 4
mov dword [ebp - 0x21c], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x42dd28
mov ecx, eax
call fcn.00420ae0
mov ecx, eax
jmp 0x42dd2a
xor ecx, ecx
mov byte [ebp - 4], 0
xchg dword [ebp - 0x21c], eax
mov dword [0x583dd8], ecx
mov eax, dword [0x583ddc]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov ecx, dword [0x583dd8]
call fcn.00423130
sub esp, 0x28
test eax, eax
mov eax, esp
mov dword [ebp - 0x220], esp
mov dword [eax + 0x24], 0
je 0x42de41
mov ecx, dword [0x57fc8c]
mov byte [ebp - 4], 3
test ecx, ecx
jne 0x42ddd7
push 0x57ae74
call ebx
cmp dword [0x57fc8c], 0
jne 0x42ddb4
push 0x1c
call fcn.004402f0
mov esi, eax
add esp, 4
mov dword [ebp - 0x21c], esi
test esi, esi
je 0x42ddac
lea ecx, [esi + 4]
mov dword [esi], vtable._BaseModule::CCriticalSection.0
push ecx
call edi
jmp 0x42ddae
xor esi, esi
mov dword [0x57fc8c], esi
push 0x57ae74
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x57fc8c]
test ecx, ecx
jne 0x42ddd7
xor eax, eax
push eax
push eax
push str.update_1
jmp 0x42df09
mov eax, dword [0x57fc88]
test eax, eax
jne 0x42de33
mov eax, dword [ecx]
push ecx
call dword [eax]
cmp dword [0x57fc88], 0
jne 0x42de23
push 0x20
call fcn.004402f0
add esp, 4
mov dword [ebp - 0x21c], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x42de11
mov ecx, eax
call fcn.00415800
mov ecx, eax
jmp 0x42de13
xor ecx, ecx
mov byte [ebp - 4], 3
xchg dword [ebp - 0x21c], eax
mov dword [0x57fc88], ecx
mov eax, dword [0x57fc8c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov eax, dword [0x57fc88]
push 0
push 0
push str.update_1
jmp 0x42df09
mov ecx, dword [0x57fc8c]
mov byte [ebp - 4], 5
test ecx, ecx
jne 0x42dea4
push 0x57ae74
call ebx
cmp dword [0x57fc8c], 0
jne 0x42de8b
push 0x1c
call fcn.004402f0
mov esi, eax
add esp, 4
mov dword [ebp - 0x21c], esi
test esi, esi
je 0x42de83
lea ecx, [esi + 4]
mov dword [esi], vtable._BaseModule::CCriticalSection.0
push ecx
call edi
jmp 0x42de85
xor esi, esi
mov dword [0x57fc8c], esi
push 0x57ae74
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x57fc8c]
test ecx, ecx
jne 0x42dea4
xor eax, eax
jmp 0x42df00
mov eax, dword [0x57fc88]
test eax, eax
jne 0x42df00
mov eax, dword [ecx]
push ecx
call dword [eax]
cmp dword [0x57fc88], 0
jne 0x42def0
push 0x20
call fcn.004402f0
add esp, 4
mov dword [ebp - 0x21c], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x42dede
mov ecx, eax
call fcn.00415800
mov ecx, eax
jmp 0x42dee0
xor ecx, ecx
mov byte [ebp - 4], 5
xchg dword [ebp - 0x21c], eax
mov dword [0x57fc88], ecx
mov eax, dword [0x57fc8c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov eax, dword [0x57fc88]
push 0
push 0
push str.install_1
mov ecx, eax
mov byte [ebp - 4], 0
call fcn.00416b10
call fcn.0042c8f0
test eax, eax
jne 0x42df37
mov ecx, 0x583d9c
call fcn.0040e5c0
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x42e084
push 0x110
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], 0x114
push 0
push eax
call fcn.004a99f0
add esp, 0xc
lea eax, [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x120], 6
jae 0x42e039
call fcn.0042c380
mov ecx, eax
call fcn.00423050
test eax, eax
jne 0x42e084
lea ecx, [ebp - 0x268]
call fcn.0043ea20
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov esi, eax
mov eax, dword [ebp - 0x254]
test eax, eax
jne 0x42dfc9
call fcn.004673f4
mov dword [ebp - 0x254], eax
test eax, eax
jne 0x42dfc9
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [ebp - 0x268]
call fcn.0043eaf0
jmp 0x42e084
push 0
push 0
push eax
call fcn.004674f6
lea eax, [ebp - 0x268]
mov dword [ebp - 0x260], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x57a084
mov dword [ebp - 0x25c], eax
call ebx
mov eax, dword [0x57a09c]
mov dword [ebp - 0x258], eax
lea eax, [ebp - 0x260]
push 0x57a084
mov dword [0x57a09c], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
push 0x42f4d0
push esi
push 0xf2
push dword [0x5842bc]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
lea ecx, [ebp - 0x268]
call fcn.0043eaf0
jmp 0x42e084
call fcn.0042d170
test eax, eax
jne 0x42e073
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x220], esp
mov dword [eax + 0x24], 0
push 0
push 0
push str.install_file_fail
mov byte [ebp - 4], 7
call fcn.0041c940
mov ecx, eax
mov byte [ebp - 4], 0
call fcn.00416b10
jmp 0x42e084
push dword [ebp + 0x14]
push dword [ebp - 0x228]
call fcn.0042f050
add esp, 8
mov eax, dword [0x583de4]
test al, 1
jne 0x42e0b4
or eax, 1
mov dword [0x583de4], eax
mov ecx, 0x583de0
mov byte [ebp - 4], 8
call fcn.0043e420
push 0x52fcd0
call fcn.0049067c
add esp, 4
mov byte [ebp - 4], 0
mov ecx, 0x583de0
call fcn.0043e920
call fcn.0042c490
mov ecx, eax
call fcn.0047f6f0
call fcn.0042c5a0
mov ecx, eax
call fcn.00434d90
mov ecx, 0x583d9c
call fcn.0040e5c0
mov edi, dword [0x57fcb8]
add edi, 0x10
push edi
call ebx
mov esi, dword [0x583d98]
test esi, esi
je 0x42e13e
cmp dword [esi + 4], 0
jle 0x42e10c
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x583d98]
test esi, esi
je 0x42e13e
mov eax, dword [esi]
test eax, eax
je 0x42e125
push eax
call fcn.004c5116
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.00490273
add esp, 8
push edi
mov dword [0x583d98], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x583d94]
test esi, esi
je 0x42e197
mov eax, dword [esi]
test eax, eax
je 0x42e16e
push eax
call fcn.004c5116
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x42e185
push eax
call fcn.004c5116
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.00490273
add esp, 8
mov esi, dword [0x583d8c]
test esi, esi
je 0x42e1c9
cmp dword [esi], 0
je 0x42e1c9
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x42e1b3
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 0x42e1a6
mov esi, dword [0x57fd20]
mov ecx, dword [0x57fd24]
cmp esi, ecx
jae 0x42e1fa
nop dword [eax]
mov eax, dword [esi]
test eax, eax
je 0x42e1f3
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x57fd24]
add esi, 4
cmp esi, ecx
jb 0x42e1e0
mov ecx, 0x583d60
call fcn.0042f630
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0x22c]
call fcn.0040d700
xor eax, eax
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.00490238
mov esp, ebp
pop ebp
ret