Function at 0x403950
Capabilities:
Delete registry key
Get common file path
Terminate process

Disassembly:
push ebp
lea ebp, [esp - 0x20c]
sub esp, 0x288
mov eax, dword [0x415050]
xor eax, ebp
mov dword [ebp + 0x208], eax
mov eax, dword [ebp + 0x214]
push ebx
push esi
push edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x21c]
mov edi, 0x103
xor ebx, ebx
push edi
mov dword [ebp - 8], eax
lea eax, [ebp + 0x105]
push ebx
push eax
mov byte [ebp + 0x104], bl
call fcn.00407070
add esp, 0xc
lea eax, [ebp + 0x104]
push eax
lea esi, [edi + 1]
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x4139cc
push dword [ebp - 8]
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
setne byte [ebp - 1]
call fcn.00402fd1
mov byte [ebp - 2], al
cmp al, bl
je 0x403a08
cmp byte [ebp - 1], bl
jne 0x403a08
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x403a08
lea ecx, [ebp + 0x104]
call fcn.004015ec
cmp eax, 0x64
je 0x403a01
push 0x40
push str.ArcadeWeb_Software_Installer
push str.This_application_requires_admin_privileges_to_run._Please_start_the_application_using_administrator_account.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, dword [ebp - 8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x403a0e
sub eax, edx
je 0x403a2c
cmp byte [ebp - 1], bl
jne 0x403a2c
cmp byte [ebp - 2], bl
je 0x403a2c
push dword [ebp - 8]
call fcn.00401180
pop ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.004042af
pop ecx
call fcn.004038eb
mov eax, dword [ebp - 0xc]
mov dword [0x416e78], eax
cmp byte [ebp - 1], bl
je 0x403a6d
push ebx
call fcn.00402a2e
call fcn.004014ee
mov dword [esp], str.SoftwareAppDataLowAWGAMECONFIG
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x403bf7
call fcn.00402436
push edi
lea eax, [ebp + 1]
push ebx
push eax
mov byte [ebp], bl
call fcn.00407070
add esp, 0xc
push esi
lea eax, [ebp]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp]
push eax
call fcn.004022f1
pop ecx
push 0x30
pop edi
push 1
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0x7f00
push ebx
mov dword [ebp - 0x2c], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x66
push dword [0x416e78]
mov dword [ebp - 0x30], eax
call esi
push 0x66
push dword [0x416e78]
mov dword [ebp - 0x34], eax
call esi
mov dword [ebp - 0x20], eax
mov eax, dword [0x416e78]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x4c]
push eax
mov dword [ebp - 0x44], 0x403c13
mov dword [ebp - 0x24], str.rmwlclass_7893EB695CB3
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x48], 3
call dword [sym.imp.USER32.dll_RegisterClassExA]
push ebx
lea eax, [ebp - 0x60]
push eax
push ebx
push edi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0x1a4
mov dword [ebp - 0x10], 0x97
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x58]
mov edi, dword [ebp - 0x10]
sub eax, ecx
cdq
sub eax, edx
mov esi, eax
mov eax, dword [ebp - 0x54]
push ebx
push dword [0x416e78]
sub eax, edi
sub edi, dword [ebp - 0x18]
push ebx
cdq
push ebx
sub eax, edx
sar esi, 1
sar eax, 1
sub ecx, dword [ebp - 0x1c]
push edi
push ecx
push eax
push esi
push 0xa0000
push str.Uninstaller_Software
push dword [ebp - 0x24]
push 8
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [sym.imp.USER32.dll_GetWindowLongA]
mov edi, eax
push 0xfffffffffffffff0
push edi
call esi
push 0xffffffffffffffec
push edi
mov dword [ebp - 0xc], eax
call esi
push eax
push ebx
push dword [ebp - 0xc]
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x18]
push 0x202
push eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
push eax
push ebx
push ebx
push ebx
push edi
call dword [sym.imp.USER32.dll_SetWindowPos]
push 5
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
jmp 0x403bea
lea eax, [ebp - 0x7c]
push eax
push edi
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x403bea
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebx
push ebx
push ebx
lea eax, [ebp - 0x7c]
push eax
call esi
test eax, eax
jne 0x403bc7
mov ecx, dword [ebp + 0x208]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00404175
add ebp, 0x20c
leave
ret 0x10