Function at 0x41d190
Capabilities:
Check if file exists
Copy file
Delete file
Get common file path
Get file attributes
Hide graphical window
Shutdown system

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45bc33
mov eax, dword fs:[0]
push eax
sub esp, 0x364
mov eax, dword [0x486850]
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
mov edi, edx
mov dword [ebp - 0x36c], edi
mov esi, dword [ebp + 8]
mov dword [ebp - 4], 9
call fcn.0043b620
test al, al
jne 0x41d1e3
mov ecx, 1
call fcn.004187d0
lea ecx, [ebp - 0x31c]
mov dword [ebp - 0x370], 0
call fcn.0041b3e0
sub esp, 0x18
mov ecx, esp
mov byte [ebp - 4], 0xa
xor eax, eax
push 0xffffffffffffffff
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push eax
mov word [ecx], ax
lea eax, [ebp - 0x31c]
push eax
call fcn.004024b0
call fcn.0041cba0
add esp, 0x18
test al, al
je 0x41d2a4
call fcn.00438f40
cmp eax, 6
jne 0x41d57a
lea eax, [ebp - 0x354]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x41d2a4
lea eax, [ebp - 0x224]
push eax
push str.SeShutdownPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
push 0
push 0
push 0
lea eax, [ebp - 0x228]
push eax
push 0
push dword [ebp - 0x354]
mov dword [ebp - 0x228], 1
mov dword [ebp - 0x21c], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
push 0
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
xor eax, eax
mov dword [ebp - 0x290], 7
mov dword [ebp - 0x294], 0
mov word [ebp - 0x2a4], ax
xor ebx, ebx
mov dword [ebp - 0x358], eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x22c], 7
mov dword [ebp - 0x230], ebx
mov word [ebp - 0x240], ax
mov dword [ebp - 0x2a8], 7
mov dword [ebp - 0x2ac], ebx
mov word [ebp - 0x2bc], ax
mov dword [ebp - 0x320], 7
mov dword [ebp - 0x324], ebx
mov word [ebp - 0x334], ax
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x35c], eax
call fcn.00419840
mov edx, dword [ebp + 0x28]
test edx, edx
jne 0x41d5b3
mov eax, dword [ebp + 0x40]
test eax, eax
jne 0x41d5b3
mov ecx, dword [ebp + 0x58]
test ecx, ecx
jne 0x41d5b3
cmp byte [0x4893d6], cl
je 0x41d3e6
test edx, edx
jne 0x41d3e6
test eax, eax
jne 0x41d3e6
test ecx, ecx
jne 0x41d3e6
push str.UPDATE
lea ecx, [ebp - 0x28c]
call fcn.00402a00
push ebx
push ebx
push str.true
sub esp, 8
lea edx, [ebx + 2]
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x17
call fcn.0042b0d0
add esp, 0x14
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x28c]
mov byte [ebp - 4], 0x18
call fcn.00401cf0
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x17
call fcn.004023c0
cmp dword [ebp - 0x278], 8
mov ecx, dword [ebp - 0x28c]
jae 0x41d3d2
lea ecx, [ebp - 0x28c]
call fcn.0042b670
lea ecx, [ebp - 0x28c]
mov byte [ebp - 4], 0xf
call fcn.004023c0
lea eax, [ebp - 0x2a4]
push edi
push eax
mov edx, esi
lea ecx, [ebp - 0x2d4]
call fcn.0041b4a0
add esp, 8
push 0
push 0
mov byte [ebp - 4], 0x19
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
push 0xbce
push dword [0x4893e8]
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov edi, eax
lea eax, [ebp - 0x2fc]
push eax
push edi
mov dword [ebp - 0x370], edi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x2f4]
push 0
push 0
push 0
push edi
push 0x14
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x2f0]
add eax, 0xffffffe2
push eax
mov eax, dword [ebp - 0x2fc]
add eax, 8
push eax
push 0x50000000
push 0
push str.msctls_progress32
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x50000008
mov esi, eax
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 0
push 1
push 0x40a
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x2a4]
push eax
mov ecx, 0x489428
call fcn.00421790
push dword [eax]
mov esi, dword [sym.imp.USER32.dll_SetWindowTextW]
push edi
call esi
lea eax, [ebp - 0x2a4]
push eax
mov ecx, 0x4894d0
call fcn.00421790
push dword [eax]
push 0xbcf
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call esi
cmp dword [ebp - 0x2c0], 8
mov eax, dword [ebp - 0x2d4]
jae 0x41d4e2
lea eax, [ebp - 0x2d4]
mov ecx, str.ABORT
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41d50d
test dx, dx
je 0x41d509
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41d50d
add eax, 4
add ecx, 4
test dx, dx
jne 0x41d4e7
xor eax, eax
jmp 0x41d512
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41d581
sub esp, 0x18
cmp dword [ebp - 0x36c], 3
mov ecx, esp
jne 0x41d53c
lea eax, [ebp - 0x2a4]
push eax
call fcn.004033b0
xor cl, cl
call fcn.0041a7f0
add esp, 0x18
jmp 0x41d57a
mov dword [ebp - 0x364], esp
push 0x468378
call fcn.00402a00
sub esp, 0x18
lea eax, [ebp - 0x2a4]
mov ecx, esp
push eax
mov byte [ebp - 4], 0x1a
call fcn.004033b0
push 1
mov edx, 0x642
lea ecx, [ebp - 0x36c]
mov byte [ebp - 4], 0x19
call fcn.0041a180
add esp, 0x34
xor ecx, ecx
call fcn.004187d0
lea eax, [ebp - 0x2d4]
push eax
lea ecx, [ebp - 0x224]
call fcn.004216b0
lea ecx, [ebp - 0x2d4]
mov byte [ebp - 4], 0xf
call fcn.004023c0
mov ebx, dword [ebp - 0x220]
mov esi, dword [ebp - 0x224]
jmp 0x41ddd9
cmp byte [0x4893d5], 0
jne 0x41d5d4
push 0
push 0x4396f0
push 0xa
push 0
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
mov byte [0x4893d5], 1
mov eax, dword [0x489544]
mov esi, dword [0x489540]
sub eax, esi
test eax, 0xfffffffc
jne 0x41d60c
push str.No_language_pack_found
lea ecx, [ebp - 0x270]
call fcn.00402a00
mov edx, 0x80004005
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x10
call fcn.00418810
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp - 0x360], ecx
mov ecx, dword [ebp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x41d80a
xor esi, esi
mov dword [ebp - 0x354], esi
jmp 0x41d640
push 3
lea ecx, [edi + esi]
push 0x46a50c
push dword [ecx + 0x10]
push ecx
call fcn.00403600
test eax, eax
je 0x41d7d0
mov eax, dword [0x489544]
mov ecx, dword [0x489540]
sub eax, ecx
sar eax, 2
xor esi, esi
test eax, eax
je 0x41d6e9
mov eax, dword [ecx + esi*4]
mov edi, dword [ebp + 0xc]
add edi, dword [ebp - 0x354]
lea ecx, [eax*8]
sub ecx, eax
cmp word [ecx*4 + 0x4877e0], 0
lea edx, [ecx*4 + 0x4877e0]
jne 0x41d69c
xor ecx, ecx
jmp 0x41d6ba
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x364], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41d6a7
sub ecx, dword [ebp - 0x364]
sar ecx, 1
push ecx
push edx
push dword [edi + 0x10]
push ecx
mov ecx, edi
call fcn.00403600
test eax, eax
sete al
test al, al
jne 0x41d7ca
mov eax, dword [0x489544]
mov ecx, dword [0x489540]
sub eax, ecx
inc esi
sar eax, 2
cmp esi, eax
jb 0x41d671
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_AttachConsole]
test eax, eax
je 0x41d751
mov dword [ebp - 0x364], 0
call fcn.0043dfc2
add eax, 0x20
push eax
push 0x46970c
lea eax, [ebp - 0x364]
push 0x46bb30
push eax
call fcn.004403eb
push 0x46bb34
call fcn.0043fc69
mov eax, dword [ebp - 0x360]
add esp, 0x14
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*8 + 0x14], 8
lea eax, [eax + ecx*8]
jb 0x41d743
mov eax, dword [eax]
push eax
push str._nSpecified_Language___s__is_not_supported__n
call fcn.0043fc69
add esp, 8
call dword [sym.imp.KERNEL32.dll_FreeConsole]
mov esi, dword [sym.imp.USER32.dll_SendInput]
xor eax, eax
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], eax
mov eax, 0xd
mov word [ebp - 0x270], ax
push 0x1c
lea eax, [ebp - 0x274]
push eax
push 1
mov dword [ebp - 0x274], 1
call esi
push 0x1c
lea eax, [ebp - 0x274]
push eax
push 1
mov dword [ebp - 0x26c], 2
call esi
xor ecx, ecx
call fcn.004187d0
mov esi, dword [ebp - 0x354]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
inc dword [ebp - 0x360]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add esi, 0x18
add eax, edx
mov dword [ebp - 0x354], esi
cmp dword [ebp - 0x360], eax
jb 0x41d640
mov esi, dword [0x489540]
mov ecx, dword [ebp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x41d8cc
push dword [ebp - 0x364]
xor edx, edx
push ecx
xor ecx, ecx
call fcn.0040b890
mov eax, dword [0x489544]
mov esi, dword [0x489540]
sub eax, esi
xor ebx, ebx
sar eax, 2
add esp, 8
xor edi, edi
mov dword [ebp - 0x220], ebx
test eax, eax
je 0x41d8c9
jmp 0x41d860
mov edx, dword [0x48954c]
lea ecx, [ebp - 0x258]
lea edx, [ebx + edx]
call fcn.004191e0
push eax
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x12
call fcn.00421630
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x244], 8
jb 0x41d89f
push dword [ebp - 0x258]
call fcn.0043d3af
add esp, 4
mov eax, dword [0x489544]
mov esi, dword [0x489540]
sub eax, esi
inc edi
sar eax, 2
add ebx, 0x18
cmp edi, eax
jb 0x41d860
mov eax, dword [ebp - 0x224]
mov ebx, dword [ebp - 0x220]
mov dword [ebp - 0x358], eax
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp - 0x360], ecx
mov ecx, dword [ebp + 0x10]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x41dc81
xor ebx, ebx
mov dword [ebp - 0x354], ebx
jmp 0x41d900
mov edx, dword [edi + ebx + 0x10]
lea ecx, [edi + ebx]
mov dword [ebp - 0x358], edx
mov ebx, edx
cmp edx, 3
jb 0x41d919
mov ebx, 3
cmp dword [ecx + 0x14], 8
jb 0x41d921
mov ecx, dword [ecx]
test ebx, ebx
je 0x41d947
mov edx, 0x46a50c
lea ebx, [ebx]
mov ax, word [ecx]
cmp ax, word [edx]
jne 0x41d957
add ecx, 2
add edx, 2
dec ebx
jne 0x41d930
mov edx, dword [ebp - 0x358]
xor eax, eax
test eax, eax
jne 0x41d975
cmp edx, 3
jae 0x41d96b
or eax, 0xffffffff
jmp 0x41d973
movzx eax, word [ecx]
cmp ax, word [edx]
mov edx, dword [ebp - 0x358]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x41d949
xor eax, eax
cmp edx, 3
setne al
test eax, eax
sete al
test al, al
jne 0x41daa7
mov eax, dword [0x489544]
sub eax, esi
sar eax, 2
xor ebx, ebx
test eax, eax
je 0x41da59
jmp 0x41d9a0
mov eax, dword [esi + ebx*4]
add edi, dword [ebp - 0x354]
lea ecx, [eax*8]
sub ecx, eax
cmp word [ecx*4 + 0x4877e0], 0
lea edx, [ecx*4 + 0x4877e0]
jne 0x41d9c8
xor eax, eax
jmp 0x41d9df
mov eax, edx
lea esi, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d9d0
sub eax, esi
sar eax, 1
push eax
push edx
push dword [edi + 0x10]
push ecx
mov ecx, edi
call fcn.00403600
test eax, eax
sete al
test al, al
jne 0x41da0f
mov eax, dword [0x489544]
mov esi, dword [0x489540]
mov edi, dword [ebp + 0xc]
sub eax, esi
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x41d9a0
jmp 0x41da59
mov eax, dword [0x48954c]
lea ecx, [ebx + ebx*2]
lea edx, [eax + ecx*8]
lea ecx, [ebp - 0x258]
call fcn.004191e0
push eax
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x16
call fcn.00421630
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x244], 8
jb 0x41da50
push dword [ebp - 0x258]
call fcn.0043d3af
add esp, 4
mov esi, dword [0x489540]
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x354]
inc dword [ebp - 0x360]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add ebx, 0x18
add eax, edx
mov dword [ebp - 0x354], ebx
cmp dword [ebp - 0x360], eax
jb 0x41d900
mov eax, dword [ebp - 0x224]
mov ebx, dword [ebp - 0x220]
mov dword [ebp - 0x358], eax
jmp 0x41dc81
mov eax, dword [ebp - 0x224]
mov ecx, dword [ebp - 0x220]
mov dword [ebp - 0x358], eax
mov ebx, eax
cmp eax, ecx
je 0x41daff
nop
cmp dword [ebx + 0x14], 8
jb 0x41dad6
push dword [ebx]
call fcn.0043d3af
mov ecx, dword [ebp - 0x220]
add esp, 4
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov word [ebx], ax
add ebx, 0x18
cmp ebx, ecx
jne 0x41dac0
mov edi, dword [ebp + 0xc]
mov esi, dword [0x489540]
mov eax, dword [ebp - 0x358]
mov ebx, eax
mov eax, dword [0x489544]
sub eax, esi
sar eax, 2
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x354], 0
test eax, eax
je 0x41dc81
xor edi, edi
jmp 0x41db30
mov edx, dword [0x48954c]
lea ecx, [ebp - 0x258]
lea edx, [edi + edx]
call fcn.004191e0
mov esi, eax
mov byte [ebp - 4], 0x14
cmp esi, ebx
jae 0x41dc00
mov ecx, dword [ebp - 0x358]
cmp ecx, esi
ja 0x41dc00
sub esi, ecx
mov eax, 0x2aaaaaab
imul esi
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp ebx, dword [ebp - 0x21c]
jne 0x41db99
push ecx
lea ecx, [ebp - 0x224]
call fcn.00421e30
mov ecx, dword [ebp - 0x224]
mov ebx, dword [ebp - 0x220]
mov dword [ebp - 0x358], ecx
lea eax, [esi + esi*2]
lea esi, [ecx + eax*8]
test ebx, ebx
je 0x41dc32
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov word [ebx], ax
cmp dword [esi + 0x14], 8
jae 0x41dbd5
mov eax, dword [esi + 0x10]
inc eax
je 0x41dbdf
add eax, eax
push eax
push esi
push ebx
call fcn.0043d420
add esp, 0xc
jmp 0x41dbdf
mov eax, dword [esi]
mov dword [ebx], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x14], eax
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
jmp 0x41dc32
cmp ebx, dword [ebp - 0x21c]
jne 0x41dc26
push ecx
lea ecx, [ebp - 0x224]
call fcn.00421e30
mov eax, dword [ebp - 0x224]
mov ebx, dword [ebp - 0x220]
mov dword [ebp - 0x358], eax
test ebx, ebx
je 0x41dc32
push esi
mov ecx, ebx
call fcn.00402330
add ebx, 0x18
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x244], 8
mov dword [ebp - 0x220], ebx
jb 0x41dc56
push dword [ebp - 0x258]
call fcn.0043d3af
add esp, 4
mov eax, dword [0x489544]
mov esi, dword [0x489540]
mov ecx, dword [ebp - 0x354]
sub eax, esi
inc ecx
sar eax, 2
add edi, 0x18
mov dword [ebp - 0x354], ecx
cmp ecx, eax
jb 0x41db30
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp edi, ecx
je 0x41dd3b
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x41dcc3
lea eax, [ebp - 0x2a4]
cmp eax, edi
je 0x41ddd1
push 0xffffffffffffffff
push 0
push edi
mov ecx, eax
call fcn.004024b0
jmp 0x41ddd1
xor esi, esi
test eax, eax
je 0x41dca4
xor eax, eax
mov dword [ebp - 0x354], eax
push 5
lea ecx, [edi + eax]
push 0x46b1c0
push dword [ecx + 0x10]
push ecx
call fcn.00403600
test eax, eax
je 0x41dd15
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
add dword [ebp - 0x354], 0x18
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
inc esi
cmp esi, eax
mov eax, dword [ebp - 0x354]
jb 0x41dcd1
jmp 0x41dca4
mov eax, dword [ebp + 0xc]
lea ecx, [esi + esi*2]
lea eax, [eax + ecx*8]
lea ecx, [ebp - 0x2a4]
cmp ecx, eax
je 0x41ddd1
push 0xffffffffffffffff
push 0
push eax
call fcn.004024b0
jmp 0x41ddd1
mov ecx, dword [0x489544]
sub ecx, esi
sar ecx, 2
xor eax, eax
test ecx, ecx
je 0x41dd5b
lea esp, [esp]
cmp dword [esi + eax*4], 3
je 0x41dd7c
inc eax
cmp eax, ecx
jb 0x41dd50
mov eax, dword [esi]
lea ecx, [eax*8]
sub ecx, eax
cmp word [ecx*4 + 0x4877e0], 0
lea edx, [ecx*4 + 0x4877e0]
jne 0x41ddb0
xor ecx, ecx
jmp 0x41ddc4
mov eax, dword [esi + eax*4]
lea ecx, [eax*8]
sub ecx, eax
cmp word [ecx*4 + 0x4877e0], 0
lea edx, [ecx*4 + 0x4877e0]
jne 0x41dd9e
xor ecx, ecx
jmp 0x41ddc4
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41dda3
jmp 0x41ddc0
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ddb5
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2a4]
call fcn.00402900
mov esi, dword [ebp - 0x358]
xor edi, edi
cmp dword [ebp - 0x36c], 3
jne 0x41de4b
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x364], esp
xor eax, eax
push 0xffffffffffffffff
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push eax
mov word [ecx], ax
lea eax, [ebp + 0x48]
push eax
call fcn.004024b0
sub esp, 0x18
mov ecx, esp
mov byte [ebp - 4], 0x1b
xor eax, eax
push 0xffffffffffffffff
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push eax
mov word [ecx], ax
lea eax, [ebp + 0x18]
push eax
call fcn.004024b0
push 1
mov dl, 1
mov ecx, 3
mov byte [ebp - 4], 0xf
call fcn.0041bed0
add esp, 0x34
jmp 0x41de58
test edi, edi
je 0x41de58
push 5
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0xd8]
push eax
lea ecx, [ebp - 0x240]
call fcn.00401cf0
push 0xc
push str._LANGSTRING
lea ecx, [ebp - 0x240]
call fcn.00401b20
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x240]
call fcn.00401cf0
push 0x11
push str._EMBEDDEDLICENSE
lea ecx, [ebp - 0x240]
call fcn.00401b20
cmp byte [0x4893f3], 0
mov edx, 0x4692ac
jne 0x41debb
mov edx, 0x468d00
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41dec0
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x240]
call fcn.00401b20
cmp dword [0x487ab8], 0
je 0x41df0b
push 8
push str._PIDKEY
lea ecx, [ebp - 0x240]
call fcn.00401b20
push 0xffffffffffffffff
push 0
push 0x487aa8
lea ecx, [ebp - 0x240]
call fcn.00401cf0
cmp dword [0x487b18], 0
je 0x41df3a
push 0xc
push str._OLDLICENSE
lea ecx, [ebp - 0x240]
call fcn.00401b20
push 0xffffffffffffffff
push 0
push 0x487b08
lea ecx, [ebp - 0x240]
call fcn.00401cf0
cmp byte [0x4893d6], 0
je 0x41df55
push 0xe
push str._REPORTTOZEN1
lea ecx, [ebp - 0x240]
call fcn.00401b20
push 1
push 0x468d04
lea ecx, [ebp - 0x240]
call fcn.00401b20
lea ecx, [ebp - 0x258]
call fcn.0041b210
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x1c
call fcn.00401cf0
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x244], 8
jb 0x41dfa1
push dword [ebp - 0x258]
call fcn.0043d3af
add esp, 4
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0xc0]
push eax
lea ecx, [ebp - 0x2bc]
call fcn.00401cf0
push 0xb
push str._ALLUSERS1
lea ecx, [ebp - 0x2bc]
call fcn.00401b20
mov edx, 2
call fcn.0041b4d0
lea eax, [ebp - 0x2a4]
push eax
mov edx, str._TRANSFORMS:
lea ecx, [ebp - 0x258]
call fcn.00412bf0
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x1d
call fcn.00401cf0
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x244], 8
jb 0x41e01c
push dword [ebp - 0x258]
call fcn.0043d3af
add esp, 4
lea ecx, [ebp - 0x2ec]
call fcn.00409e50
push 0
push 0x468378
mov byte [ebp - 4], 0x1e
push dword [ebp - 0x2dc]
push ecx
lea ecx, [ebp - 0x2ec]
call fcn.00403600
test eax, eax
je 0x41e2dc
push 5
xor eax, eax
push str.tt015
lea ecx, [ebp - 0x28c]
mov dword [ebp - 0x278], 7
mov dword [ebp - 0x27c], 0
mov word [ebp - 0x28c], ax
call fcn.00402900
mov byte [ebp - 4], 0x1f
cmp dword [0x487790], 1
jne 0x41e0ac
push 0x42
push str._PROP_AVG1_ENABLEHOMEPAGE_PROP_AVG2_ENABLEDSP_PROP_AVG3_INSTALL
lea ecx, [ebp - 0x240]
call fcn.00401b20
push 5
push str.tt014
lea ecx, [ebp - 0x28c]
call fcn.00402900
cmp dword [0x489584], 7
jne 0x41e193
push 3
push 0
lea eax, [ebp - 0x258]
push eax
mov ecx, 0x489574
call fcn.00403970
push 3
push 0x46a704
mov byte [ebp - 4], 0x20
push dword [eax + 0x10]
push ecx
mov ecx, eax
call fcn.00403600
test eax, eax
sete al
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0x244], 8
mov byte [ebp - 0x34d], al
jb 0x41e110
push dword [ebp - 0x258]
call fcn.0043d3af
mov al, byte [ebp - 0x34d]
add esp, 4
test al, al
je 0x41e126
push 5
push str.oo011
lea ecx, [ebp - 0x28c]
call fcn.00402900
push 3
push 0
lea eax, [ebp - 0x258]
push eax
mov ecx, 0x489574
call fcn.00403970
push 3
push 0x46a718
mov byte [ebp - 4], 0x21
push dword [eax + 0x10]
push ecx
mov ecx, eax
call fcn.00403600
test eax, eax
sete al
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0x244], 8
mov byte [ebp - 0x34d], al
jb 0x41e17d
push dword [ebp - 0x258]
call fcn.0043d3af
mov al, byte [ebp - 0x34d]
add esp, 4
test al, al
je 0x41e193
push 5
push str.tt019
lea ecx, [ebp - 0x28c]
call fcn.00402900
push 0xb
push str._SHOW_AVG1
lea ecx, [ebp - 0x240]
call fcn.00401b20
lea eax, [ebp - 0x2ec]
push eax
mov edx, str._AVG_COMMAND
lea ecx, [ebp - 0x258]
call fcn.00412bf0
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x22
call fcn.00401cf0
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0x244], 8
jb 0x41e1ee
push dword [ebp - 0x258]
call fcn.0043d3af
add esp, 4
lea edx, [ebp - 0x2a4]
lea ecx, [ebp - 0x270]
call fcn.0040a090
push eax
mov edx, str._AVG_LANG
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x23
call fcn.00422710
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x24
call fcn.00401cf0
cmp dword [ebp - 0x244], 8
jb 0x41e242
push dword [ebp - 0x258]
call fcn.0043d3af
add esp, 4
xor eax, eax
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0x25c], 8
mov dword [ebp - 0x244], 7
mov dword [ebp - 0x248], 0
mov word [ebp - 0x258], ax
jb 0x41e27a
push dword [ebp - 0x270]
call fcn.0043d3af
add esp, 4
lea eax, [ebp - 0x28c]
push eax
mov edx, str._AVG_SOURCE
lea ecx, [ebp - 0x270]
call fcn.00412bf0
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x25
call fcn.00401cf0
cmp dword [ebp - 0x25c], 8
jb 0x41e2bf
push dword [ebp - 0x270]
call fcn.0043d3af
add esp, 4
mov byte [ebp - 4], 0x1e
cmp dword [ebp - 0x278], 8
jb 0x41e2ee
push dword [ebp - 0x28c]
call fcn.0043d3af
add esp, 4
jmp 0x41e2ee
push 0xb
push str._SHOW_AVG0
lea ecx, [ebp - 0x240]
call fcn.00401b20
push 0x489574
mov edx, str._CID_NUMBER
lea ecx, [ebp - 0x270]
call fcn.00412bf0
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x26
call fcn.00401cf0
mov byte [ebp - 4], 0x1e
cmp dword [ebp - 0x25c], 8
jb 0x41e335
push dword [ebp - 0x270]
call fcn.0043d3af
add esp, 4
cmp dword [ebp + 0xb8], 0
jbe 0x41e361
cmp dword [ebp + 0xbc], 8
mov eax, dword [ebp + 0xa8]
jae 0x41e353
lea eax, [ebp + 0xa8]
push 1
push eax
push 0x1000
call dword [sym.imp.msi.dll_MsiGetComponentPathW]
sub ebx, esi
mov eax, 0x2aaaaaab
imul ebx
mov ebx, dword [sym.imp.msi.dll_MsiSetPropertyW]
sar edx, 2
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
mov dword [ebp - 0x354], eax
je 0x41e3ed
push 0
push 2
call ebx
cmp dword [ebp - 0x2a8], 8
mov ecx, dword [ebp - 0x2bc]
mov dword [ebp - 0x364], eax
jae 0x41e3a5
lea ecx, [ebp - 0x2bc]
cmp dword [esi + 0x14], 8
jb 0x41e3af
mov eax, dword [esi]
jmp 0x41e3b1
mov eax, esi
push ecx
push eax
call dword [sym.imp.msi.dll_MsiOpenDatabaseW]
push 0
push dword [ebp - 0x364]
mov dword [ebp - 0x35c], eax
call ebx
mov eax, dword [ebp - 0x35c]
test eax, eax
je 0x41e3e1
cmp eax, 0x669
je 0x41e3e1
cmp eax, 0xbc2
jne 0x41e3ed
inc edi
add esi, 0x18
cmp edi, dword [ebp - 0x354]
jb 0x41e384
cmp dword [ebp + 0x28], 0
ja 0x41e459
cmp dword [ebp + 0x58], 0
ja 0x41e459
cmp dword [ebp + 0x40], 0
push 0
jbe 0x41e446
push 3
call ebx
cmp dword [ebp + 0x70], 0
mov edi, eax
mov dword [ebp - 0x354], edi
mov esi, 3
jbe 0x41e4cb
push 8
push str._PIDKEY
lea ecx, [ebp - 0x240]
call fcn.00401b20
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x60]
push eax
lea ecx, [ebp - 0x240]
call fcn.00401cf0
jmp 0x41e4cb
push 5
call ebx
mov edi, eax
mov dword [ebp - 0x354], eax
mov esi, 5
jmp 0x41e4cb
push 0
push 2
call ebx
push 0xa
mov edi, eax
push str._FASTOEM1
lea ecx, [ebp - 0x240]
mov dword [ebp - 0x354], edi
mov esi, 2
call fcn.00401b20
cmp dword [ebp + 0x70], 0
jbe 0x41e4a9
push 8
push str._PIDKEY
lea ecx, [ebp - 0x240]
call fcn.00401b20
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x60]
push eax
lea ecx, [ebp - 0x240]
call fcn.00401cf0
cmp dword [ebp + 0x88], 0
push 0xc
lea ecx, [ebp - 0x240]
jne 0x41e4c1
push str._LAUNCHTUU0
jmp 0x41e4c6
push str._LAUNCHTUU1
call fcn.00401b20
cmp dword [0x4893d8], 9
jne 0x41e501
push 0xc
push str._TUUPGRADE9
lea ecx, [ebp - 0x240]
call fcn.00401b20
cmp byte [0x4893d4], 0
je 0x41e501
push 0xe
push str._TUUVALIDKEY1
lea ecx, [ebp - 0x240]
call fcn.00401b20
cmp dword [ebp + 0xa0], 0
jbe 0x41e52d
cmp dword [ebp + 0xa4], 8
mov eax, dword [ebp + 0x90]
jae 0x41e51f
lea eax, [ebp + 0x90]
push 3
push eax
push 0x1000
call dword [sym.imp.msi.dll_MsiGetComponentPathW]
push dword [ebp - 0x370]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x41e557
push 0
push dword [ebp - 0x370]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [ebp - 0x370]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [ebp - 0x35c]
test eax, eax
je 0x41e56f
cmp eax, 0x669
je 0x41e56f
cmp eax, 0xbc2
jne 0x41e5ac
call fcn.0040ad70
cmp dword [ebp - 0x22c], 8
mov ecx, dword [ebp - 0x240]
jae 0x41e589
lea ecx, [ebp - 0x240]
cmp dword [ebp - 0x308], 8
mov eax, dword [ebp - 0x31c]
jae 0x41e59e
lea eax, [ebp - 0x31c]
push ecx
push eax
call dword [sym.imp.msi.dll_MsiOpenDatabaseW]
mov dword [ebp - 0x35c], eax
sub esp, 0x18
mov ecx, esp
xor eax, eax
push 0xffffffffffffffff
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push eax
mov word [ecx], ax
lea eax, [ebp + 0x90]
push eax
call fcn.004024b0
call fcn.0041c2a0
mov eax, dword [ebp - 0x35c]
add esp, 0x18
test eax, eax
je 0x41e80a
cmp eax, 0x669
je 0x41e859
cmp eax, 0xbc2
je 0x41e859
cmp esi, 3
jl 0x41e609
mov esi, 3
mov edx, esi
call fcn.0041b4d0
cmp byte [0x4893d6], 0
je 0x41e6bb
push str.UPDATE
lea ecx, [ebp - 0x28c]
call fcn.00402a00
mov esi, dword [ebp - 0x35c]
push esi
push 0
push str.false
sub esp, 8
mov edx, 5
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x27
call fcn.0042b0d0
add esp, 0x14
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28c]
mov byte [ebp - 4], 0x28
call fcn.00401cf0
mov byte [ebp - 4], 0x27
cmp dword [ebp - 0x25c], 8
jb 0x41e684
push dword [ebp - 0x270]
call fcn.0043d3af
add esp, 4
cmp dword [ebp - 0x278], 8
mov ecx, dword [ebp - 0x28c]
jae 0x41e699
lea ecx, [ebp - 0x28c]
call fcn.0042b670
mov byte [ebp - 4], 0x1e
cmp dword [ebp - 0x278], 8
jb 0x41e6c1
push dword [ebp - 0x28c]
call fcn.0043d3af
add esp, 4
jmp 0x41e6c1
mov esi, dword [ebp - 0x35c]
cmp dword [ebp + 0x28], 0
setne al
cmp byte [0x4893d6], 0
mov byte [ebp - 0x34d], al
je 0x41e6db
test al, al
jne 0x41e6f3
cmp esi, 0x644
je 0x41e735
cmp esi, 0x642
je 0x41e735
cmp esi, 0x643
je 0x41e735
mov edx, esi
lea ecx, [ebp - 0x270]
call fcn.0042bc30
cmp dword [eax + 0x14], 8
jb 0x41e708
mov eax, dword [eax]
push 0x30
push 0x4696b4
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp dword [ebp - 0x25c], 8
jb 0x41e72f
push dword [ebp - 0x270]
call fcn.0043d3af
add esp, 4
mov al, byte [ebp - 0x34d]
cmp dword [0x4893d8], 9
jb 0x41e78a
cmp esi, 0x642
jne 0x41e78a
cmp dword [ebp - 0x36c], 3
jne 0x41e78a
test al, al
jne 0x41e7f9
sub esp, 0x18
mov ecx, esp
xor eax, eax
push 0xffffffffffffffff
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push eax
mov word [ecx], ax
lea eax, [ebp - 0x2a4]
push eax
call fcn.004024b0
mov cl, 1
call fcn.0041a7f0
add esp, 0x18
jmp 0x41e7f9
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x364], esp
push 0x468378
call fcn.00402a00
sub esp, 0x18
mov esi, esp
push 0
mov byte [ebp - 4], 0x29
push 0
mov ecx, esi
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
call fcn.004027c0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x2a4]
push eax
mov ecx, esi
call fcn.004024b0
cmp byte [ebp - 0x34d], 0
mov edx, dword [ebp - 0x35c]
sete al
movzx eax, al
push eax
lea ecx, [ebp - 0x36c]
mov byte [ebp - 4], 0x1e
call fcn.0041a180
add esp, 0x34
push 0
push edi
call ebx
call fcn.0040aea0
xor ecx, ecx
call fcn.004187d0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x364], esp
push 0x468378
call fcn.00402a00
sub esp, 0x18
lea eax, [ebp - 0x2a4]
mov ecx, esp
push eax
mov byte [ebp - 4], 0x2a
call fcn.004033b0
lea ecx, [ebp + 0x18]
call fcn.004023f0
test eax, eax
sete al
movzx eax, al
push eax
xor edx, edx
lea ecx, [ebp - 0x36c]
mov byte [ebp - 4], 0x1e
call fcn.0041a180
add esp, 0x34
call fcn.0042ca70
test al, al
je 0x41e935
cmp byte [0x4893d6], 0
je 0x41e935
push str.UPDATE
lea ecx, [ebp - 0x258]
call fcn.00402a00
push 0
push 0x64
push str.false
sub esp, 8
mov edx, 4
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x2b
call fcn.0042b0d0
add esp, 0x14
push eax
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x2c
call fcn.00403ae0
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x2b
call fcn.004023c0
lea ecx, [ebp - 0x258]
call fcn.004022c0
mov ecx, eax
call fcn.0042b670
lea ecx, [ebp + 0x18]
call fcn.004023f0
test eax, eax
je 0x41e926
mov eax, dword [ebp - 0x35c]
cmp eax, 0x669
je 0x41e8f7
cmp eax, 0xbc2
jne 0x41e926
mov edx, eax
lea ecx, [ebp - 0x270]
call fcn.0042bc30
push 0x30
push 0x4696b4
mov ecx, eax
call fcn.004022c0
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x270]
call fcn.004023c0
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x1e
call fcn.004023c0
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x270]
call fcn.00402a00
lea edx, [ebp - 0x270]
lea ecx, [ebp - 0x2d4]
mov byte [ebp - 4], 0x2d
call fcn.0042beb0
push str.AVGAWL2014
mov edx, eax
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x2e
call fcn.0040a580
add esp, 4
mov edx, eax
lea ecx, [ebp - 0x34c]
mov byte [ebp - 4], 0x2f
call fcn.0042beb0
lea ecx, [ebp - 0x258]
call fcn.004023c0
lea ecx, [ebp - 0x2d4]
call fcn.004023c0
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x33
call fcn.004023c0
lea ecx, [ebp - 0x34c]
call fcn.004022c0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp eax, 0xffffffff
je 0x41eaa8
lea eax, [ebp + 0xa8]
mov dword [ebp - 0x368], eax
lea eax, [ebp + 0x90]
mov dword [ebp - 0x364], eax
xor edi, edi
jmp 0x41ea00
mov esi, dword [ebp + edi*4 - 0x368]
push ecx
push 0x4696a8
mov ecx, esi
call fcn.00421530
xor ebx, ebx
test eax, eax
setle bl
mov ecx, esi
dec ebx
and ebx, eax
call fcn.0041ab50
test al, al
je 0x41ea88
push 0xffffffffffffffff
lea eax, [ebx + 1]
push eax
lea eax, [ebp - 0x304]
push eax
mov ecx, esi
call fcn.00403970
push eax
lea edx, [ebp - 0x34c]
lea ecx, [ebp - 0x28c]
mov byte [ebp - 4], 0x34
call fcn.00422ae0
add esp, 4
mov ecx, eax
push 0
call fcn.004022c0
push eax
mov ecx, esi
call fcn.004022c0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [ebp - 0x28c]
call fcn.004023c0
lea ecx, [ebp - 0x304]
mov byte [ebp - 4], 0x33
call fcn.004023c0
mov ecx, esi
call fcn.004022c0
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push eax
call esi
inc edi
cmp edi, 2
jb 0x41ea00
mov ebx, dword [sym.imp.msi.dll_MsiSetPropertyW]
push 0
push dword [ebp - 0x354]
call ebx
mov edx, 0x468378
lea ecx, [ebp - 0x2ec]
call fcn.004039b0
test al, al
je 0x41ead4
lea ecx, [ebp - 0x2ec]
call fcn.004022c0
push eax
call esi
lea ecx, [ebp - 0x34c]
call fcn.004023c0
lea ecx, [ebp - 0x2ec]
call fcn.004023c0
lea ecx, [ebp - 0x334]
call fcn.004023c0
lea ecx, [ebp - 0x2bc]
call fcn.004023c0
lea ecx, [ebp - 0x240]
call fcn.004023c0
lea ecx, [ebp - 0x224]
call fcn.0040b2d0
lea ecx, [ebp - 0x2a4]
call fcn.004023c0
lea ecx, [ebp - 0x31c]
call fcn.004023c0
lea ecx, [ebp + 0x18]
call fcn.004023c0
lea ecx, [ebp + 0x30]
call fcn.004023c0
lea ecx, [ebp + 0x48]
call fcn.004023c0
lea ecx, [ebp + 0x60]
call fcn.004023c0
lea ecx, [ebp + 0x78]
call fcn.004023c0
lea ecx, [ebp + 0x90]
call fcn.004023c0
lea ecx, [ebp + 0xa8]
call fcn.004023c0
lea ecx, [ebp + 0xc]
call fcn.0040b2d0
lea ecx, [ebp + 0xc0]
call fcn.004023c0
lea ecx, [ebp + 0xd8]
call fcn.004023c0
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.0043d3b4
mov esp, ebp
pop ebp
ret