Function at 0x40d985
Capabilities:
Accept command line arguments
Check if file exists

Disassembly:
push 0x140
mov eax, 0x60b1dc
call fcn.0042d958
mov ebx, ecx
mov dword [ebp - 0x124], ebx
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x5c]
xor eax, eax
mov dword [ebp - 0x30], eax
call fcn.00414745
lea ecx, [ebx + 0x50]
push eax
mov dword [ebp - 0x130], ecx
call fcn.00414789
mov ecx, dword [ebp - 0x58]
test ecx, ecx
je 0x40d9c7
call fcn.00415a55
xor eax, eax
push eax
push eax
call dword [sym.imp.ole32.dll_CoInitializeEx]
push 1
push 2
push 1
push 0xb4e08a47
push 0x677a4c
push str.StandaloneUpdater::InitializeWithDefaultImplementations
push 0xea
mov esi, eax
mov dword [ebp - 0x24], str.Result
push str.d:dbs_shodct1105_210049_0cmd7clientonedriveProductStandaloneUpdater_standaloneupdaterlibStandaloneUpdater.cpp
lea ecx, [ebp - 0x104]
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x20], esi
call fcn.0045dd2d
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.0045ea98
call fcn.0045e7ff
test esi, esi
js 0x40da2b
mov byte [ebx + 0x6f], 1
xor eax, eax
mov dword [ebp - 0xd0], 7
mov dword [ebp - 0xe4], eax
lea ecx, [ebp - 0xe4]
push str.StandaloneUpdate
mov dword [ebp - 0xd4], eax
mov word [ebp - 0xe4], ax
call fcn.00414483
xor ecx, ecx
lea eax, [ebp - 0xe4]
mov dword [ebp - 4], ecx
mov ecx, 0x6bde20
cmp dword [ebp - 0xd0], 8
cmovae eax, dword [ebp - 0xe4]
push eax
call fcn.00414483
call fcn.004c7ae4
mov byte [0x6d0a60], al
xorps xmm0, xmm0
xor eax, eax
movlpd qword [ebp - 0x54], xmm0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x54]
push eax
call fcn.00414ae3
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 1
push eax
push edi
call fcn.0040d7b0
xor eax, eax
xor ecx, ecx
mov word [ebp - 0x12c], ax
lea eax, [ebp - 0x54]
mov byte [ebp - 0x120], cl
mov byte [ebp - 0x2c], cl
mov ecx, ebx
push eax
call fcn.00412412
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.0040d53d
call fcn.0040d123
xor ecx, ecx
mov byte [ebx + 0x6d], al
mov dword [ebp - 0x114], ecx
cmp byte [ebx + 0x79], cl
jne 0x40db5b
test al, al
je 0x40db5b
call fcn.004c12ba
mov edi, eax
xor eax, eax
push eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0xcc]
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
test al, al
jne 0x40db48
call fcn.004c12ba
mov edi, eax
push 1
mov ecx, dword [edi]
mov esi, dword [ecx + 0xcc]
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
test al, al
je 0x40db5b
call fcn.004c937e
xor ecx, ecx
test al, al
setne cl
inc ecx
mov dword [ebp - 0x114], ecx
lea esi, [ebx + 0x50]
push esi
call fcn.0040d22b
call fcn.004cafc6
test al, al
je 0x40db7a
call 0x40128a
test eax, eax
setns al
mov byte [ebx + 0x6e], al
xor eax, eax
mov dword [ebp - 0xa0], 7
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xa4], eax
mov word [ebp - 0xb4], ax
mov byte [ebp - 4], 2
call fcn.004c7ae4
test al, al
je 0x40dc19
lea eax, [ebp - 0xb4]
push eax
call fcn.004c4d21
test eax, eax
js 0x40dc09
push str.StandaloneUpdaterlogs
lea ecx, [ebp - 0xb4]
call fcn.004144ac
mov edi, dword [esi]
mov eax, dword [edi]
mov esi, dword [eax + 4]
lea eax, [ebp - 0xb4]
push eax
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
test eax, eax
jne 0x40dc19
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40dc19
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x40dc19
push 0x677a8c
lea ecx, [ebp - 0xb4]
call fcn.00414483
cmp dword [ebp - 0xa0], 8
lea eax, [ebp - 0xb4]
cmovae eax, dword [ebp - 0xb4]
xor ecx, ecx
push ecx
push 3
push eax
push dword [ebp - 0x114]
mov eax, 0x6755b0
push ecx
push dword [ebp - 0x2c]
push dword [ebp - 0x12c]
push dword [ebp - 0x120]
push eax
push eax
call fcn.0045e77f
mov esi, eax
mov dword [ebp - 0x30], esi
call fcn.0040cbd3
push dword [ebp - 0x2c]
movzx ecx, word [ebp - 0x12c]
push ecx
push dword [ebp - 0x120]
push esi
push ecx
call 0x405c72
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
xor ecx, ecx
mov dword [ebp - 0xb8], 7
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xbc], ecx
mov word [ebp - 0xcc], cx
lea ecx, [ebp - 0xcc]
push eax
call fcn.00414483
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 3
push eax
call fcn.0045ec5f
cmp dword [ebp - 0xb8], 8
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x24], str.commandLineArgs
cmovae ecx, dword [ebp - 0xcc]
xor esi, esi
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x40dcf7
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x40dce6
sub ecx, edx
sar ecx, 1
jmp 0x40dcf9
mov ecx, esi
push 1
push 2
push 1
push 0xde6fa3df
mov edi, 0x677a4c
mov dword [ebp - 0x18], ecx
push edi
push str.StandaloneUpdater::InitializeWithDefaultImplementations
push 0x14e
push str.d:dbs_shodct1105_210049_0cmd7clientonedriveProductStandaloneUpdater_standaloneupdaterlibStandaloneUpdater.cpp
lea ecx, [ebp - 0x104]
call fcn.0045dd2d
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.0045ea98
call fcn.0045e7ff
cmp byte [ebx + 0x6d], 0
jne 0x40dd79
push esi
push 2
push 1
push 0x404
push edi
push str.StandaloneUpdater::InitializeWithDefaultImplementations
push 0x153
push str.d:dbs_shodct1105_210049_0cmd7clientonedriveProductStandaloneUpdater_standaloneupdaterlibStandaloneUpdater.cpp
lea ecx, [ebp - 0x104]
call fcn.0045dd2d
push esi
lea eax, [ebp - 0x104]
push eax
call fcn.0045ea98
call fcn.0045e7ff
call fcn.004c12ba
mov edi, eax
xor eax, eax
push eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0xcc]
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
test al, al
jne 0x40ddf9
call fcn.004c12ba
mov edi, eax
push 1
mov ecx, dword [edi]
mov esi, dword [ecx + 0xcc]
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
test al, al
jne 0x40ddf9
xor esi, esi
lea ecx, [ebp - 0x104]
push esi
push 2
push 1
push 0xc8c0bcd7
push 0x677a4c
push str.StandaloneUpdater::InitializeWithDefaultImplementations
push 0x157
push str.d:dbs_shodct1105_210049_0cmd7clientonedriveProductStandaloneUpdater_standaloneupdaterlibStandaloneUpdater.cpp
call fcn.0045dd2d
push esi
lea eax, [ebp - 0x104]
push eax
call fcn.0045ea98
call fcn.0045e7ff
cmp dword [ebp - 0x30], 0
setge al
mov byte [ebx + 0x6c], al
call fcn.004c7ae4
test al, al
mov edx, str.FileSyncClientUpdaterNamedMutex
mov ecx, str.GlobalPerMachineUpdaterNamedMutex
cmove ecx, edx
push ecx
lea ecx, [ebx + 4]
call fcn.00414483
push 0x18
call fcn.0042da05
mov esi, eax
pop ecx
mov dword [ebp - 0x58], esi
xor eax, eax
mov edi, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
inc eax
mov dword [esi], vtable.std::_Ref_count_obj2_class_StandaloneUpdaterFileVerification_.0
mov dword [esi + 4], eax
mov dword [esi + 8], eax
lea eax, [esi + 0xc]
mov dword [ebp - 0x134], eax
mov dword [eax], vtable.StandaloneUpdaterFileVerification.0
xor edi, edi
mov dword [eax + 4], vtable.ClassPtr_struct_IFSManager_.0
mov dword [eax + 8], edi
add eax, 8
mov byte [ebp - 4], 6
push eax
call fcn.00452067
lea edx, [ebx + 0x48]
mov byte [ebp - 4], 3
mov ecx, dword [edx + 4]
lea eax, [esi + 0xc]
or edi, 4
mov dword [ebp - 0x110], edx
mov dword [edx], eax
mov dword [edx + 4], esi
test ecx, ecx
je 0x40de8f
call fcn.00415a55
push 0x30
call fcn.0042da05
pop ecx
lea ecx, [ebx + 0x50]
mov dword [ebp - 0x58], eax
push ecx
mov ecx, eax
call 0x4151c8
lea edx, [ebx + 0x30]
or edi, 8
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x120], edx
lea ecx, [eax + 0xc]
mov dword [edx], ecx
mov ecx, dword [edx + 4]
mov dword [edx + 4], eax
test ecx, ecx
je 0x40dec8
call fcn.00415a55
push 0x18
call fcn.0042da05
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x30], ecx
mov edi, ecx
lea esi, [ecx + 0xc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
inc eax
mov dword [ecx], vtable.std::_Ref_count_obj2_class_StandaloneUpdaterSetupComponentLogger_.0
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x40defc
lock inc dword [ecx + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ebx + 0x30]
xor edx, edx
mov dword [esi], vtable.StandaloneUpdaterSetupComponentLogger.0
mov dword [esi + 4], edx
mov dword [esi + 8], edx
test ecx, ecx
je 0x40df15
lock inc dword [ecx + 4]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
test ecx, ecx
je 0x40df24
call fcn.00415a55
mov ecx, dword [ebx + 0x3c]
or dword [ebp - 0x2c], 0x10
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], eax
test ecx, ecx
je 0x40df3d
call fcn.00415a55
push 0x3c
call fcn.0042da05
mov ebx, eax
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x58], ebx
xor eax, eax
mov edi, ebx
pop ecx
push dword [ebp - 0x110]
lea esi, [ebx + 0xc]
push dword [ebp - 0x120]
stosd dword es:[edi], eax
mov ecx, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
inc eax
mov dword [ebx], vtable.std::_Ref_count_obj2_class_StandaloneUpdaterInstallationRepair_.0
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
call 0x4155bc
mov eax, dword [ebp - 0x124]
mov edi, dword [ebp - 0x2c]
add eax, 0x58
or edi, 0x20
mov dword [ebp - 0x134], eax
mov ecx, dword [eax + 4]
mov dword [eax], esi
mov dword [eax + 4], ebx
test ecx, ecx
je 0x40dfa2
call fcn.00415a55
push 0x48
call fcn.0042da05
pop ecx
mov dword [ebp - 0x58], eax
mov ecx, eax
mov byte [ebp - 4], 7
call fcn.00415220
mov ebx, dword [ebp - 0x124]
or edi, 0x40
mov byte [ebp - 4], 3
mov dword [ebp - 0x2c], edi
lea ecx, [eax + 0xc]
mov dword [ebx + 0x1c], ecx
mov ecx, dword [ebx + 0x20]
mov dword [ebx + 0x20], eax
test ecx, ecx
je 0x40dfdd
call fcn.00415a55
push 0x24
call fcn.0042da05
mov esi, eax
xor eax, eax
push 9
pop ecx
mov dword [ebp - 0x58], esi
mov edi, esi
rep stosd dword es:[edi], eax
push ecx
lea eax, [ebx + 0x50]
mov ecx, esp
push eax
call fcn.004141c7
push ecx
push ecx
mov ecx, esp
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x40e014
lock inc dword [eax + 4]
mov eax, dword [ebx + 0x1c]
mov dword [ecx], eax
mov eax, dword [ebx + 0x20]
mov dword [ecx + 4], eax
mov ecx, esi
call 0x4164f8
add ebx, 0x24
mov edi, eax
mov dword [ebp - 0x58], ebx
mov eax, dword [ebx]
cmp eax, edi
je 0x40e05f
mov byte [ebp - 4], 8
test edi, edi
je 0x40e04e
mov eax, dword [edi]
push edi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x62c6dc]
call esi
mov eax, dword [ebx]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov dword [ebx], edi
call fcn.00414179
push 0x10
call fcn.0042da05
mov ebx, eax
pop ecx
mov dword [ebp - 0x30], ebx
mov byte [ebp - 4], 9
lea esi, [ebx + 0xc]
xor eax, eax
mov edi, ebx
mov ecx, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
inc eax
mov dword [ebx], vtable.std::_Ref_count_obj2_class_UpdateXMLParser_.0
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
call 0x4bd401
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x2c]
or eax, 0x80
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x124]
add eax, 0x28
mov dword [ebp - 0x108], eax
mov ecx, dword [eax + 4]
mov dword [eax], esi
mov dword [eax + 4], ebx
test ecx, ecx
je 0x40e0c2
call fcn.00415a55
mov ebx, dword [ebp - 0x124]
lea eax, [ebx + 0x74]
cmp dword [eax], 3
mov dword [ebp - 0x12c], eax
jne 0x40e101
call fcn.004c7ae4
test al, al
je 0x40e101
mov edi, dword [0x6b5c44]
mov eax, dword [edi]
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
test al, al
jne 0x40e101
mov ecx, ebx
call fcn.00413047
cmp byte [ebx + 0x79], 0
jne 0x40e138
mov ecx, ebx
call fcn.0040ed95
call fcn.004aab72
mov edi, eax
push 0x1de
mov ecx, dword [edi]
mov esi, dword [ecx + 0x1c]
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
test al, al
je 0x40e150
mov ecx, ebx
call fcn.0040efcc
jmp 0x40e150
call fcn.004aab72
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
cmp dword [ebp - 0x114], 2
jne 0x40e1a5
cmp byte [ebx + 0x6c], 0
je 0x40e1a5
call fcn.004197ff
mov byte [ebp - 0x10c], al
lea eax, [ebp - 0x118]
push eax
call fcn.0045e3dd
mov byte [ebp - 4], 0xa
mov edi, dword [eax]
push dword [ebp - 0x10c]
mov eax, dword [edi]
mov esi, dword [eax + 0xb8]
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
mov ecx, dword [ebp - 0x114]
test ecx, ecx
je 0x40e1a5
call fcn.00415a55
xor ecx, ecx
xor eax, eax
push 7
pop edx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], edx
mov word [ebp - 0x9c], ax
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], edx
mov word [ebp - 0x84], ax
mov byte [ebp - 4], 0xc
mov edi, str._repair
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x4c]
push edi
mov dword [ebp - 0x38], edx
call fcn.00414483
lea eax, [ebp - 0x4c]
push eax
push eax
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x54]
call fcn.00414899
lea ecx, [ebp - 0x54]
push dword [eax + 8]
call fcn.004148eb
mov ecx, dword [ebp - 0x38]
mov esi, 0x1000
mov byte [ebp - 0x125], al
cmp ecx, 8
jb 0x40e26d
mov eax, dword [ebp - 0x4c]
lea ecx, [ecx*2 + 2]
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x10c], eax
cmp ecx, esi
jb 0x40e25e
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x10c]
push eax
call fcn.00415d5a
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x10c]
push ecx
push eax
call fcn.0042d678
mov al, byte [ebp - 0x125]
pop ecx
pop ecx
test al, al
je 0x40e2ed
xor eax, eax
cmp dword [ebx + 0x74], eax
jne 0x40e281
mov ecx, ebx
call fcn.00412788
xor eax, eax
mov dword [ebp - 0x4c], eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x3c], eax
xor eax, eax
push edi
mov dword [ebp - 0x38], 7
mov word [ebp - 0x4c], ax
call fcn.00414483
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x54]
call fcn.00414913
lea ecx, [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x9c]
mov eax, dword [eax]
push ecx
add eax, 0x28
mov ecx, ebx
push eax
call fcn.00411c59
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x38]
cmp eax, 8
jb 0x40e42a
mov ecx, dword [ebp - 0x4c]
lea eax, [eax*2 + 2]
cmp eax, esi
jmp 0x40e3f4
call fcn.004c12ba
mov edi, eax
lea eax, [ebp - 0x84]
push eax
mov ecx, dword [edi]
mov esi, dword [ecx + 0xc8]
mov ecx, esi
call dword [0x62c6dc]
mov ecx, edi
call esi
test eax, eax
js 0x40e336
xor eax, eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x84]
push eax
call fcn.004144d5
or dword [ebp - 0x2c], 1
lea ecx, [ebp - 0x28]
jmp 0x40e359
xor eax, eax
mov dword [ebp - 0x38], 7
push str.19.0.0.0
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x3c], eax
call fcn.00414483
or dword [ebp - 0x2c], 2
lea ecx, [ebp - 0x4c]
push ecx
lea ecx, [ebx + 0x80]
call fcn.004142e4
mov eax, dword [ebp - 0x2c]
test al, 2
je 0x40e3d2
mov ecx, dword [ebp - 0x38]
and eax, 0xfffffffd
mov dword [ebp - 0x2c], eax
cmp ecx, 8
jb 0x40e3c2
lea eax, [ecx*2 + 2]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x114], ecx
cmp eax, 0x1000
jb 0x40e3b6
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x114]
push eax
push ecx
call fcn.0042d678
mov eax, dword [ebp - 0x2c]
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x3c], ecx
mov word [ebp - 0x4c], cx
mov dword [ebp - 4], 0xc
test al, 1
je 0x40e42a
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40e42a
mov ecx, dword [ebp - 0x28]
lea eax, [eax*2 + 2]
cmp eax, 0x1000
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x10c], eax
jb 0x40e421
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x114]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
lea eax, [ebx + 0x80]
cmp dword [eax + 0x14], 8
mov esi, eax
mov dword [ebp - 0x10c], eax
jb 0x40e440
mov esi, dword [eax]
lea eax, [ebp - 0x28]
mov ecx, ebx
push eax
call fcn.00411bd4
mov byte [ebp - 4], 0xf
cmp dword [eax + 0x14], 8
jb 0x40e457
mov eax, dword [eax]
push esi
push eax
push ecx
call 0x406d6c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xc
call fcn.00415bf1
cmp byte [ebx + 0x79], 0
je 0x40e4ae
xor ebx, ebx
lea ecx, [ebp - 0x104]
push ebx
push 2
push 1
push 0x30066fbd
push 0x677a4c
push str.StandaloneUpdater::InitializeWithDefaultImplementations
push 0x1ad
push str.d:dbs_shodct1105_210049_0cmd7clientonedriveProductStandaloneUpdater_standaloneupdaterlibStandaloneUpdater.cpp
call fcn.0045dd2d
push ebx
lea eax, [ebp - 0x104]
push eax
call fcn.0045ea98
call fcn.0045e7ff
push 0x8c
call fcn.0042da05
mov ebx, eax
pop ecx
mov dword [ebp - 0x30], ebx
mov ecx, dword [ebp - 0x124]
lea esi, [ebx + 0xc]
mov byte [ebp - 4], 0x10
add ecx, 0xb0
mov edx, dword [ebp - 0x120]
xor eax, eax
push ecx
push dword [ebp - 0x10c]
mov edi, ebx
mov ecx, esi
push dword [ebp - 0x12c]
push dword [ebp - 0x134]
stosd dword es:[edi], eax
push dword [ebp - 0x130]
push dword [ebp - 0x110]
stosd dword es:[edi], eax
push dword [ebp - 0x108]
push dword [ebp - 0x58]
stosd dword es:[edi], eax
xor eax, eax
inc eax
mov dword [ebx], vtable.std::_Ref_count_obj2_class_StandaloneUpdaterController_.0
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
call fcn.0041564d
mov eax, dword [ebp - 0x124]
mov byte [ebp - 4], 0xc
mov ecx, dword [eax + 0x44]
mov dword [eax + 0x40], esi
mov dword [eax + 0x44], ebx
test ecx, ecx
je 0x40e538
call fcn.00415a55
push 0x38
call fcn.0042da05
mov ebx, eax
pop ecx
mov dword [ebp - 0x58], ebx
mov byte [ebp - 4], 0x11
lea esi, [ebx + 0xc]
push dword [ebp - 0x10c]
mov edx, dword [ebp - 0x108]
xor eax, eax
push dword [ebp - 0x130]
mov edi, ebx
mov ecx, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
inc eax
mov dword [ebx], vtable.std::_Ref_count_obj2_class_StandaloneUpdaterCustomerPromises_.0
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
call fcn.004156ff
mov eax, dword [ebp - 0x124]
mov byte [ebp - 4], 0xc
mov ecx, dword [eax + 0x64]
mov dword [eax + 0x60], esi
mov dword [eax + 0x64], ebx
test ecx, ecx
je 0x40e597
call fcn.00415a55
mov eax, dword [ebp - 0x120]
mov edi, dword [eax]
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
mov eax, dword [ebp - 0x12c]
push dword [eax]
call dword [0x62c6dc]
mov ecx, edi
call esi
xor eax, eax
mov dword [ebp - 0x38], 7
push str._repair
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x3c], eax
call fcn.00414483
lea eax, [ebp - 0x4c]
push eax
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x54]
call fcn.00414899
lea ecx, [ebp - 0x54]
push dword [eax + 8]
call fcn.004148eb
mov ecx, dword [ebp - 0x38]
mov bl, al
mov edi, 0x1000
cmp ecx, 8
jb 0x40e641
mov eax, dword [ebp - 0x4c]
lea ecx, [ecx*2 + 2]
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x110], eax
cmp ecx, edi
jb 0x40e638
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00415d5a
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x110]
push ecx
push eax
call fcn.0042d678
pop ecx
pop ecx
test bl, bl
je 0x40e998
xor ebx, ebx
mov dword [ebp - 0x38], 7
xor eax, eax
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], ax
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0x12
push eax
call fcn.004c3d06
mov esi, eax
mov byte [ebp - 0x30], 1
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], ebx
push eax
call dword [sym.imp.USERENV.dll_GetProfileType]
cmp dword [ebp - 0x88], 8
lea eax, [ebp - 0x108]
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x108], ebx
cmovae ecx, dword [ebp - 0x9c]
push eax
push ecx
push 0x67ac30
call fcn.004cb1ff
test eax, eax
js 0x40e6b8
cmp dword [ebp - 0x108], ebx
setne byte [ebp - 0x30]
mov al, bl
mov byte [ebp - 0x120], al
test esi, esi
js 0x40e6e1
cmp dword [ebp - 0x38], 8
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne al
mov byte [ebp - 0x120], al
mov byte [ebp - 0x114], bl
mov byte [ebp - 0x130], bl
test al, al
je 0x40e7b2
mov esi, 0x677a88
lea eax, [ebp - 0x4c]
push esi
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.0041468b
push str.FileSyncClient.dll
mov ecx, eax
mov byte [ebp - 4], 0x13
call fcn.004144ac
push eax
lea ecx, [ebp - 0x6c]
call fcn.00415a80
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x15
call fcn.00415bf1
push esi
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0xfc]
push eax
call fcn.0041468b
push str.LoggingPlatform.dll
mov ecx, eax
mov byte [ebp - 4], 0x16
call fcn.004144ac
push eax
lea ecx, [ebp - 0x28]
call fcn.00415a80
lea ecx, [ebp - 0xfc]
call fcn.00415bf1
cmp dword [ebp - 0x58], 8
lea eax, [ebp - 0x6c]
cmovae eax, dword [ebp - 0x6c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
lea eax, [ebp - 0x28]
setne byte [ebp - 0x114]
cmp dword [ebp - 0x14], 8
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
lea ecx, [ebp - 0x28]
setne byte [ebp - 0x130]
call fcn.00415bf1
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x12
call fcn.00415bf1
xor eax, eax
mov dword [ebp - 0x28], ebx
push str._repair
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call fcn.00414483
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x54]
call fcn.00414913
mov edx, dword [eax]
add edx, 0x28
cmp dword [edx + 0x14], 8
jb 0x40e7f3
mov edx, dword [edx]
cmp dword [ebp - 0x70], 8
lea ecx, [ebp - 0x84]
push edx
cmovae ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x9c]
cmp dword [ebp - 0x88], 8
push 0x67ac30
cmovae eax, dword [ebp - 0x9c]
push ecx
push eax
push ecx
call 0x406e27
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40e874
mov ecx, dword [ebp - 0x28]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x10c], ecx
cmp eax, edi
jb 0x40e86b
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x10c]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x10c]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
push dword [ebp - 0x130]
push dword [ebp - 0x114]
push dword [ebp - 0x120]
push ecx
call 0x406f45
mov esi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x28], ebx
push str._repair
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call fcn.00414483
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x18
push eax
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x54]
call fcn.00414913
mov edx, dword [eax]
add edx, 0x28
cmp dword [edx + 0x14], 8
jb 0x40e8d0
mov edx, dword [edx]
cmp dword [ebp - 0x70], 8
lea ecx, [ebp - 0x84]
push esi
push dword [ebp - 0x30]
cmovae ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x130]
cmp dword [ebp - 0x38], 8
push dword [ebp - 0x114]
cmovae eax, dword [ebp - 0x4c]
push dword [ebp - 0x120]
push edx
push 0x67ac30
push ecx
push eax
push ecx
call fcn.00406b88
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40e951
mov ecx, dword [ebp - 0x28]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x110], ecx
cmp eax, edi
jb 0x40e948
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x110]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x38]
cmp eax, 8
jb 0x40e99a
mov ecx, dword [ebp - 0x4c]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x110], ecx
cmp eax, edi
jb 0x40e98d
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x110]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
jmp 0x40e99a
xor ebx, ebx
mov eax, dword [ebp - 0x12c]
cmp dword [eax], 3
je 0x40eaf1
xor eax, eax
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], 7
mov word [ebp - 0x4c], ax
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0x19
push eax
call fcn.004c4d21
test eax, eax
js 0x40eaac
cmp dword [ebp - 0x38], 8
lea eax, [ebp - 0x4c]
push 0x6769f4
cmovae eax, dword [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004cc3af
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40eaa4
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
mov eax, 0x676a10
push eax
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push 0x676a14
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push ebx
push ebx
push ebx
push eax
push ebx
push eax
push ebx
push ebx
push eax
push ebx
push eax
mov eax, 0x677a8c
mov edx, 0x211
push eax
push eax
push eax
push ebx
push ebx
push str.UnexpectedFailure
push 2
push 0x676a18
push 0x6755b0
push str.StandaloneUpdater::InitializeWithDefaultImplementations
mov ecx, str.d:dbs_shodct1105_210049_0cmd7clientonedriveProductStandaloneUpdater_standaloneupdaterlibStandaloneUpdater.cpp
call fcn.0040b2fc
lea ecx, [ebp - 0x28]
call fcn.00415bf1
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x38]
cmp eax, 8
jb 0x40eaf1
mov ecx, dword [ebp - 0x4c]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x108], ecx
cmp eax, edi
jb 0x40eae8
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x108]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
mov ecx, dword [ebp - 0x124]
call fcn.00413e4a
mov eax, dword [ebp - 0x70]
cmp eax, 8
jb 0x40eb40
mov ecx, dword [ebp - 0x84]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x108], ecx
cmp eax, edi
jb 0x40eb37
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x108]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x74], ebx
mov word [ebp - 0x84], ax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x70], 7
cmp eax, 8
jb 0x40eb9a
mov ecx, dword [ebp - 0x9c]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x108], ecx
cmp eax, edi
jb 0x40eb91
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x108]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x8c], ebx
mov word [ebp - 0x9c], ax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x88], 7
cmp eax, 8
jb 0x40ebfa
mov ecx, dword [ebp - 0xcc]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x108], ecx
cmp eax, edi
jb 0x40ebf1
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x108]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0xbc], ebx
mov word [ebp - 0xcc], ax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xb8], 7
cmp eax, 8
jb 0x40ec5a
mov ecx, dword [ebp - 0xb4]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x108], ecx
cmp eax, edi
jb 0x40ec51
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x108]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0xa4], ebx
mov word [ebp - 0xb4], ax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0xa0], 7
push dword [eax + 4]
lea eax, [ebp - 0x54]
push eax
mov ecx, eax
call fcn.004149a1
push 0x40
push dword [ebp - 0x54]
call fcn.0042d678
mov eax, dword [ebp - 0xd0]
pop ecx
pop ecx
cmp eax, 8
jb 0x40ecd7
mov ecx, dword [ebp - 0xe4]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x108], ecx
cmp eax, edi
jb 0x40ecce
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00415d5a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x108]
push eax
push ecx
call fcn.0042d678
pop ecx
pop ecx
call fcn.0042d907
ret 4