Function at 0x429f90
Capabilities:
Accept command line arguments
Check os version
Create process on windows
Enumerate gui resources
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4621fe
mov eax, dword fs:[0]
push eax
sub esp, 0x8a0
mov eax, dword [0x4786a0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 0x7e4], edi
push 0x24
mov dword [ebp - 0x820], esi
mov dword [ebp - 0x7dc], eax
mov dword [ebp - 0x7e0], edi
mov dword [ebp - 0x808], edi
mov dword [ebp - 0x7ec], edi
call fcn.0044578f
add esp, 4
cmp eax, edi
je 0x42bde1
mov dword [ebp - 0x7f0], eax
mov dword [eax], eax
mov eax, dword [ebp - 0x7f0]
mov dword [eax + 4], eax
mov eax, dword [ebp - 0x7f0]
mov dword [eax + 8], eax
mov ecx, dword [ebp - 0x7f0]
mov bl, 1
mov byte [ecx + 0x20], bl
mov edx, dword [ebp - 0x7f0]
mov byte [edx + 0x21], bl
mov dword [ebp - 4], edi
mov eax, dword [0x478034]
mov edx, dword [eax + 0xc]
mov ecx, 0x478034
call edx
add eax, 0x10
mov dword [ebp - 0x7f8], eax
mov byte [ebp - 4], bl
mov eax, dword [0x478034]
mov edx, dword [eax + 0xc]
mov ecx, 0x478034
call edx
add eax, 0x10
mov dword [ebp - 0x7d4], eax
push 0x208
lea ecx, [ebp - 0x2e6]
mov byte [ebp - 4], 2
xor eax, eax
push edi
push ecx
mov dword [ebp - 0x818], edi
mov word [ebp - 0x2e8], ax
call fcn.00449910
add esp, 0xc
cmp dword [ebp - 0x7dc], edi
jne 0x42a097
xor eax, eax
jmp 0x42a0af
mov eax, dword [ebp - 0x7dc]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x42a0a0
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 0x7dc]
push edx
push 0x47b71c
mov ebx, eax
call fcn.00401330
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
test eax, eax
jne 0x42a0d0
xor ecx, ecx
jmp 0x42a0e4
mov ecx, eax
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x42a0d5
sub ecx, edi
sar ecx, 1
push eax
push 0x47b704
mov ebx, ecx
call fcn.00401330
xor eax, eax
mov byte [ebp - 4], 3
mov dword [0x47b5c8], eax
mov dword [0x47b5c4], eax
mov dword [0x47b5c0], eax
mov dword [0x47b5d0], eax
mov dword [0x47b5bc], eax
mov dword [0x47b5ac], eax
mov dword [0x47b5b8], eax
push esi
mov eax, 0x84
mov edi, 0x47b748
call fcn.00401290
push esi
mov eax, 0x85
mov edi, 0x47b74c
call fcn.00401290
push esi
mov eax, 0x86
mov edi, 0x47b750
call fcn.00401290
push esi
mov eax, 0x87
mov edi, 0x47b754
call fcn.00401290
push esi
mov eax, 0x88
mov edi, 0x47b758
call fcn.00401290
push esi
mov eax, 0x89
mov edi, 0x47b75c
call fcn.00401290
push esi
mov eax, 0x8a
mov edi, 0x47b760
call fcn.00401290
push esi
mov eax, 0x8b
mov edi, 0x47b764
call fcn.00401290
push esi
mov eax, 0x8c
mov edi, 0x47b774
call fcn.00401290
push esi
mov eax, 0x8d
mov edi, 0x47b768
call fcn.00401290
push esi
mov eax, 0x8e
mov edi, 0x47b76c
call fcn.00401290
push esi
mov eax, 0x8f
mov edi, 0x47b770
call fcn.00401290
push 0x46cea0
push 0x47b778
xor ebx, ebx
call fcn.00401330
push esi
mov eax, 0x92
mov edi, 0x47b77c
call fcn.00401290
push esi
mov eax, 0x93
mov edi, 0x47b780
call fcn.00401290
push esi
mov eax, 0x94
mov edi, 0x47b784
call fcn.00401290
push esi
mov eax, 0x95
mov edi, 0x47b788
call fcn.00401290
push esi
mov eax, 0x97
mov edi, 0x47b78c
call fcn.00401290
push esi
mov eax, 0x98
mov edi, 0x47b790
call fcn.00401290
push esi
mov eax, 0x9b
mov edi, 0x47b794
call fcn.00401290
push esi
mov eax, 0x99
mov edi, 0x47b798
call fcn.00401290
push esi
mov eax, 0x9a
mov edi, 0x47b79c
call fcn.00401290
mov ecx, dword [0x47b74c]
mov edi, dword [0x47b714]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x42a2d6
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x42a2c8
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42a2c8
call fcn.004218e0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x42a2bd
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [0x47b714], esi
jmp 0x42a2d6
mov ebx, dword [ecx - 0xc]
push ecx
push 0x47b714
call fcn.00401330
push 0x11c
xor esi, esi
lea ecx, [ebp - 0x7d0]
push esi
push ecx
call fcn.00449910
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
add esp, 0xc
lea edx, [ebp - 0x7d0]
push edx
mov dword [ebp - 0x7d0], 0x11c
call edi
cmp eax, esi
jne 0x42a31d
lea eax, [ebp - 0x7d0]
push eax
mov dword [ebp - 0x7d0], 0x114
call edi
mov eax, dword [ebp - 0x7cc]
mov dword [0x47b5e0], eax
cmp eax, 5
jae 0x42a38e
xor ecx, ecx
mov word [ebp - 0x3b4], cx
push 0x1d
mov eax, str.Unsupported_operating_system.
lea ecx, [ebp - 0x3b4]
mov dword [ebp - 0x3a0], 7
mov dword [ebp - 0x3a4], esi
call fcn.00429690
lea ebx, [ebp - 0x3b4]
lea esi, [ebp - 0x454]
mov byte [ebp - 4], 4
call fcn.0041ee70
push 0x470880
mov edx, esi
push edx
mov dword [ebp - method.windows_error.virtual_0], vtable.windows_error.0
mov dword [ebp - 0x40c], 0
call fcn.00449840
push 2
push esi
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov edi, eax
cmp edi, esi
jge 0x42a461
mov eax, dword [0x478034]
mov edx, dword [eax + 0xc]
mov ecx, 0x478034
call edx
add eax, 0x10
mov dword [ebp - 0x7e0], eax
mov byte [ebp - 4], 5
mov eax, dword [0x47b758]
push edi
lea edi, [ebp - 0x7e0]
cmp dword [eax - 0xc], esi
jne 0x42a3dd
push str.Failed_to_initialize_COM_library._Error_code___d.
call fcn.00422e30
add esp, 8
jmp 0x42a3eb
push eax
push str.Failed_to_initialize_COM_library._Error_code___d.
call fcn.00422e30
add esp, 0xc
xor eax, eax
mov word [ebp - 0x360], ax
mov eax, dword [ebp - 0x7e0]
mov ecx, eax
mov dword [ebp - 0x350], esi
mov dword [ebp - 0x34c], 7
lea esi, [ecx + 2]
nop
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x42a410
sub ecx, esi
sar ecx, 1
push ecx
lea ecx, [ebp - 0x360]
call fcn.00429690
lea ebx, [ebp - 0x360]
lea esi, [ebp - 0x4ec]
mov byte [ebp - 4], 6
call fcn.0041ee70
push 0x470880
mov ecx, esi
push ecx
mov dword [ebp - method.windows_error.virtual_0], vtable.windows_error.0
mov dword [ebp - 0x4a4], 0
call fcn.00449840
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
push 0xc6
mov dword [0x47b5b4], eax
lea eax, [ebp - 0xda]
xor edx, edx
push esi
push eax
mov word [ebp - 0xdc], dx
call fcn.00449910
add esp, 0xc
push 0x64
lea ecx, [ebp - 0xdc]
push ecx
push 0x1001
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jle 0x42a4b7
lea edx, [ebp - 0xdc]
mov edi, 0x47b70c
call fcn.004011b0
mov edx, dword [ebp - 0x7dc]
push 0x46cea0
push edx
push 0x47b704
call fcn.0041ddd0
push 0x46cea0
push 0x4695fc
push 0x47b704
call fcn.0041ddd0
mov ebx, 0x47b704
call fcn.004202e0
mov ebx, eax
call fcn.00420360
mov edi, 0x47b704
call fcn.0041db20
xor eax, eax
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x810], eax
mov byte [ebp - 4], 7
mov ebx, dword [0x47b704]
lea esi, [ebp - 0x814]
call fcn.00437d70
xor esi, esi
cmp eax, esi
jne 0x42a586
xor eax, eax
mov word [ebp - 0x37c], ax
push 0x33
mov eax, str.Failed_to_open_FileVersionInfo_of_the_downloader.
lea ecx, [ebp - 0x37c]
mov dword [ebp - 0x368], 7
mov dword [ebp - 0x36c], esi
call fcn.00429690
lea ebx, [ebp - 0x37c]
lea esi, [ebp - 0x538]
mov byte [ebp - 4], 8
call fcn.0041ee70
push 0x470880
mov ecx, esi
push ecx
mov dword [ebp - method.windows_error.virtual_0], vtable.windows_error.0
mov dword [ebp - 0x4f0], 0
call fcn.00449840
lea eax, [ebp - 0x860]
lea ecx, [ebp - 0x814]
call fcn.00429ea0
mov edi, 0x47b708
mov byte [ebp - 4], 9
call fcn.0041db20
mov ebx, 7
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x860]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a5cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [0x47b708]
cmp dword [ecx - 0xc], esi
jne 0x42a637
xor edx, edx
push 0x34
mov eax, str.Failed_to_read_OriginalFilename_of_the_downloader.
lea ecx, [ebp - 0x398]
mov dword [ebp - 0x384], ebx
mov dword [ebp - 0x388], esi
mov word [ebp - 0x398], dx
call fcn.00429690
lea ebx, [ebp - 0x398]
lea esi, [ebp - 0x4a0]
mov byte [ebp - 4], 0xa
call fcn.0041ee70
push 0x470880
mov eax, esi
push eax
mov dword [ebp - method.windows_error.virtual_0], vtable.windows_error.0
mov dword [ebp - 0x458], 0
call fcn.00449840
mov eax, dword [0x47b704]
lea ecx, [ebp - 0x818]
push ecx
lea edx, [ebp - 0x2e8]
push edx
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov edx, dword [ebp - 0x818]
cmp edx, esi
je 0x42a675
mov edi, 0x47b724
call fcn.004011b0
mov edx, dword [ebp - 0x818]
xor ecx, ecx
mov word [edx], cx
lea edx, [ebp - 0x2e8]
mov edi, 0x47b720
call fcn.004011b0
mov eax, dword [ebp - 0x820]
push 0x64
push 0x47b5e8
push 0x6d
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
mov ecx, dword [0x47b724]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFindAtomW]
mov word [0x47b6d8], ax
cmp ax, si
je 0x42a75a
push esi
push 0x42be80
mov dword [0x47b5dc], esi
call dword [sym.imp.USER32.dll_EnumWindows]
cmp dword [0x47b5dc], esi
je 0x42a743
lea esi, [ebp - 0x814]
call fcn.00437d50
lea eax, [ebp - 0x7d4]
call fcn.0041d790
lea eax, [ebp - 0x7f8]
call fcn.0041d790
mov dword [ebp - 4], 0xb
mov eax, dword [ebp - 0x7f0]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [ebp - 0x800]
lea esi, [ebp - 0x7f4]
call fcn.004310f0
mov edx, dword [ebp - 0x7f0]
push edx
call fcn.0044543c
add esp, 4
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 - 0x14]
xor ecx, ebp
call fcn.00445447
mov esp, ebp
pop ebp
ret 0x10
movzx eax, word [0x47b6d8]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalDeleteAtom]
xor ecx, ecx
mov word [0x47b6d8], cx
push 0x400
call fcn.00446021
push 0x400
push esi
push eax
mov dword [ebp - 0x804], eax
call fcn.00449910
add esp, 0x10
push 0x46b59c
lea edx, [ebp - 0x878]
push edx
push 0x47b71c
lea ebx, [ebp - 0x808]
call fcn.0041e1b0
lea edi, [ebp - 0x7f8]
mov byte [ebp - 4], 0xc
call fcn.0041db20
lea eax, [ebp - 0x878]
mov byte [ebp - 4], 7
call fcn.0041d790
lea esi, [ebp - 0x7f8]
call fcn.0041e620
test al, al
je 0x42aa54
mov ebx, esi
mov dword [ebp - 0x7fc], 0
call fcn.004202e0
mov ebx, eax
call fcn.00420360
mov eax, esi
push eax
call fcn.0042dc80
push 0x469db0
lea ecx, [ebp - 0x844]
push ecx
mov edx, esi
push edx
lea ebx, [ebp - 0x7fc]
mov byte [ebp - 0x7d6], 1
call fcn.0041e1b0
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0xd
call fcn.0041db20
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x844]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a840
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esp, [esp]
lea esi, [ebp - 0x7d4]
call fcn.0041e620
test al, al
je 0x42a9ac
push 0x46cea0
push 0x4695fc
mov ecx, esi
push ecx
call fcn.0041ddd0
cmp byte [ebp - 0x7d6], 0
mov esi, dword [ebp - 0x7d4]
je 0x42a8cb
mov edi, dword [esi - 0xc]
mov byte [ebp - 0x7d6], 0
test edi, edi
jns 0x42a88c
push 0x80070057
call fcn.00401680
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x42a8b0
mov eax, edi
lea ecx, [ebp - 0x7d4]
call fcn.00401440
mov esi, dword [ebp - 0x7d4]
lea edx, [edi + 1]
push edx
push esi
call fcn.00446937
add esp, 8
cmp edi, dword [esi - 8]
jg 0x42a882
xor eax, eax
mov dword [esi - 0xc], edi
mov word [esi + edi*2], ax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
call fcn.00446021
mov edi, eax
mov eax, dword [esi - 0xc]
push eax
push esi
inc eax
push eax
push edi
mov dword [ebp - 0x80c], edi
call fcn.00446265
add esp, 0x14
push 0x469db0
lea edx, [ebp - 0x830]
push edx
lea eax, [ebp - 0x7f8]
push eax
lea ebx, [ebp - 0x7fc]
call fcn.0041e1b0
mov byte [ebp - 4], 0xe
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x42a96b
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x42a95b
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42a95b
call fcn.004218e0
mov edi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x42a94a
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp - 0x7d4], edi
mov edi, dword [ebp - 0x80c]
jmp 0x42a96b
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x7d4]
push ecx
call fcn.00401330
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a991
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x7e0]
mov ecx, dword [ebp - 0x804]
mov dword [ecx + eax*4], edi
inc eax
mov dword [ebp - 0x7e0], eax
jmp 0x42a840
push 0x46b59c
lea edx, [ebp - 0x838]
push edx
push 0x47b71c
lea ebx, [ebp - 0x808]
call fcn.0041e1b0
mov byte [ebp - 4], 0xf
mov ecx, dword [eax]
mov esi, dword [ebp - 0x7f8]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x42aa25
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x42aa15
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42aa15
call fcn.004218e0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x42aa0a
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x7f8], ebx
jmp 0x42aa25
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x7f8]
push ecx
call fcn.00401330
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x838]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a7b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42a7b3
mov ecx, dword [ebp - 0x804]
mov edx, dword [ebp - 0x7e0]
push ecx
push edx
lea eax, [ebp - 0x7f4]
push eax
mov byte [ebp - 0x7d6], 0
mov byte [ebp - 0x7d5], 0
call fcn.00436a60
test eax, eax
je 0x42b0a3
mov ecx, 0x46d20c
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
jne 0x42b08f
mov ecx, str._help
call fcn.00436ef0
test al, al
jne 0x42b08f
mov ecx, 0x46d220
call fcn.00436ef0
test al, al
jne 0x42b08f
mov ecx, str._debugdirectory
call fcn.00436ef0
test al, al
je 0x42ab24
push str._debugdirectory
call fcn.00437010
test eax, eax
je 0x42ab24
push str._debugdirectory
lea ecx, [ebp - 0x85c]
push ecx
mov byte [ebp - 0x7d6], 1
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x10
call fcn.0041db20
lea eax, [ebp - 0x85c]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov edx, edi
push edx
call fcn.0041ddd0
mov ecx, str._debugversion
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42ab8e
push str._debugversion
call fcn.00437010
test eax, eax
je 0x42ab8e
push str._debugversion
lea eax, [ebp - 0x840]
push eax
mov byte [ebp - 0x7d5], 1
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x11
call fcn.0041db20
lea eax, [ebp - 0x840]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov ecx, edi
push ecx
call fcn.0041ddd0
mov ecx, str._afterreboot
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42abfd
push str._afterreboot
call fcn.00437010
test eax, eax
je 0x42abfd
push str._afterreboot
lea edx, [ebp - 0x86c]
push edx
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x12
call fcn.0041db20
lea eax, [ebp - 0x86c]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov eax, edi
push eax
call fcn.0041ddd0
mov eax, edi
mov edi, 0x47b730
call fcn.0041db20
mov ecx, str._updaterpath
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42ac6c
push str._updaterpath
call fcn.00437010
test eax, eax
je 0x42ac6c
push str._updaterpath
lea ecx, [ebp - 0x84c]
push ecx
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x13
call fcn.0041db20
lea eax, [ebp - 0x84c]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov edx, edi
push edx
call fcn.0041ddd0
mov eax, edi
mov edi, 0x47b734
call fcn.0041db20
mov ecx, str._updaterpid
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42ad07
push str._updaterpid
call fcn.00437010
test eax, eax
je 0x42ad07
push str._updaterpid
lea eax, [ebp - 0x864]
push eax
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x14
call fcn.0041db20
lea eax, [ebp - 0x864]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov ecx, edi
push ecx
call fcn.0041ddd0
mov eax, dword [ebp - 0x7d4]
cmp dword [eax - 0xc], 0
je 0x42ad07
lea esi, [ebp - 0x3ec]
call fcn.004297a0
mov edx, esi
push edx
mov byte [ebp - 4], 0x15
call fcn.00437860
add esp, 4
mov dword [0x47b5b0], eax
mov byte [ebp - 4], 7
call fcn.004297e0
mov ecx, str._sid
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42ad76
push str._sid
call fcn.00437010
test eax, eax
je 0x42ad76
push str._sid
lea eax, [ebp - 0x854]
push eax
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x16
call fcn.0041db20
lea eax, [ebp - 0x854]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov ecx, edi
push ecx
call fcn.0041ddd0
mov eax, edi
mov edi, 0x47b738
call fcn.0041db20
mov ecx, str._productdir
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42ade5
push str._productdir
call fcn.00437010
test eax, eax
je 0x42ade5
push str._productdir
lea edx, [ebp - 0x874]
push edx
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x17
call fcn.0041db20
lea eax, [ebp - 0x874]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov eax, edi
push eax
call fcn.0041ddd0
mov eax, edi
mov edi, 0x47b73c
call fcn.0041db20
mov ecx, str._pipename
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42ae7c
push str._pipename
call fcn.00437010
test eax, eax
je 0x42ae7c
push str._pipename
lea ecx, [ebp - 0x828]
push ecx
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x18
call fcn.0041db20
lea eax, [ebp - 0x828]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov edx, edi
push edx
call fcn.0041ddd0
mov eax, dword [ebp - 0x7d4]
cmp dword [eax - 0xc], 0
je 0x42ae7c
push 0x47b740
mov edx, str..pipe_
call fcn.0041e6d0
mov eax, dword [ebp - 0x7d4]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ebx, 0x47b740
call fcn.00420540
mov ecx, str._appid
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42aeeb
push str._appid
call fcn.00437010
test eax, eax
je 0x42aeeb
push str._appid
lea ecx, [ebp - 0x82c]
push ecx
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x19
call fcn.0041db20
lea eax, [ebp - 0x82c]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov edx, edi
push edx
call fcn.0041ddd0
mov eax, edi
mov edi, 0x47b744
call fcn.0041db20
mov ecx, str._silentmode
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42af69
push str._silentmode
call fcn.00437010
test eax, eax
je 0x42af69
push str._silentmode
lea eax, [ebp - 0x834]
push eax
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x1a
call fcn.0041db20
lea eax, [ebp - 0x834]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov ecx, edi
push ecx
call fcn.0041ddd0
mov edx, edi
push edx
mov ecx, 0x468b78
call fcn.0041dc60
test eax, eax
jne 0x42af69
mov dword [0x47b5bc], 1
mov ecx, str._showrunningappwarning
lea esi, [ebp - 0x7f4]
call fcn.00436ef0
test al, al
je 0x42afe7
push str._showrunningappwarning
call fcn.00437010
test eax, eax
je 0x42afe7
push str._showrunningappwarning
lea eax, [ebp - 0x83c]
push eax
call fcn.00436f40
lea edi, [ebp - 0x7d4]
mov byte [ebp - 4], 0x1b
call fcn.0041db20
lea eax, [ebp - 0x83c]
mov byte [ebp - 4], 7
call fcn.0041d790
push 0x46cea0
push 0x4695fc
mov ecx, edi
push ecx
call fcn.0041ddd0
mov edx, edi
push edx
mov ecx, 0x468b78
call fcn.0041dc60
test eax, eax
jne 0x42afe7
mov dword [0x47b5b8], 1
cmp byte [ebp - 0x7d6], 0
je 0x42b0a3
cmp byte [ebp - 0x7d5], 0
je 0x42b0a3
lea esi, [ebp - 0x814]
call fcn.00437d50
mov byte [ebp - 4], 2
call fcn.0042c700
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x7d4]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42b03b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7f8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b061
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0x31
mov eax, dword [ebp - 0x7f0]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [ebp - 0x81c]
lea esi, [ebp - 0x7f4]
call fcn.004310f0
mov ecx, dword [ebp - 0x7f0]
push ecx
jmp 0x42a71b
mov eax, dword [ebp - 0x814]
push eax
call fcn.00445b98
add esp, 4
jmp 0x42b00c
mov esi, 6
cmp dword [0x47b5e0], esi
jb 0x42b177
mov ecx, dword [0x47b754]
push 0x46ab1c
push ecx
call fcn.0044646f
add esp, 8
test eax, eax
je 0x42b124
call fcn.0042c760
test eax, eax
jne 0x42b177
mov edx, dword [0x47b720]
mov eax, dword [ebp - 0x7dc]
mov ecx, dword [0x47b704]
push 5
push edx
push eax
push ecx
push str.runas
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jge 0x42b001
mov edi, eax
lea ecx, [ebp - 0x6b4]
call fcn.00429840
push 0x470880
lea edx, [ebp - 0x6b4]
push edx
call fcn.00449840
call fcn.0042c950
test eax, eax
je 0x42b177
mov eax, dword [0x47b720]
mov ecx, dword [ebp - 0x7dc]
mov edx, dword [0x47b704]
push 5
push eax
push ecx
push edx
push str.runas
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jge 0x42b001
mov edi, eax
lea ecx, [ebp - 0x668]
call fcn.00429840
push 0x470880
lea eax, [ebp - 0x668]
push eax
call fcn.00449840
mov ecx, dword [0x47b734]
cmp dword [ecx - 0xc], 0
je 0x42b1bf
mov edx, dword [0x47b740]
cmp dword [edx - 0xc], 0
je 0x42b1bf
mov eax, dword [0x47b73c]
cmp dword [eax - 0xc], 0
je 0x42b1bf
mov edx, 0x468a48
mov edi, 0x47b770
mov dword [0x47b5c0], 1
mov dword [0x47b5b8], 0
call fcn.004011b0
jmp 0x42b1ee
cmp dword [0x47b5e0], esi
jb 0x42b1ee
push 0x47b6d0
push 0x46da3c
push 1
push 0
push 0x4645c8
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x42b1ee
mov dword [0x47b5cc], 1
cmp dword [0x47b5bc], 0
je 0x42b206
mov edx, 0x468a48
mov edi, 0x47b770
call fcn.004011b0
push 0
push 0x3ff
call dword [sym.imp.KERNEL32.dll_SetProcessShutdownParameters]
mov eax, dword [0x47b788]
cmp dword [eax - 0xc], 0
je 0x42b26d
push str._Empty_
push eax
call fcn.0044646f
add esp, 8
test eax, eax
je 0x42b26d
lea ecx, [ebp - 0x80c]
push ecx
mov ecx, 0x46a058
call fcn.00401110
lea edx, [ebp - 0x80c]
push edx
push 0x47a050
push 0x47b788
mov byte [ebp - 4], 0x1c
call fcn.00423c50
add esp, 0xc
lea eax, [ebp - 0x80c]
mov byte [ebp - 4], 7
call fcn.0041d790
mov eax, dword [0x47b78c]
push 0x468b78
push eax
call fcn.0044646f
add esp, 8
test eax, eax
jne 0x42b7e1
mov ecx, dword [0x47b790]
cmp dword [ecx - 0xc], eax
je 0x42b7e1
push 0x47b790
mov ecx, str._Empty_
call fcn.0041dc60
test eax, eax
je 0x42b7e1
lea edx, [ebp - 0x7e0]
push edx
mov ecx, str.http:__
call fcn.00401110
lea eax, [ebp - 0x804]
push eax
mov ecx, str.https:__
mov byte [ebp - 4], 0x1d
call fcn.00401110
mov byte [ebp - 4], 0x1e
mov eax, dword [0x47b790]
add eax, 0xfffffff0
call fcn.004218e0
add eax, 0x10
mov dword [ebp - 0x7dc], eax
push 0x47b798
mov ecx, str._Empty_
mov byte [ebp - 4], 0x1f
call fcn.0041dc60
test eax, eax
jne 0x42b3c1
mov esi, 0x47b798
call fcn.004013e0
mov eax, dword [0x478034]
mov edx, dword [eax + 0xc]
mov ecx, 0x478034
call edx
add eax, 0x10
mov dword [ebp - 0x7fc], eax
mov byte [ebp - 4], 0x26
mov eax, dword [0x478034]
mov edx, dword [eax + 0xc]
mov ecx, 0x478034
call edx
add eax, 0x10
mov dword [ebp - 0x808], eax
mov byte [ebp - 4], 0x27
mov eax, dword [0x478034]
mov edx, dword [eax + 0xc]
mov ecx, 0x478034
call edx
add eax, 0x10
mov dword [ebp - 0x7e4], eax
lea eax, [ebp - 0x344]
push eax
mov byte [ebp - 4], 0x28
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx ecx, word [ebp - 0x344]
mov edx, dword [0x47b79c]
movzx esi, word [ebp - 0x33e]
movzx ebx, word [ebp - 0x342]
push 0x46d398
push edx
mov dword [ebp - 0x800], ecx
call fcn.0044646f
add esp, 8
test eax, eax
jne 0x42b5ee
cmp word [ebp - 0x33e], 1
jbe 0x42b609
lea esi, [eax + 1]
jmp 0x42b609
mov ecx, dword [0x47b798]
cmp dword [ecx - 0xc], 0
jle 0x42b313
mov esi, 0x21
jmp 0x42b3e0
mov edx, dword [0x47b798]
cmp dword [edx - 0xc], 0
jle 0x42b45c
push 0x47b798
mov eax, 1
lea ecx, [ebp - 0x850]
call fcn.0041e360
mov byte [ebp - 4], 0x20
mov ebx, dword [ebp - 0x7e4]
or ebx, 1
push eax
mov ecx, 0x46b59c
mov dword [ebp - 0x7e4], ebx
call fcn.0041dc10
test eax, eax
je 0x42b453
push 0x47b798
mov eax, 1
lea ecx, [ebp - 0x848]
call fcn.0041e360
mov dword [ebp - 4], esi
or ebx, 2
push eax
mov ecx, 0x46ce9c
mov dword [ebp - 0x7e4], ebx
call fcn.0041dc10
test eax, eax
jne 0x42b462
mov byte [ebp - 0x7d5], 1
jmp 0x42b469
mov ebx, dword [ebp - 0x7e4]
mov byte [ebp - 0x7d5], 0
test bl, 2
je 0x42b482
and ebx, 0xfffffffd
lea eax, [ebp - 0x848]
mov dword [ebp - 0x7e4], ebx
call fcn.0041d790
mov dword [ebp - 4], 0x1f
test bl, 1
je 0x42b4a2
and ebx, 0xfffffffe
lea eax, [ebp - 0x850]
mov dword [ebp - 0x7e4], ebx
call fcn.0041d790
cmp byte [ebp - 0x7d5], 0
je 0x42b4e6
mov eax, dword [0x47b798]
mov eax, dword [eax - 0xc]
dec eax
lea ecx, [ebp - 0x858]
mov edx, 0x47b798
call fcn.0041e3e0
mov edi, 0x47b798
mov byte [ebp - 4], 0x22
call fcn.0041db20
lea eax, [ebp - 0x858]
mov byte [ebp - 4], 0x1f
call fcn.0041d790
jmp 0x42b3e0
mov ecx, dword [0x47b798]
cmp dword [ecx - 0xc], 0
jle 0x42b313
jmp 0x42b500
mov eax, 1
lea ecx, [ebp - 0x868]
mov edx, 0x47b798
call fcn.0041e3e0
mov byte [ebp - 4], 0x23
or ebx, 4
push eax
mov ecx, 0x46b59c
mov dword [ebp - 0x7e4], ebx
call fcn.0041dc10
test eax, eax
je 0x42b56c
mov eax, 1
lea ecx, [ebp - 0x824]
mov edx, 0x47b798
call fcn.0041e3e0
mov dword [ebp - 4], 0x24
or ebx, 8
push eax
mov ecx, 0x46ce9c
mov dword [ebp - 0x7e4], ebx
call fcn.0041dc10
mov byte [ebp - 0x7d5], 0
test eax, eax
jne 0x42b573
mov byte [ebp - 0x7d5], 1
test bl, 8
je 0x42b586
lea eax, [ebp - 0x824]
and ebx, 0xfffffff7
call fcn.0041d790
mov dword [ebp - 4], 0x1f
test bl, 4
je 0x42b5a0
lea eax, [ebp - 0x868]
and ebx, 0xfffffffb
call fcn.0041d790
cmp byte [ebp - 0x7d5], 0
je 0x42b313
mov edx, dword [0x47b798]
mov eax, dword [edx - 0xc]
dec eax
push 0x47b798
mov ecx, 1
lea edx, [ebp - 0x870]
call fcn.00420490
mov edi, 0x47b798
mov byte [ebp - 4], 0x25
call fcn.0041db20
lea eax, [ebp - 0x870]
mov byte [ebp - 4], 0x1f
call fcn.0041d790
jmp 0x42b500
mov eax, 1
cmp word [ebp - 0x342], ax
ja 0x42b605
cmp word [ebp - 0x33e], ax
jbe 0x42b609
mov esi, eax
mov ebx, eax
movzx eax, si
push eax
push str._02d
lea edi, [ebp - 0x7fc]
call fcn.00422e30
movzx ecx, bx
mov edx, dword [ecx*4 + 0x47a01c]
add esp, 8
push edx
push 0x46d3b0
lea edi, [ebp - 0x808]
call fcn.00422e30
movzx eax, word [ebp - 0x800]
add esp, 8
push eax
push 0x46d3b8
lea edi, [ebp - 0x7e4]
call fcn.00422e30
mov eax, dword [ebp - 0x7fc]
mov ecx, dword [eax - 0xc]
add esp, 8
push ecx
push eax
lea ebx, [ebp - 0x7dc]
call fcn.00420540
mov eax, dword [ebp - 0x808]
mov ecx, dword [eax - 0xc]
push ecx
push eax
call fcn.00420540
mov eax, dword [ebp - 0x7e4]
mov ecx, dword [eax - 0xc]
push ecx
push eax
call fcn.00420540
mov ecx, dword [0x47b794]
push str._Empty_
push ecx
call fcn.0044646f
add esp, 8
test eax, eax
jne 0x42b6b1
mov esi, 0x47b794
call fcn.004013e0
mov edx, dword [0x47b794]
cmp dword [edx - 0xc], 0
jle 0x42b71f
mov eax, 1
lea ecx, [ebp - 0x800]
mov edx, 0x47b794
call fcn.0041e3e0
push eax
mov ecx, 0x46784c
mov byte [ebp - 4], 0x29
call fcn.0041dc10
test eax, eax
lea eax, [ebp - 0x800]
sete bl
mov byte [ebp - 4], 0x28
call fcn.0041d790
test bl, bl
jne 0x42b70a
lea eax, [ebp - 0x7dc]
push eax
mov edx, 0x46784c
call fcn.0041e6d0
mov eax, dword [0x47b794]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ebx, [ebp - 0x7dc]
call fcn.00420540
mov esi, dword [ebp - 0x7dc]
mov eax, dword [esi - 0xc]
push eax
push esi
lea ebx, [ebp - 0x7e0]
call fcn.00420540
mov ecx, ebx
push ecx
mov edx, 0x46b59c
call fcn.0041e6d0
mov eax, dword [0x47b798]
mov ecx, dword [eax - 0xc]
push ecx
push eax
call fcn.00420540
mov eax, dword [esi - 0xc]
push eax
push esi
lea ebx, [ebp - 0x804]
call fcn.00420540
mov edx, ebx
push edx
mov edx, 0x46b59c
call fcn.0041e6d0
mov eax, dword [0x47b798]
mov ecx, dword [eax - 0xc]
push ecx
push eax
call fcn.00420540
mov eax, dword [ebp - 0x7e0]
push eax
mov ecx, 0x47a050
call fcn.00423b40
mov ecx, dword [ebp - 0x804]
push ecx
mov ecx, 0x47a050
call fcn.00423b40
lea eax, [ebp - 0x7e4]
call fcn.0041d790
lea eax, [ebp - 0x808]
call fcn.0041d790
lea eax, [ebp - 0x7fc]
call fcn.0041d790
lea eax, [ebp - 0x7dc]
call fcn.0041d790
mov eax, ebx
call fcn.0041d790
lea eax, [ebp - 0x7e0]
mov byte [ebp - 4], 7
call fcn.0041d790
mov esi, dword [ebp - 0x820]
mov eax, esi
call fcn.0042bf70
mov edx, dword [ebp + 0x14]
push edx
push esi
call fcn.0042bff0
add esp, 8
test eax, eax
jne 0x42b86d
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
je 0x42b82b
call esi
mov edi, eax
lea ecx, [ebp - 0x61c]
call fcn.00429840
push 0x470880
lea eax, [ebp - 0x61c]
push eax
call fcn.00449840
mov eax, str.Unknown_error_in_the_InitInstance_function.
lea esi, [ebp - 0x408]
call fcn.004297a0
mov ebx, esi
lea esi, [ebp - 0x5d0]
mov byte [ebp - 4], 0x2a
call fcn.0041ee70
push 0x470880
mov ecx, esi
push ecx
mov dword [ebp - method.windows_error.virtual_0], vtable.windows_error.0
mov dword [ebp - 0x588], 0
call fcn.00449840
mov edx, dword [0x47b724]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
push 0x6d
push esi
mov word [0x47b6d8], ax
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
mov ebx, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
mov esi, eax
push 0
push 0
push 0
lea eax, [ebp - 0x894]
push eax
call edi
test eax, eax
je 0x42b8db
mov edx, dword [ebp - 0x894]
lea ecx, [ebp - 0x894]
push ecx
push esi
push edx
call ebx
test eax, eax
jne 0x42b897
lea eax, [ebp - 0x894]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [ebp - 0x894]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x42b897
cmp dword [ebp - 0x88c], 0
je 0x42b9c1
mov edx, dword [0x478034]
mov eax, dword [edx + 0xc]
mov ecx, 0x478034
call eax
add eax, 0x10
mov dword [ebp - 0x7fc], eax
mov byte [ebp - 4], 0x2b
mov eax, dword [0x47b758]
cmp dword [eax - 0xc], 0
lea edi, [ebp - 0x7fc]
jne 0x42b92c
mov ecx, dword [ebp - 0x88c]
push ecx
push str.The_installer_failed._Exit_code:__d.
call fcn.00422e30
add esp, 8
jmp 0x42b941
mov edx, dword [ebp - 0x88c]
push edx
push eax
push str.The__s_installer_failed._Exit_code:__d.
call fcn.00422e30
add esp, 0xc
xor eax, eax
mov word [ebp - 0x3d0], ax
mov eax, dword [ebp - 0x7fc]
mov ecx, eax
mov dword [ebp - 0x3bc], 7
mov dword [ebp - 0x3c0], 0
lea esi, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x42b970
sub ecx, esi
sar ecx, 1
push ecx
lea ecx, [ebp - 0x3d0]
call fcn.00429690
lea ebx, [ebp - 0x3d0]
lea esi, [ebp - 0x584]
mov byte [ebp - 4], 0x2c
call fcn.0041ee70
push 0x470880
mov ecx, esi
push ecx
mov dword [ebp - method.windows_error.virtual_0], vtable.windows_error.0
mov dword [ebp - 0x53c], 0
call fcn.00449840
mov edx, dword [ebp - 0x814]
push edx
call fcn.00445b98
add esp, 4
mov dword [ebp - 4], 2
jmp 0x42b010
lea edx, [ebp - 0x81c]
push edx
lea ecx, [ebp - 0x8a0]
mov dword [ebp - 0x81c], edi
call fcn.004456a1
push 0x47099c
lea eax, [ebp - 0x8a0]
push eax
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.00449840
int3