Function at 0x453b80
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4edc5c
mov eax, dword fs:[0]
push eax
sub esp, 0x104
mov eax, dword [0x5441b4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
lea eax, [ebp - 0x110]
push eax
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], cx
lea edx, [ebp - 0xcc]
push edx
mov dword [ebp - 4], ebx
call fcn.00414a90
mov eax, 0xfffffe00
and dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], ebx
and dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], ebx
mov edi, 0xf
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x30], bl
mov ebx, 8
mov byte [ebp - 4], 6
cmp dword [esi + 0x14], ebx
jb 0x453c29
mov esi, dword [esi]
mov ecx, 0x5120d4
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453c56
test dx, dx
je 0x453c52
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453c56
add eax, 4
add ecx, 4
test dx, dx
jne 0x453c30
xor eax, eax
jmp 0x453c5b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45431f
mov ecx, str._tempunsetup
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453c96
test dx, dx
je 0x453c92
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453c96
add eax, 4
add ecx, 4
test dx, dx
jne 0x453c70
xor eax, eax
jmp 0x453c9b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45431f
mov ecx, str._updateself
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453cd6
test dx, dx
je 0x453cd2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453cd6
add eax, 4
add ecx, 4
test dx, dx
jne 0x453cb0
xor eax, eax
jmp 0x453cdb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x453d2e
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x30], al
lea eax, [ebp - 0x108]
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 3
call fcn.00418470
mov ebx, 1
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], bl
call fcn.00418470
lea edi, [ebp - 0xcc]
call fcn.004101b0
cmp dword [ebp - 0x38], 8
jb 0x453d27
mov eax, dword [ebp - 0x4c]
push eax
call fcn.004b6106
add esp, 4
mov eax, ebx
jmp 0x45436c
push str.UpdateSelf
push esi
call fcn.004b90cf
add esp, 8
test eax, eax
je 0x453d84
lea ecx, [ebp - 0x30]
call fcn.00401ea0
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 3
call fcn.00418470
mov ebx, 1
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], bl
call fcn.00418470
lea edi, [ebp - 0xcc]
call fcn.004101b0
lea ecx, [ebp - 0x4c]
call fcn.00406760
mov eax, ebx
jmp 0x45436c
mov ecx, str._update
mov eax, esi
jmp 0x453d90
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453db6
test dx, dx
je 0x453db2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453db6
add eax, 4
add ecx, 4
test dx, dx
jne 0x453d90
xor eax, eax
jmp 0x453dbb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str._tempupdate
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453dec
test dx, dx
je 0x453de8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453dec
add eax, 4
add ecx, 4
test dx, dx
jne 0x453dc6
xor eax, eax
jmp 0x453df1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, 0x514030
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453e26
test dx, dx
je 0x453e22
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453e26
add eax, 4
add ecx, 4
test dx, dx
jne 0x453e00
xor eax, eax
jmp 0x453e2b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str.AUTO
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453e66
test dx, dx
je 0x453e62
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453e66
add eax, 4
add ecx, 4
test dx, dx
jne 0x453e40
xor eax, eax
jmp 0x453e6b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str._quietupdate
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453ea6
test dx, dx
je 0x453ea2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453ea6
add eax, 4
add ecx, 4
test dx, dx
jne 0x453e80
xor eax, eax
jmp 0x453eab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str._quietdownloadupdate
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453ee6
test dx, dx
je 0x453ee2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453ee6
add eax, 4
add ecx, 4
test dx, dx
jne 0x453ec0
xor eax, eax
jmp 0x453eeb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str._startupdate
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453f26
test dx, dx
je 0x453f22
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453f26
add eax, 4
add ecx, 4
test dx, dx
jne 0x453f00
xor eax, eax
jmp 0x453f2b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str._normalupdate
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453f66
test dx, dx
je 0x453f62
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453f66
add eax, 4
add ecx, 4
test dx, dx
jne 0x453f40
xor eax, eax
jmp 0x453f6b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str._forceupdate
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453fa6
test dx, dx
je 0x453fa2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453fa6
add eax, 4
add ecx, 4
test dx, dx
jne 0x453f80
xor eax, eax
jmp 0x453fab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str._quietreplaceupdate
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x453fe6
test dx, dx
je 0x453fe2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x453fe6
add eax, 4
add ecx, 4
test dx, dx
jne 0x453fc0
xor eax, eax
jmp 0x453feb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str._fakeupdateprogress
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x454026
test dx, dx
je 0x454022
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x454026
add eax, 4
add ecx, 4
test dx, dx
jne 0x454000
xor eax, eax
jmp 0x45402b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ecx, str._update64
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x454066
test dx, dx
je 0x454062
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x454066
add eax, 4
add ecx, 4
test dx, dx
jne 0x454040
xor eax, eax
jmp 0x45406b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x453d40
mov ebx, 1
cmp dword [ebp - 0x110], ebx
jne 0x45409a
call fcn.00441cf0
cmp byte [eax + 0xe0], 0
lea ecx, [ebp - 0x30]
je 0x4542e3
jmp 0x45420c
push 0x514134
push esi
call fcn.004b90cf
add esp, 8
test eax, eax
je 0x4540bc
lea ecx, [ebp - 0x4c]
push ecx
mov edx, str._param_:_quiet_:_true___tag_:_setup_
call fcn.00407510
jmp 0x4540ce
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax + 4]
lea edx, [ebp - 0x4c]
push edx
call fcn.00406710
lea ecx, [ebp - 0xe8]
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00409c20
add esp, 4
mov edi, eax
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 7
call fcn.004015f0
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 6
call fcn.00401ea0
lea edx, [ebp - 0xf8]
push edx
mov eax, esi
lea ecx, [ebp - 0xcc]
call fcn.00414cb0
test al, al
je 0x4542e0
mov al, byte [ebp - 0xf0]
test al, al
je 0x45412b
cmp al, 7
jne 0x4542e0
push 0
lea eax, [ebp - 0xf8]
push eax
mov ecx, 0x50c418
mov byte [ebp - 4], 8
call fcn.00419800
push 0
lea ecx, [ebp - 0xf8]
push ecx
mov ecx, str.param
mov edi, eax
call fcn.00419800
cmp byte [edi + 8], 4
mov ecx, eax
jne 0x4542e0
call fcn.0041a0a0
test al, al
je 0x4542e0
push 0
push ecx
mov ecx, str.other
call fcn.00419800
lea esi, [ebp - 0x108]
call fcn.00418510
mov edi, dword [edi]
mov ecx, str.update
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4541b1
test dl, dl
je 0x4541ad
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4541b1
add eax, 2
add ecx, 2
test dl, dl
jne 0x454191
xor eax, eax
jmp 0x4541b6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4541d6
lea ecx, [ebp - 0x30]
call fcn.00401ea0
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 3
call fcn.00418470
jmp 0x453d5c
mov ecx, str.setup
mov eax, edi
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x454200
test dl, dl
je 0x4541fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x454200
add eax, 2
add ecx, 2
test dl, dl
jne 0x4541e0
xor eax, eax
jmp 0x454205
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x454248
lea ecx, [ebp - 0x30]
call fcn.00401ea0
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 3
call fcn.00418470
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], bl
call fcn.00418470
lea edi, [ebp - 0xcc]
call fcn.004101b0
lea ecx, [ebp - 0x4c]
call fcn.00406760
xor eax, eax
jmp 0x45436c
mov ecx, str.unsetup
mov eax, edi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x454270
test dl, dl
je 0x45426c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x454270
add eax, 2
add ecx, 2
test dl, dl
jne 0x454250
xor eax, eax
jmp 0x454275
sbb eax, eax
sbb eax, 0xffffffff
lea ecx, [ebp - 0x30]
test eax, eax
jne 0x4542e3
call fcn.00401ea0
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 3
call fcn.00418470
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], bl
call fcn.00418470
lea edi, [ebp - 0xcc]
call fcn.004101b0
lea ecx, [ebp - 0x4c]
call fcn.00406760
jmp 0x454367
lea ecx, [ebp - 0x30]
call fcn.00401ea0
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 3
call fcn.00418470
mov byte [ebp - 4], bl
lea eax, [ebp - 0xf8]
call fcn.00418470
lea edi, [ebp - 0xcc]
call fcn.004101b0
lea ecx, [ebp - 0x4c]
call fcn.00406760
mov eax, 3
jmp 0x45436c
lea eax, [ebp - 0x108]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x30], 0
mov byte [ebp - 4], 3
call fcn.00418470
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 1
call fcn.00418470
lea edi, [ebp - 0xcc]
call fcn.004101b0
cmp dword [ebp - 0x38], ebx
jb 0x454367
mov edx, dword [ebp - 0x4c]
push edx
call fcn.004b6106
add esp, 4
mov eax, 2
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004b6111
mov esp, ebp
pop ebp
ret