Function at 0x40c240
Capabilities:
Shutdown system

Disassembly:
push 0xffffffffffffffff
push 0x41cbcb
mov eax, dword fs:[0]
push eax
sub esp, 0x71c
mov eax, dword [0x4293c0]
xor eax, esp
mov dword [esp + 0x718], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4293c0]
xor eax, esp
push eax
lea eax, [esp + 0x730]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x1c], esi
push str.UninstCommandClass::UninstCommandClass_n
mov dword [esp + 0x73c], 0
call fcn.00404160
add esp, 4
cmp byte [esi], 0
je 0x40c2bc
push str.UninstCommandClass:_Changing_component_name_to_default_n
call fcn.00404160
add esp, 4
push str.Setreg_NVCompList_RegKeyNVU_FileComponent_Name
mov ecx, esi
call fcn.004026a0
jmp 0x40c876
cmp dword [0x42ec48], 0
je 0x40c338
mov ebx, dword [0x41d0d0]
jmp 0x40c2d0
mov eax, dword [0x42ec44]
mov eax, dword [eax]
mov edi, dword [eax + 8]
push edi
call ebx
test eax, eax
jne 0x40c30f
push eax
push edi
mov ecx, esi
call fcn.00404bd0
test al, al
push edi
je 0x40c302
push str.Deleting_file___s__at_reboot_requires_a_reboot_n
call fcn.00404160
mov byte [esi + 0x5e8], 1
jmp 0x40c30c
push str.Deleting_file___s__n
call fcn.00404160
add esp, 8
mov ecx, dword [0x42ec44]
mov eax, dword [ecx]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ecx], edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push eax
mov dword [ecx + 4], edx
call fcn.0040d975
add esp, 4
sub dword [0x42ec48], 1
jne 0x40c2d0
push str.LeaveBinaries
mov ecx, esi
call fcn.004010e0
test eax, eax
mov dword [esp + 0x14], eax
je 0x40c360
push str.Leaving_binaries_requires_a_reboot_n
call fcn.00404160
add esp, 4
mov byte [esi + 0x5e8], 1
push 0x103
lea eax, [esp + 0x25]
push 0
push eax
mov byte [esp + 0x2c], 0
call fcn.0040d980
push 0x41e1d4
push str.set_UninstallFiles_s.nvu
lea ecx, [esp + 0x34]
push 0x104
push ecx
call fcn.0040ddbc
add esp, 0x1c
lea edx, [esp + 0x20]
push edx
mov ecx, esi
call fcn.004026a0
push str.UninstallFiles
mov ecx, esi
call fcn.004010e0
push eax
mov ecx, esi
call fcn.004044d0
push 0x4205bc
push 0x41e140
push str.set_UninstallFiles_s_s.nvu
mov ebp, eax
lea eax, [esp + 0x2c]
push 0x104
push eax
call fcn.0040ddbc
add esp, 0x14
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004026a0
push str.UninstallFiles
mov ecx, esi
call fcn.004010e0
push eax
mov ecx, esi
call fcn.004044d0
test ebp, ebp
mov ebx, dword [0x41d0c4]
mov edi, eax
lea edx, [edi + ebp]
mov dword [esp + 0x18], edx
jne 0x40c568
cmp dword [esp + 0x14], 0
jne 0x40c568
push str.No_NVUs_found_in_this_location__deleting_uninstaller_executable..._n
call fcn.00404160
add esp, 4
push 0x41e1d4
mov ecx, esi
call fcn.004010e0
push eax
lea eax, [esp + 0x22c]
push 0x104
push eax
call fcn.0040ef61
mov edx, dword [esi + 0x554]
add esp, 0xc
push 0x104
lea ecx, [esp + 0x128]
push ecx
push edx
call ebx
lea eax, [esp + 0x124]
push eax
mov ecx, esi
call fcn.004012d0
push eax
lea ecx, [esp + 0x22c]
push ecx
push str._s_s
lea edx, [esp + 0x130]
push 0x104
push edx
call fcn.0040ddbc
add esp, 0x14
push 0x104
lea eax, [esp + 0x128]
push eax
mov ecx, esi
call fcn.00402310
push eax
lea ecx, [esp + 0x12c]
push 0x104
push ecx
call fcn.0040fd32
add esp, 0x10
push 0
lea edx, [esp + 0x128]
push edx
mov ecx, esi
call fcn.00404bd0
push str.set_Current_File
mov ecx, esi
call fcn.004026a0
lea eax, [esp + 0x228]
push eax
push str.DirAndApply__s_nvu.exe_del_Current_File
lea ecx, [esp + 0x28]
push 0x104
push ecx
call fcn.0040ddbc
add esp, 0x10
lea edx, [esp + 0x20]
push edx
mov ecx, esi
call fcn.004026a0
test edi, edi
jle 0x40c56a
push str.We_have_few_nvu_files_in_PF_Dir._So_set_UninstallString_reg_key_so_that_it_points_to_NVUNINST.exe_of_PF_DIR._n
call fcn.00404160
push 0x4205bc
push 0x41e140
push str.Setreg_NVUninst_RegKeyUninstallString_s_s_nvuninst.exe_UninstallGUI
lea eax, [esp + 0x30]
push 0x104
push eax
call fcn.0040ddbc
add esp, 0x18
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004026a0
push 0x4205bc
push 0x41e140
push str.Setreg_NVUninst_RegKeyDisplayIcon_s_s_nvuninst.exe
lea edx, [esp + 0x2c]
push 0x104
push edx
call fcn.0040ddbc
add esp, 0x14
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.004026a0
test edi, edi
jne 0x40c720
cmp dword [esp + 0x14], 0
jne 0x40c720
push str.No_NVUs_found_in_this_location__deleting_uninstaller_executable..._n
call fcn.00404160
add esp, 4
push 0x4205bc
push 0x41e140
mov ecx, esi
call fcn.004010e0
push eax
push str._s_s
lea ecx, [esp + 0x130]
push 0x104
push ecx
call fcn.0040ddbc
mov eax, dword [esi + 0x554]
add esp, 0x14
push 0x104
lea edx, [esp + 0x22c]
push edx
push eax
call ebx
lea ecx, [esp + 0x228]
push ecx
mov ecx, esi
call fcn.004012d0
push eax
lea edx, [esp + 0x128]
push edx
push str._s_s
lea eax, [esp + 0x234]
push 0x104
push eax
call fcn.0040ddbc
add esp, 0x14
push 0
lea ecx, [esp + 0x22c]
push ecx
mov ecx, esi
call fcn.00404bd0
push str.set_Current_File
mov ecx, esi
call fcn.004026a0
lea edx, [esp + 0x124]
push edx
push str.DirAndApply__s_nvu.exe_del_Current_File
lea eax, [esp + 0x28]
push 0x104
push eax
call fcn.0040ddbc
add esp, 0x10
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004026a0
mov edi, dword [0x41d11c]
push 4
push 0
lea edx, [esp + 0x12c]
push edx
call edi
test eax, eax
mov ebx, dword [0x41d204]
jne 0x40c67a
call ebx
push eax
lea eax, [esp + 0x128]
push eax
push str.Deletion_of__s_directory_failed._Error_code__d._n
call fcn.00404160
add esp, 0xc
push 0x41e140
mov ecx, esi
call fcn.004010e0
push eax
push str._sNVIDIA_Corporation
lea ecx, [esp + 0x28]
push 0x104
push ecx
call fcn.0040ddbc
add esp, 0x10
push 4
push 0
lea edx, [esp + 0x28]
push edx
call edi
test eax, eax
jne 0x40c6c2
call ebx
push eax
lea eax, [esp + 0x24]
push eax
push str.Deletion_of__s_directory_failed._Error_code__d._n
call fcn.00404160
add esp, 0xc
test ebp, ebp
jle 0x40c720
push str.We_have_few_nvu_files_in_system32_dir._So_set_UninstallString_reg_key_so_that_it_points_to_NVUNINST.exe_of_system32_dir._n
call fcn.00404160
push 0x41e1d4
push str.Setreg_NVUninst_RegKeyUninstallString_s_nvuninst.exe_UninstallGUI
lea ecx, [esp + 0x2c]
push 0x104
push ecx
call fcn.0040ddbc
add esp, 0x14
lea edx, [esp + 0x20]
push edx
mov ecx, esi
call fcn.004026a0
push 0x41e1d4
push str.Setreg_NVUninst_RegKeyDisplayIcon_s_nvuninst.exe
lea eax, [esp + 0x28]
push 0x104
push eax
call fcn.0040ddbc
add esp, 0x10
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004026a0
cmp dword [esp + 0x18], 0
jne 0x40c733
push str.Delreg_NVUninst_RegKey
mov ecx, esi
call fcn.004026a0
push str.ForceNoReboot
mov ecx, esi
call fcn.004010e0
cmp byte [esi + 0x5e8], 0
je 0x40c876
test eax, eax
je 0x40c766
push 0x41d538
push eax
call fcn.0040d89a
add esp, 8
test eax, eax
je 0x40c876
push str.Reboot_need_detected._n
call fcn.00404160
add esp, 4
push str.Silent
mov ecx, esi
mov ebx, 6
call fcn.004010e0
mov edi, eax
call fcn.00401bb0
movzx ebp, al
push ebp
push str.bIsInteractiveMode_is__d._n
call fcn.00404160
add esp, 8
test edi, edi
je 0x40c7b6
push 0x41d538
push edi
call fcn.0040d89a
add esp, 8
test eax, eax
je 0x40c858
test ebp, ebp
je 0x40c85c
push str.Running_in_interactive_mode__ask_user_for_reboot._n
call fcn.00404160
add esp, 4
push str.Two_Reboot_Required
mov ecx, esi
call fcn.004010e0
test eax, eax
je 0x40c80e
push 0x41d538
push eax
call fcn.0040d89a
add esp, 8
test eax, eax
jne 0x40c80e
push 0xa
mov ecx, esi
call entry0
push eax
lea edx, [esp + 0x330]
push 0x400
push edx
call fcn.0040ef61
add esp, 0xc
jmp 0x40c816
mov byte [esp + 0x32c], 0
push 2
mov ecx, esi
call entry0
push eax
lea eax, [esp + 0x330]
push 0x400
push eax
call fcn.0040fbfc
mov ecx, dword [esi + 0x550]
mov eax, dword [esi + 0x55c]
add esp, 0xc
push 0x40024
push ecx
lea edx, [esp + 0x334]
push edx
push eax
call dword [0x41d308]
mov ebx, eax
test ebp, ebp
jne 0x40c8b0
push str.Running_in_NON_interactive_mode__setting_non_reboot_flag._n
call fcn.00404160
add esp, 4
push str.User_chose_not_to_reboot_machine_n
call fcn.00404160
add esp, 4
mov ecx, esi
mov dword [esp + 0x738], 0xffffffff
call fcn.00402610
mov ecx, dword [esp + 0x730]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x718]
xor ecx, esp
call fcn.0040dd32
add esp, 0x728
ret
cmp ebx, 6
jne 0x40c869
push str.Rebooting_machine..._n
call fcn.00404160
add esp, 4
push 1
push str.SeShutdownPrivilege
mov ecx, esi
call fcn.00404420
push 0
push 2
call dword [0x41d370]
jmp 0x40c876