Function at 0x41f810
Capabilities:
Accept command line arguments
Check if file exists
Get common file path
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x314
mov eax, dword [0x46400c]
xor eax, esp
mov dword [esp + 0x310], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_FindWindowW]
push 0
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x10]
push 0x459c10
mov dword [esp + 0x78], eax
call edi
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
mov esi, eax
test esi, esi
je 0x41f882
push 9
push esi
call ebx
test eax, eax
je 0x41f882
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x310]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0x218
lea eax, [esp + 0x104]
push 0
push eax
call fcn.00431b40
add esp, 0xc
lea eax, [esp + 0xc8]
lea ecx, [esp + 0x100]
push eax
call fcn.00414510
lea ecx, [esp + 0x28]
call fcn.0040aae0
lea ecx, [esp + 0x30]
call fcn.0040aae0
lea ecx, [esp + 0x38]
call fcn.0040aae0
lea ecx, [esp + 0x40]
call fcn.0040aae0
lea ecx, [esp + 0x48]
call fcn.0040aae0
lea ecx, [esp + 0x50]
call fcn.0040aae0
lea ecx, [esp + 0x58]
call fcn.0040aae0
lea ecx, [esp + 0x60]
call fcn.0040aae0
lea eax, [esp + 0xc8]
mov dword [esp + 0x18], 0x7f
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x60]
lea eax, [esp + 0x100]
mov dword [esp + 0x1c], 0
push 0x459c2c
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0040ab90
push 0x459c40
lea ecx, [esp + 0x44]
call fcn.0040ab90
push 0
push str.UVK_Ultra_GUI
call edi
mov esi, eax
test esi, esi
jne 0x41f970
push str.__UVK
push str.AutoIt_v3_GUI
call edi
mov esi, eax
test esi, esi
je 0x41f9c0
lea eax, [esp + 0xb8]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
cmp dword [esp + 0xc0], 0x2bc
jl 0x41f9c0
cmp dword [esp + 0xc4], 0x1f4
jl 0x41f9c0
push 9
push esi
call ebx
test eax, eax
je 0x41f9c0
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
test eax, eax
je 0x41f9c0
push ecx
xor edx, edx
lea ecx, [esp + 0x14]
call fcn.00420500
mov esi, eax
jmp 0x420484
xor edx, edx
mov ecx, str.HKCUSoftwareUVK
call fcn.0040e7b0
test al, al
je 0x41f9df
mov edx, str.HKLM64SOFTWAREUVK___Ultra_virus_killer
mov ecx, str.HKCUSoftwareUVK
call fcn.0040e380
xor edx, edx
mov ecx, str.HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstallUVK
call fcn.0040e7b0
test al, al
je 0x41f9fe
mov edx, str.HKLM64SOFTWAREMicrosoftWindowsCurrentVersionUninstallUVK___Ultra_virus_killer
mov ecx, str.HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstallUVK
call fcn.0040e380
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
call fcn.00410bf0
push 0x20019
push str.HKLM64SOFTWAREMicrosoftWindowsCurrentVersionUninstallUVK___Ultra_virus_killer
lea ecx, [esp + 0xac]
mov byte [esp + 0x94], al
mov dword [esp + 0xac], 0
call fcn.0040d4c0
push 0x20019
push str.HKLM64SOFTWAREUVK___Ultra_virus_killer
lea ecx, [esp + 0x74]
mov dword [esp + 0x74], 0
call fcn.0040d4c0
xorps xmm0, xmm0
lea ecx, [esp + 0xb0]
movq qword [esp + 0xb0], xmm0
call fcn.0040aae0
lea eax, [esp + 0x28]
push eax
push str.InstallLocation
lea ecx, [esp + 0xac]
call fcn.0040d660
lea ecx, [esp + 0x28]
call fcn.0040ac70
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41fabd
lea ecx, [esp + 0x28]
call fcn.0040ad30
push eax
call ebx
test eax, eax
je 0x41fabd
push 0
push 1
push 1
push 0
push str.UVK
lea ecx, [esp + 0x3c]
call fcn.0040b6c0
test eax, eax
jne 0x41fb42
lea ecx, [esp + 0x28]
call fcn.0040ac20
xorps xmm0, xmm0
lea ecx, [esp + 0x9c]
movq qword [esp + 0x9c], xmm0
call fcn.0040aae0
push dword [esp + 0x8c]
lea edx, [esp + 0xa0]
lea ecx, [esp + 0xb4]
call fcn.00411000
lea ecx, [esp + 0xb0]
call fcn.0040ae70
test al, al
jne 0x41fb36
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str.UVK___Ultra_Virus_Killer
lea ecx, [esp + 0xdc]
call fcn.0040ad30
push eax
lea ecx, [esp + 0x58]
call fcn.0040acd0
lea ecx, [esp + 0x9c]
call fcn.0040ac10
push 0x400
push 0
push 0x400
lea ecx, [esp + 0x64]
call fcn.0040afa0
mov esi, dword [esp + 0x80]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x54]
call fcn.0040aba0
push 0
lea ecx, [esp + 0x54]
call fcn.0040ae30
xorps xmm0, xmm0
lea ecx, [esp + 0xb8]
movq qword [esp + 0xb8], xmm0
call fcn.0040aae0
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str.key.uvkey
lea ecx, [esp + 0x7c]
call fcn.0040ad30
push eax
lea ecx, [esp + 0x60]
call fcn.0040acd0
lea ecx, [esp + 0x30]
call fcn.0040ad30
push eax
call ebx
test eax, eax
jne 0x41fbf4
push ecx
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push str.key.uvkey
lea ecx, [esp + 0x54]
call fcn.0040ad30
push eax
lea ecx, [esp + 0x60]
call fcn.0040acd0
call fcn.00412680
lea ecx, [esp + 0x30]
mov dword [0x466af4], eax
call fcn.0040ad30
push eax
call ebx
test eax, eax
je 0x41fc17
lea ecx, [esp + 0x10]
call fcn.00420540
xorps xmm0, xmm0
lea ecx, [esp + 0xa8]
movq qword [esp + 0xa8], xmm0
call fcn.0040aae0
xorps xmm0, xmm0
lea ecx, [esp + 0x9c]
movq qword [esp + 0x9c], xmm0
call fcn.0040aae0
push 0
push 0x200
lea ecx, [esp + 0x50]
call fcn.0040afa0
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str.UVKSetup
lea ecx, [esp + 0x78]
call fcn.0040b970
push 0
push 0
push 0x45876c
push 0x458c20
lea ecx, [esp + 0x58]
call fcn.0040bdc0
lea ecx, [esp + 0x48]
call fcn.0040ad30
or edx, 0xffffffff
mov ecx, eax
call fcn.00410ce0
cmp dword [esp + 0x1c], 2
mov dword [esp + 0x68], 0
jne 0x41fcca
cmp dword [esp + 0x20], 0
jne 0x41feee
lea eax, [esp + 0x68]
push eax
push str.EulaAccepted
lea ecx, [esp + 0x74]
call fcn.0040d7a0
test al, al
je 0x41fcec
cmp dword [esp + 0x68], 0
jne 0x41feee
push ecx
call fcn.00417030
sub esp, 0x20
lea ecx, [esp + 0x60]
call fcn.0040ad30
push eax
push ecx
lea ecx, [esp + 0x128]
call fcn.00414540
sub esp, 0x10
lea ecx, [esp + 0x110]
push esi
call fcn.00415260
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str.License.htm
lea ecx, [esp + 0x74]
call fcn.0040ad30
push eax
lea ecx, [esp + 0xd8]
call fcn.0040acd0
lea ecx, [esp + 0xa8]
call fcn.0040ad30
push eax
push 0xa
push 0xc8
push esi
call fcn.00418e80
push 0
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0x400
push eax
push 0
push 0x400
lea ecx, [esp + 0xac]
call fcn.0040afa0
push eax
lea ecx, [esp + 0xb4]
call fcn.0040ad30
push eax
call dword [sym.imp.SHLWAPI.dll_UrlCreateFromPathW]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str.UVK.png
lea ecx, [esp + 0x74]
call fcn.0040ad30
push eax
lea ecx, [esp + 0xd8]
call fcn.0040acd0
lea ecx, [esp + 0xa8]
call fcn.0040ad30
push eax
push 0x459780
push 0x64
push esi
call fcn.00418e80
sub esp, 0x18
lea ecx, [esp + 0xb4]
call fcn.0040ad30
push eax
lea ecx, [esp + 0x11c]
call fcn.00416d50
push ecx
mov dword [esp], 0x41500000
push str.Continue_installation
sub esp, 0xc
lea ecx, [esp + 0x114]
mov edx, str.I_Accept
push 0x78
push 0x67
call fcn.00413c70
push ecx
mov dword [esp], 0x41500000
lea ecx, [esp + 0x104]
push str.Cancel_installation
sub esp, 0xc
mov edx, str.I_Decline
mov esi, eax
push 0x168
push 0x68
call fcn.00413c70
sub esp, 8
lea ecx, [esp + 0x108]
mov edi, eax
call fcn.004153e0
push 0x80
push esi
lea ecx, [esp + 0x108]
call fcn.00417bd0
lea ecx, [esp + 0xc8]
call fcn.00413a30
test eax, eax
je 0x41febc
nop word [eax + eax]
mov eax, dword [esp + 0xc8]
cmp eax, 0xfffffffb
je 0x42010f
cmp eax, edi
je 0x42010f
cmp eax, esi
je 0x41febc
lea ecx, [esp + 0xc8]
call fcn.00413a30
test eax, eax
jne 0x41fe90
lea ecx, [esp + 0x100]
call fcn.00414760
push ecx
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 1
push eax
push 4
push str.EulaAccepted
push str.HKLM64SOFTWAREUVK___Ultra_virus_killer
lea ecx, [esp + 0x80]
call fcn.0040da30
sub esp, 0x1c
lea ecx, [esp + 0x6c]
xorps xmm0, xmm0
movq qword [esp + 0xa8], xmm0
push 0
push 0
push 0
push str.UVKSettings.ini
call fcn.0040ad30
push eax
lea ecx, [esp + 0xbc]
call fcn.0040ab50
cmp dword [esp + 0x20], 0
je 0x420008
lea ecx, [esp + 0x8c]
call fcn.0040ad30
push eax
call ebx
test eax, eax
je 0x420008
lea ecx, [esp + 0x8c]
call fcn.0040ad30
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push eax
push 1
push str.DesktopShortcut
push str.Preferences
call edi
mov esi, dword [esp + 0x18]
test eax, eax
jne 0x41ff70
and esi, 0xffffffef
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x8c]
call fcn.0040ad30
push eax
push 1
push str.ContextMenu
push str.Preferences
call edi
test eax, eax
jne 0x41ff96
and esi, 0xfffffffb
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x8c]
call fcn.0040ad30
push eax
push 1
push str.AssociateUVKScripts
push str.Preferences
call edi
test eax, eax
jne 0x41ffbc
and esi, 0xfffffff7
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x8c]
call fcn.0040ad30
push eax
push 1
push str.AutoUpdate
push str.Preferences
call edi
test eax, eax
jne 0x41ffe2
and esi, 0xffffffdf
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x8c]
call fcn.0040ad30
push eax
push 1
push str.ShowTooltips
push str.Preferences
call edi
test eax, eax
jne 0x420008
and esi, 0xffffffbf
mov dword [esp + 0x18], esi
xorps xmm0, xmm0
lea ecx, [esp + 0x7c]
movq qword [esp + 0x7c], xmm0
call fcn.0040aae0
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x78], 0
mov byte [esp + 0xf], 0
call fcn.0040c840
cmp eax, 1
jle 0x420323
lea eax, [esp + 0x78]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [esp + 0x78], 0
mov edi, eax
je 0x420323
test edi, edi
je 0x420323
xorps xmm0, xmm0
lea ecx, [esp + 0x84]
movq qword [esp + 0x84], xmm0
call fcn.0040aae0
xorps xmm0, xmm0
lea ecx, [esp + 0x70]
movq qword [esp + 0x70], xmm0
call fcn.0040aae0
xorps xmm0, xmm0
lea ecx, [esp + 0x94]
movq qword [esp + 0x94], xmm0
call fcn.0040aae0
xor esi, esi
cmp dword [esp + 0x78], esi
jle 0x4202d5
nop dword [eax + eax]
push dword [edi + esi*4]
lea ecx, [esp + 0x74]
call fcn.0040ab90
push 0
push 0
push 0x455d58
push 0x458f44
lea ecx, [esp + 0x80]
call fcn.0040bdc0
lea ecx, [esp + 0x70]
call fcn.0040ac70
cmp eax, 2
jl 0x4202ca
lea ecx, [esp + 0x70]
call fcn.0040ad30
push eax
call ebx
test eax, eax
jne 0x420122
push ecx
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push dword [edi + esi*4]
push 0x458ee8
jmp 0x4202be
push ecx
xor edx, edx
lea ecx, [esp + 0x14]
call fcn.00420500
mov esi, eax
jmp 0x42043f
lea ecx, [esp + 0x70]
call fcn.0040ad30
push eax
push 0x400
lea ecx, [esp + 0x78]
call fcn.0040afa0
push 0x400
lea ecx, [esp + 0x74]
call fcn.0040ad30
push eax
lea ecx, [esp + 0x78]
call fcn.0040ad30
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x88]
call fcn.0040aba0
push ecx
lea ecx, [esp + 0x88]
call fcn.0040ad90
cmp dword [esp + 0x78], 1
jne 0x420296
push str..uvksr
lea ecx, [esp + 0x88]
call fcn.0040abd0
test al, al
je 0x420250
push ecx
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 1
push eax
push 4
push str.AutoLoadLastSR
push str.HKLM64SOFTWAREUVK___Ultra_virus_killer
lea ecx, [esp + 0x80]
call fcn.0040da30
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str.SystemRepair
push str.HKLM64SOFTWAREUVK___Ultra_virus_killer
lea ecx, [esp + 0xc4]
call fcn.0040acd0
push ecx
lea ecx, [esp + 0x74]
call fcn.0040ad30
push eax
push 1
push str.LastSRFile
lea ecx, [esp + 0xa4]
call fcn.0040ad30
push eax
lea ecx, [esp + 0x80]
call fcn.0040da30
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x458f44
lea ecx, [esp + 0x98]
call fcn.0040ad30
push eax
push str.__ImportSr__
lea ecx, [esp + 0xac]
call fcn.0040b970
mov byte [esp + 0xf], 1
jmp 0x4202ca
cmp dword [esp + 0x78], 1
jne 0x420296
push str..uvk
lea ecx, [esp + 0x88]
call fcn.0040abd0
test al, al
je 0x420296
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x458f44
lea ecx, [esp + 0x98]
call fcn.0040ad30
push eax
push str.__ReadFile__
jmp 0x4202be
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x458f44
lea ecx, [esp + 0x98]
call fcn.0040ad30
push eax
push 0x45a134
lea ecx, [esp + 0xac]
call fcn.0040b970
inc esi
cmp esi, dword [esp + 0x78]
jl 0x4200b0
lea ecx, [esp + 0x7c]
call fcn.0040ac70
cmp eax, 2
jle 0x4202f0
lea ecx, [esp + 0x7c]
call fcn.0040ad30
mov dword [esp + 0x24], eax
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [esp + 0x94]
call fcn.0040ac10
lea ecx, [esp + 0x70]
call fcn.0040ac10
lea ecx, [esp + 0x84]
call fcn.0040ac10
cmp byte [esp + 0xf], 0
jne 0x420413
xorps xmm0, xmm0
lea ecx, [esp + 0x84]
movq qword [esp + 0x84], xmm0
call fcn.0040aae0
sub esp, 0x1c
lea ecx, [esp + 0x6c]
xorps xmm0, xmm0
movq qword [esp + 0xb0], xmm0
push 0
push 0
push 0
push str.UVK_SR_settings.uvksr
call fcn.0040ad30
push eax
lea ecx, [esp + 0xc4]
call fcn.0040ab50
lea ecx, [esp + 0x94]
call fcn.0040ad30
push eax
call ebx
test eax, eax
je 0x4203fb
push ecx
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 1
push eax
push 4
push str.AutoLoadLastSR
push str.HKLM64SOFTWAREUVK___Ultra_virus_killer
lea ecx, [esp + 0x80]
call fcn.0040da30
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str.SystemRepair
push str.HKLM64SOFTWAREUVK___Ultra_virus_killer
lea ecx, [esp + 0xb4]
call fcn.0040acd0
push ecx
lea ecx, [esp + 0x98]
call fcn.0040ad30
push eax
push 1
push str.LastSRFile
lea ecx, [esp + 0x94]
call fcn.0040ad30
push eax
lea ecx, [esp + 0x80]
call fcn.0040da30
lea ecx, [esp + 0x94]
call fcn.0040ac10
lea ecx, [esp + 0x84]
call fcn.0040ac10
lea ecx, [esp + 0x10]
call fcn.00420a60
push ecx
mov edx, eax
lea ecx, [esp + 0x14]
call fcn.00420500
lea ecx, [esp + 0x7c]
mov esi, eax
call fcn.0040ac10
lea ecx, [esp + 0x8c]
call fcn.0040ac10
lea ecx, [esp + 0x9c]
call fcn.0040ac10
lea ecx, [esp + 0xa8]
call fcn.0040ac10
lea ecx, [esp + 0xb8]
call fcn.0040ac10
lea ecx, [esp + 0xb0]
call fcn.0040ac10
lea ecx, [esp + 0x6c]
call fcn.0040d530
lea ecx, [esp + 0xa4]
call fcn.0040d530
lea ecx, [esp + 0x60]
call fcn.0040ac10
lea ecx, [esp + 0x58]
call fcn.0040ac10
lea ecx, [esp + 0x50]
call fcn.0040ac10
lea ecx, [esp + 0x48]
call fcn.0040ac10
lea ecx, [esp + 0x40]
call fcn.0040ac10
lea ecx, [esp + 0x38]
call fcn.0040ac10
lea ecx, [esp + 0x30]
call fcn.0040ac10
lea ecx, [esp + 0x28]
call fcn.0040ac10
lea ecx, [esp + 0x100]
call fcn.00416cf0
mov ecx, dword [esp + 0x31c]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10