Function at 0x4252a0
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x546f54
mov eax, dword fs:[0]
push eax
sub esp, 0xdc8
mov eax, dword [0x5ec938]
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
push 0x8003
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
xor esi, esi
push esi
call fcn.0043e68a
add esp, 4
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
js 0x425450
push 0xe8a8
call fcn.0042c875
add esp, 4
mov dword [ebp - 0xdd4], eax
mov dword [ebp - 4], esi
cmp eax, esi
je 0x425318
mov ecx, eax
call fcn.00416290
mov esi, eax
or ebx, 0xffffffff
lea ecx, [ebp - 0xdd0]
mov dword [ebp - 4], ebx
call fcn.004231c0
lea ecx, [ebp - 0xdc5]
mov dword [ebp - 4], 1
call fcn.004257e0
xor eax, eax
push 0x206
push eax
lea ecx, [ebp - 0x216]
push ecx
mov byte [ebp - 4], 2
mov word [ebp - 0x218], ax
call fcn.0052c850
mov eax, dword [edi + 0x44]
add esp, 0xc
push 0x104
lea edx, [ebp - 0x218]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x42542d
lea ecx, [ebp - 0x218]
push 0x5c
push ecx
call fcn.0052ceac
add esp, 8
test eax, eax
je 0x42542d
xor edx, edx
mov word [eax], dx
xor eax, eax
push 0x812
push eax
lea ecx, [ebp - 0xdc2]
push ecx
mov word [ebp - 0xdc4], ax
call fcn.0052c850
mov eax, dword [edi + 0x48]
add esp, 0xc
lea edx, [ebp - 0xdc4]
push edx
push eax
lea ecx, [ebp - 0xdd0]
call fcn.004233f0
test eax, eax
je 0x425522
lea ecx, [ebp - 0xdd0]
call fcn.00423050
lea ecx, [ebp - 0xdc4]
push ecx
mov ecx, esi
call fcn.004136a0
push str.Setup.ini
push 0x104
lea edx, [ebp - 0x218]
push edx
mov ecx, esi
call fcn.0041fdd0
test eax, eax
je 0x425457
push 0
push eax
lea ecx, [ebp - 0xdd0]
call fcn.004230c0
mov ecx, esi
call fcn.0041d440
test esi, esi
je 0x42542d
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0xdc5]
mov byte [ebp - 4], 1
call fcn.00402170
lea ecx, [ebp - 0xdd0]
mov dword [ebp - 4], ebx
call fcn.004231f0
xor eax, eax
jmp 0x4256df
xor eax, eax
cmp dword [ebp - 0x5b8], eax
mov ecx, esi
setne al
inc eax
push eax
call fcn.004215b0
mov edi, eax
test edi, edi
je 0x4254c6
cmp edi, 0xbc2
je 0x4254c6
push 0
push edi
lea ecx, [ebp - 0xdd0]
call fcn.004230c0
mov ecx, esi
call fcn.0041d440
test esi, esi
je 0x42549c
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0xdc5]
mov byte [ebp - 4], 1
call fcn.00402170
lea ecx, [ebp - 0xdd0]
mov dword [ebp - 4], ebx
call fcn.004231f0
xor eax, eax
jmp 0x4256df
mov ecx, esi
call fcn.0041d440
xor eax, eax
cmp edi, 0xbc2
jne 0x4254dc
mov eax, 1
push eax
push 0
lea ecx, [ebp - 0xdd0]
call fcn.004230c0
test esi, esi
je 0x4254f8
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0xdc5]
mov byte [ebp - 4], 1
call fcn.00402170
lea ecx, [ebp - 0xdd0]
mov dword [ebp - 4], ebx
call fcn.004231f0
xor eax, eax
jmp 0x4256df
xor eax, eax
push 0x206
push eax
lea ecx, [ebp - 0x5ae]
push ecx
mov word [ebp - 0x5b0], ax
call fcn.0052c850
push 0x7c
lea edx, [ebp - 0x3a8]
push 0
push edx
call fcn.0052c850
mov ecx, dword [edi + 0x48]
add esp, 0x18
lea eax, [ebp - 0x5b0]
push eax
push ecx
lea ecx, [ebp - 0xdc5]
call fcn.004259e0
mov ebx, eax
test ebx, ebx
je 0x425581
lea edx, [ebp - 0x5b0]
push edx
mov ecx, esi
call fcn.00413670
mov edi, 1
jmp 0x425583
xor edi, edi
push str.Setup.ini
push 0x104
lea eax, [ebp - 0x218]
push eax
mov ecx, esi
call fcn.0041fdd0
mov ecx, esi
test eax, eax
je 0x4255e2
call fcn.0041d440
test esi, esi
je 0x4255b4
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0xdc5]
mov byte [ebp - 4], 1
call fcn.00402170
lea ecx, [ebp - 0xdd0]
mov dword [ebp - 4], 0xffffffff
call fcn.004231f0
xor eax, eax
jmp 0x4256df
push edi
call fcn.004215b0
mov edi, eax
test ebx, ebx
je 0x425601
push edi
lea ecx, [ebp - 0x5b0]
push ecx
lea ecx, [ebp - 0xdc5]
call fcn.00425940
mov ecx, esi
call fcn.0041d440
test edi, edi
je 0x4256a5
cmp edi, 0xbc2
je 0x425654
test esi, esi
je 0x425626
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0xdc5]
mov byte [ebp - 4], 1
call fcn.00402170
lea ecx, [ebp - 0xdd0]
mov dword [ebp - 4], 0xffffffff
call fcn.004231f0
xor eax, eax
jmp 0x4256df
test ebx, ebx
jne 0x4256a5
push 0x110
lea ecx, [ebp - 0x328]
push ebx
push ecx
call fcn.0052c850
add esp, 0xc
lea edx, [ebp - 0x32c]
push edx
mov dword [ebp - 0x32c], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x31c], 2
jne 0x42569b
push 1
push 0x55b44c
mov ecx, esi
call fcn.00413260
push 0
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
test esi, esi
je 0x4256b3
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0xdc5]
mov byte [ebp - 4], 1
call fcn.00402170
lea ecx, [ebp - 0xdd0]
mov dword [ebp - 4], 0xffffffff
call fcn.004231f0
mov eax, 1
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.0052c2ec
mov esp, ebp
pop ebp
ret