Function at 0x458640
Capabilities:
Accept command line arguments
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f67eb
mov eax, dword fs:[0]
push eax
sub esp, 0x164
mov eax, dword [0x54c1b4]
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
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x15c], edi
mov dword [ebp - 0x158], ebx
call fcn.004599f0
call fcn.0040aaf0
call fcn.00459d40
test eax, eax
jne 0x4586af
push eax
push str.Error:
push str.Load_language_resource_failed_
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x4596b6
test byte [0x550018], 1
jne 0x4586d1
or dword [0x550018], 1
call fcn.004443f0
push 0x4f70a0
call fcn.004bd58e
add esp, 4
call fcn.004447e0
xor esi, esi
xor eax, eax
mov word [ebp - 0x30], ax
mov eax, ebx
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], esi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4586f0
sub eax, edx
sar eax, 1
push eax
push ebx
lea ecx, [ebp - 0x30]
call fcn.00408810
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], esi
call fcn.00457e30
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1c], 8
mov edi, eax
jb 0x45872f
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.004bb4d8
add esp, 4
cmp edi, 3
je 0x4586a8
push edi
call fcn.00456b90
add esp, 4
test byte [0x550018], 1
jne 0x458763
or dword [0x550018], 1
call fcn.004443f0
push 0x4f70a0
call fcn.004bd58e
add esp, 4
call fcn.0040dcc0
test al, al
sete dl
mov byte [0x54fffa], dl
call fcn.004579c0
lea esi, [ebp - 0x4c]
call fcn.0040f5a0
sub edi, 0
mov dword [ebp - 4], 1
je 0x4587b8
dec edi
je 0x4587ac
dec edi
mov ecx, esi
je 0x4587a0
push 0x16
mov eax, str.WEMediaSetupError.log
jmp 0x458864
push 0x15
mov eax, str.WEMediaUnInstall.log
jmp 0x458864
push 0x12
mov eax, str.WEMediaUpdate.log
jmp 0x458861
call fcn.00444350
cmp byte [eax + 0x102], 0
mov dword [ebp - 0x18], 0
push 0x10
je 0x45880f
mov eax, dword [ebp - 0x1c]
and eax, 0xfffffe07
or eax, 7
mov dword [ebp - 0x1c], eax
call fcn.004bb886
add esp, 4
mov dword [ebp - 0x154], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x4587fc
mov esi, eax
call fcn.004203e0
jmp 0x4587fe
xor eax, eax
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call fcn.00412760
jmp 0x45884e
mov ecx, dword [ebp - 0x1c]
and ecx, 0xfffffe07
or ecx, 7
mov dword [ebp - 0x1c], ecx
call fcn.004bb886
add esp, 4
mov dword [ebp - 0x154], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x45883d
mov esi, eax
call fcn.004203e0
jmp 0x45883f
xor eax, eax
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 5
call fcn.00412820
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.0041aa40
push 0x11
mov eax, str.WEMediaSetup.log
lea ecx, [ebp - 0x4c]
call fcn.00407820
mov edx, dword [0x54fee0]
test edx, edx
je 0x458880
mov dword [edx + 8], 4
mov edx, dword [0x54fee0]
cmp dword [ebp - 0x38], 8
mov ecx, dword [ebp - 0x4c]
jae 0x45888c
lea ecx, [ebp - 0x4c]
test edx, edx
je 0x4588ce
call fcn.0042c970
mov eax, dword [0x54fee0]
test eax, eax
je 0x4588ce
cmp dword [eax + 8], 4
mov edi, eax
jl 0x4588ce
push str.Main.cpp
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x154], esp
push edx
mov ecx, 0x51aee8
mov esi, 0x171
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
push ebx
push str.Main
push str.Main.cpp
mov edx, 0x173
mov esi, 4
mov eax, 0x54fee0
call fcn.0042c610
add esp, 0xc
call fcn.00459b60
test al, al
jne 0x458988
mov eax, dword [0x54fee0]
test eax, eax
je 0x45896f
cmp dword [eax + 8], 2
mov edi, eax
jl 0x45893b
push str.Main.cpp
push 2
push ecx
mov eax, esp
mov dword [ebp - 0x154], esp
push eax
mov ecx, str.InitGlobalParam_failed_
mov esi, 0x178
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
mov eax, dword [0x54fee0]
test eax, eax
je 0x45896f
cmp dword [eax + 8], 4
mov edi, eax
jl 0x45896f
push str.Main.cpp
push 4
push ecx
mov ecx, esp
mov dword [ebp - 0x154], esp
push ecx
mov ecx, 0x51afa0
mov esi, 0x179
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
cmp dword [ebp - 0x38], 8
jb 0x458981
mov edx, dword [ebp - 0x4c]
push edx
call fcn.004bb4d8
add esp, 4
xor eax, eax
jmp 0x4596b6
test byte [0x550018], 1
jne 0x4589aa
or dword [0x550018], 1
call fcn.004443f0
push 0x4f70a0
call fcn.004bd58e
add esp, 4
mov eax, ebx
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4589b0
sub eax, edx
sar eax, 1
push eax
push ebx
mov ecx, 0x54ffd8
call fcn.00408810
test byte [0x550018], 1
jne 0x4589ed
or dword [0x550018], 1
call fcn.004443f0
push 0x4f70a0
call fcn.004bd58e
add esp, 4
push 0xc
push str._tempunsetup
push 0x54ffd8
xor eax, eax
call fcn.00407570
cmp eax, 0xffffffff
setne bl
test byte [0x550018], 1
mov byte [ebp - 0x154], bl
jne 0x458a2e
or dword [0x550018], 1
call fcn.004443f0
push 0x4f70a0
call fcn.004bd58e
add esp, 4
push 0xa
push str.selfupdate
push 0x54ffd8
xor eax, eax
call fcn.00407570
cmp eax, 0xffffffff
setne al
test al, al
jne 0x458ae5
test bl, bl
jne 0x458ae5
call fcn.00459a80
test al, al
jne 0x458ae5
mov eax, dword [0x54fee0]
test eax, eax
je 0x458ad6
cmp dword [eax + 8], 2
mov edi, eax
jl 0x458aa2
push str.Main.cpp
push 2
push ecx
mov eax, esp
mov dword [ebp - 0x154], esp
push eax
mov ecx, 0x51aff4
mov esi, 0x184
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
mov eax, dword [0x54fee0]
test eax, eax
je 0x458ad6
cmp dword [eax + 8], 4
mov edi, eax
jl 0x458ad6
push str.Main.cpp
push 4
push ecx
mov ecx, esp
mov dword [ebp - 0x154], esp
mov esi, 0x185
push ecx
mov ecx, 0x51afa0
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
lea ecx, [ebp - 0x4c]
call fcn.00407bb0
xor eax, eax
jmp 0x4596b6
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jns 0x458b56
mov eax, dword [0x54fee0]
test eax, eax
je 0x458ad6
cmp dword [eax + 8], 2
mov edi, eax
jl 0x458b2f
push str.Main.cpp
push 2
push ecx
mov edx, esp
mov dword [ebp - 0x154], esp
push edx
mov ecx, str.CoInitialize_Failed
mov esi, 0x18e
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
mov eax, dword [0x54fee0]
test eax, eax
je 0x458ad6
cmp dword [eax + 8], 4
mov edi, eax
jl 0x458ad6
push str.Main.cpp
push 4
push ecx
mov eax, esp
mov dword [ebp - 0x154], esp
mov esi, 0x18f
push eax
jmp 0x458ac4
mov ebx, dword [ebp - 0x15c]
push ebx
call dword [0x51d57c]
push 0x45b300
call dword [0x51d588]
add esp, 8
push 0xa
push 0x81
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push esi
push eax
call dword [0x51d580]
mov eax, dword [0x54d63c]
add esp, 8
cmp dword [0x54d650], 8
jae 0x458bbd
mov eax, 0x54d63c
push eax
call dword [0x51d58c]
push str._global_text_skin.xml
call dword [0x51d590]
add esp, 8
test al, al
jne 0x458c5b
mov eax, dword [0x54fee0]
test eax, eax
je 0x458c13
cmp dword [eax + 8], 2
mov edi, eax
jl 0x458c13
push str.Main.cpp
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x154], esp
push ecx
mov ecx, str.load__global_text_skin.xml_Failed
mov esi, 0x1a7
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
push 0
push str.Warning
push str.InitResouceFailed
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [0x54fee0]
test eax, eax
je 0x458ad6
cmp dword [eax + 8], 4
mov edi, eax
jl 0x458ad6
push str.Main.cpp
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x154], esp
mov esi, 0x1a9
push edx
jmp 0x458ac4
lea eax, [ebp - 0x170]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x15c], eax
call fcn.00444350
mov edi, ebx
call fcn.004447e0
call fcn.00444350
mov esi, eax
call fcn.004446a0
call fcn.00448650
call fcn.00442d50
test al, al
jne 0x458d57
mov eax, dword [0x54fee0]
test eax, eax
je 0x458cd8
cmp dword [eax + 8], 2
mov edi, eax
jl 0x458cd8
push str.Main.cpp
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x154], esp
push ecx
mov ecx, str.LoadRcUpdateScript_Failed
mov esi, 0x1b6
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
push 0x516330
call fcn.0042b7c0
push eax
mov edx, str.Global
lea ecx, [ebp - 0x30]
call fcn.0042be30
mov byte [ebp - 4], 6
cmp dword [ebp - 0x1c], 8
mov ecx, dword [ebp - 0x30]
jae 0x458d00
lea ecx, [ebp - 0x30]
xor edx, edx
call fcn.00431b40
mov eax, dword [0x54fee0]
test eax, eax
je 0x458d40
cmp dword [eax + 8], 4
mov edi, eax
jl 0x458d40
push str.Main.cpp
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x154], esp
push edx
mov ecx, 0x51afa0
mov esi, 0x1b9
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
lea ecx, [ebp - 0x30]
call fcn.00407bb0
lea ecx, [ebp - 0x4c]
call fcn.00407bb0
xor eax, eax
jmp 0x4596b6
call fcn.00444350
mov byte [eax + 0x101], 0
xor edi, edi
xor eax, eax
mov dword [ebp - 0x84], 7
mov dword [ebp - 0x88], edi
mov word [ebp - 0x98], ax
lea ecx, [ebp - 0x150]
push ecx
mov byte [ebp - 4], 7
call fcn.00417060
mov eax, 0xfffffe00
and dword [ebp - 0x164], eax
mov dword [ebp - 0x160], edi
and dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xa0], 0xf
mov dword [ebp - 0xa4], edi
mov byte [ebp - 0xb4], 0
lea esi, [ebp - 0x7c]
mov byte [ebp - 4], 0xd
call fcn.00456a40
mov esi, dword [ebp - 0x158]
mov byte [ebp - 4], 0xe
mov ecx, 0x518b24
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x458e06
cmp dx, di
je 0x458e02
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x458e06
add eax, 4
add ecx, 4
cmp dx, di
jne 0x458de0
xor eax, eax
jmp 0x458e0b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4595cf
mov ecx, str._tempunsetup
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x458e46
test dx, dx
je 0x458e42
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x458e46
add eax, 4
add ecx, 4
test dx, dx
jne 0x458e20
xor eax, eax
jmp 0x458e4b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4595cf
mov ecx, str._updateself
mov eax, esi
mov ebx, 4
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x458e84
test dx, dx
je 0x458e80
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x458e84
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x458e60
xor eax, eax
jmp 0x458e89
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45957d
push str.UpdateSelf
push esi
call fcn.004be5bd
add esp, 8
test eax, eax
je 0x458efb
call fcn.00444350
add eax, 0xe0
push eax
mov edx, str._update
call fcn.00408960
mov edi, dword [0x54fee0]
test edi, edi
je 0x4595b3
cmp dword [edi + 8], ebx
jl 0x45957d
push str.Main.cpp
push ebx
push ecx
mov edx, esp
mov dword [ebp - 0x154], esp
push edx
mov ecx, 0x51b114
mov esi, 0x1d0
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
jmp 0x45957d
mov ecx, str._update
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x458f26
test dx, dx
je 0x458f22
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x458f26
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x458f02
xor eax, eax
jmp 0x458f2b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45957d
mov ecx, str._tempupdate
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x458f64
test dx, dx
je 0x458f60
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x458f64
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x458f40
xor eax, eax
jmp 0x458f69
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45957d
mov ecx, 0x51ac7c
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x458f9c
test dx, dx
je 0x458f98
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x458f9c
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x458f78
xor eax, eax
jmp 0x458fa1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x459526
mov ecx, str.AUTO
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x458fd4
test dx, dx
je 0x458fd0
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x458fd4
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x458fb0
xor eax, eax
jmp 0x458fd9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x459526
mov ecx, str._quietupdate
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45900c
test dx, dx
je 0x459008
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45900c
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x458fe8
xor eax, eax
jmp 0x459011
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x459572
mov ecx, str._quietdownloadupdate
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x459044
test dx, dx
je 0x459040
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x459044
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x459020
xor eax, eax
jmp 0x459049
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x459059
mov dword [ebp - 0x50], 2
jmp 0x459579
mov ecx, str._startupdate
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x459084
test dx, dx
je 0x459080
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x459084
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x459060
xor eax, eax
jmp 0x459089
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x459099
mov dword [ebp - 0x50], 5
jmp 0x45957d
mov ecx, str._normalupdate
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4590c4
test dx, dx
je 0x4590c0
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4590c4
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x4590a0
xor eax, eax
jmp 0x4590c9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45957d
mov ecx, str._forceupdate
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4590fc
test dx, dx
je 0x4590f8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4590fc
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x4590d8
xor eax, eax
jmp 0x459101
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x459115
mov byte [ebp - 0x7b], 1
mov dword [ebp - 0x50], 1
jmp 0x45957d
mov ecx, str._quietreplaceupdate
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x459144
test dx, dx
je 0x459140
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x459144
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x459120
xor eax, eax
jmp 0x459149
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x459159
mov dword [ebp - 0x50], 3
jmp 0x459579
mov ecx, str._fakeupdateprogress
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x459184
test dx, dx
je 0x459180
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x459184
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x459160
xor eax, eax
jmp 0x459189
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x459199
mov byte [ebp - 0x7b], 1
mov dword [ebp - 0x50], ebx
jmp 0x45957d
mov ecx, str._update64
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4591c4
test dx, dx
je 0x4591c0
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4591c4
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x4591a0
xor eax, eax
jmp 0x4591c9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4591de
call fcn.00444350
mov byte [eax + 0xff], 1
jmp 0x45957d
cmp dword [ebp - 0x170], 1
jne 0x4591fe
call fcn.00444350
cmp byte [eax + 0xfc], 0
jne 0x4593b0
jmp 0x459626
push 0x51ad80
push esi
call fcn.004be5bd
add esp, 8
test eax, eax
je 0x45925a
lea eax, [ebp - 0x98]
push eax
mov edx, str._param_:_quiet_:_true___tag_:_setup_
call fcn.00408960
mov eax, dword [0x54fee0]
test eax, eax
je 0x45926f
mov edi, eax
cmp dword [eax + 8], ebx
jl 0x45926f
push str.Main.cpp
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x158], esp
push ecx
mov ecx, str.install_q
mov esi, 0x224
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
jmp 0x45926f
mov eax, dword [ebp - 0x15c]
mov eax, dword [eax + 4]
lea edx, [ebp - 0x98]
push edx
call fcn.00407950
lea ecx, [ebp - 0xd0]
push ecx
lea ecx, [ebp - 0x98]
call fcn.0040b240
add esp, 4
mov edi, eax
lea esi, [ebp - 0xb4]
mov byte [ebp - 4], 0xf
call fcn.004015f0
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0xe
call fcn.00401ea0
lea edx, [ebp - 0x16c]
push edx
mov eax, esi
lea ecx, [ebp - 0x150]
call fcn.00417280
test al, al
je 0x459441
mov al, byte [ebp - 0x164]
test al, al
je 0x4592d2
cmp al, 7
jne 0x459441
push 0
lea eax, [ebp - 0x16c]
push eax
mov ecx, 0x512ae0
mov byte [ebp - 4], 0x10
call fcn.0041bdd0
push 0
lea ecx, [ebp - 0x16c]
push ecx
mov ecx, str.param
mov ebx, eax
call fcn.0041bdd0
cmp byte [ebx + 8], 4
mov edi, eax
jne 0x459487
call fcn.0041c670
test al, al
je 0x459487
push 0
push edi
mov ecx, str.other
call fcn.0041bdd0
lea esi, [ebp - 0x24]
call fcn.0041aae0
lea edx, [ebp - 0x7c]
push edx
mov ecx, edi
call fcn.00459710
mov ebx, dword [ebx]
add esp, 4
mov ecx, str.update
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x459363
test dl, dl
je 0x45935f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x459363
add eax, 2
add ecx, 2
test dl, dl
jne 0x459343
xor eax, eax
jmp 0x459368
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x459378
mov byte [ebp - 4], 0xe
lea ebx, [eax + 4]
jmp 0x45957d
mov ecx, str.setup
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4593a0
test dl, dl
je 0x45939c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4593a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x459380
xor eax, eax
jmp 0x4593a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x459403
mov byte [ebp - 4], 0xe
lea ebx, [eax + 4]
mov eax, dword [0x54fee0]
test eax, eax
je 0x4593e7
mov edi, eax
cmp dword [eax + 8], ebx
jl 0x4593e7
push str.Main.cpp
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x154], esp
push eax
mov ecx, 0x51b1ac
mov esi, 0x24b
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
push 0x54d674
call dword [0x51d584]
lea ecx, [ebp - 0x7c]
push ecx
call fcn.00444ca0
add esp, 8
jmp 0x459626
mov ecx, str.unsetup
mov eax, ebx
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x459430
test dl, dl
je 0x45942c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x459430
add eax, 2
add ecx, 2
test dl, dl
jne 0x459410
xor eax, eax
jmp 0x459435
sbb eax, eax
sbb eax, 0xffffffff
mov byte [ebp - 4], 0xe
test eax, eax
je 0x4595cf
mov eax, dword [0x54fee0]
test eax, eax
je 0x459626
cmp dword [eax + 8], 2
mov edi, eax
jl 0x459626
push str.Main.cpp
push 2
push ecx
mov eax, esp
mov dword [ebp - 0x154], esp
push eax
mov ecx, 0x51b1cc
mov esi, 0x255
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
jmp 0x459626
mov byte [ebp - 4], 0xe
jmp 0x459441
mov eax, dword [0x54fee0]
test eax, eax
je 0x45955d
mov edi, eax
cmp dword [eax + 8], ebx
jl 0x45955d
push str.Main.cpp
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x154], esp
push ecx
mov ecx, str.AAAA_AUTO
mov esi, 0x1db
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
call fcn.00444350
add eax, 0xe0
push eax
mov edx, str._quietupdate
call fcn.00408960
mov dword [ebp - 0x50], 1
mov byte [ebp - 0x7c], 1
mov edi, dword [0x54fee0]
test edi, edi
je 0x4595b3
cmp dword [edi + 8], ebx
jl 0x4595b3
push str.Main.cpp
push ebx
push ecx
mov edx, esp
mov dword [ebp - 0x154], esp
push edx
mov ecx, 0x51b1bc
mov esi, 0x250
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
push 0x54d674
call dword [0x51d584]
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x24]
call fcn.00449540
add esp, 8
jmp 0x459626
mov eax, dword [0x54fee0]
test eax, eax
je 0x459608
cmp dword [eax + 8], 4
mov edi, eax
jl 0x459608
push str.Main.cpp
push 4
push ecx
mov ecx, esp
mov dword [ebp - 0x158], esp
push ecx
mov ecx, str.eQxS
mov esi, 0x246
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
push 0x54d674
call dword [0x51d584]
mov edx, dword [ebp - 0x154]
push edx
lea eax, [ebp - 0x7c]
push eax
call fcn.00448b30
add esp, 0xc
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x54fee0]
test eax, eax
je 0x459665
cmp dword [eax + 8], 4
mov edi, eax
jl 0x459665
push str.Main.cpp
push 4
push ecx
mov ecx, esp
mov dword [ebp - 0x154], esp
push ecx
mov ecx, 0x51afa0
mov esi, 0x25a
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
lea esi, [ebp - 0x7c]
call fcn.004596e0
lea ecx, [ebp - 0xb4]
call fcn.00401ea0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0xa
call fcn.0041aa40
lea eax, [ebp - 0x16c]
mov byte [ebp - 4], 8
call fcn.0041aa40
lea edi, [ebp - 0x150]
call fcn.004116e0
lea ecx, [ebp - 0x98]
call fcn.00407bb0
lea ecx, [ebp - 0x4c]
call fcn.00407bb0
mov eax, 1
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.004bb4e3
mov esp, ebp
pop ebp
ret 0x10