Function at 0x4158b2
Capabilities:
Check if file exists
Delete file
Move file
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x489c09
mov eax, dword fs:[0]
push eax
mov eax, 0x1218
call fcn.0044f6d0
mov eax, dword [0x4a3070]
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 eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 0x11bc], edi
mov dword [eax], edi
mov dword [ebp - 0x11d4], eax
mov dword [ecx], edi
mov eax, esi
mov dword [edx], edi
push 0x118
mov dword [eax], edi
lea eax, [ebp - 0x11a8]
push edi
push eax
mov dword [ebp - 0x11d8], ecx
mov dword [ebp - 0x11dc], edx
mov dword [ebp - 0x11e4], esi
mov dword [ebp - 0x11cc], edi
mov dword [ebp - 0x11c0], edi
mov dword [ebp - 0x11ac], 0x11c
call fcn.00444cd0
add esp, 0xc
lea esi, [ebp - 0x11ac]
call fcn.0041c162
push str.disableP2pUpgrade
lea ecx, [ebp - 0x1088]
call fcn.0040344e
push str.clientCfg
lea ecx, [ebp - 0x1050]
mov dword [ebp - 4], edi
call fcn.0040344e
lea eax, [ebp - 0x1050]
push eax
lea eax, [ebp - 0x1034]
push eax
mov byte [ebp - 4], 1
call fcn.0040c135
lea ecx, [ebp - 0x1088]
push 1
push ecx
mov byte [ebp - 4], 2
call fcn.0040c081
add esp, 0x10
lea esi, [ebp - 0x1034]
mov dword [ebp - 0x11c4], eax
mov byte [ebp - 4], 1
call fcn.0042966c
push edi
push 1
lea ecx, [ebp - 0x1050]
call fcn.00403c15
or dword [ebp - 4], 0xffffffff
push edi
push 1
lea ecx, [ebp - 0x1088]
call fcn.00403c15
call fcn.0041c10e
xor ecx, ecx
test eax, eax
mov eax, dword [ebx + 0x14]
mov ebx, dword [ebx]
setne cl
mov dword [ebp - 0x11ec], eax
mov eax, dword [eax]
mov dword [ebp - 0x11b0], eax
mov dword [ebp - 0x11e8], ebx
mov dword [ebp - 0x11b4], ebx
inc ecx
mov dword [ebp - 0x11d0], ecx
mov eax, dword [ebp - 0x11b4]
cmp eax, edi
je 0x415a15
cmp eax, dword [ebp - 0x11e8]
je 0x415a1a
call fcn.004437aa
mov eax, dword [ebp - 0x11b0]
cmp eax, dword [ebp - 0x11ec]
je 0x4165f8
lea esi, [ebp - 0x11b4]
call fcn.0043524c
mov ecx, dword [ebp - 0x11d0]
test dword [eax + 0x240], ecx
je 0x4165e8
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x415a59
mov ebx, dword [eax + 4]
jmp 0x415a5c
lea ebx, [eax + 4]
cmp dword [0x4b759c], 3
jne 0x415aaf
cmp ebx, edi
je 0x415aaf
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push str.pobus32.exe
push ebx
call esi
test eax, eax
je 0x4165e8
push str.pobus64.exe
push ebx
call esi
test eax, eax
je 0x4165e8
push str.poda32.exe
push ebx
call esi
test eax, eax
je 0x4165e8
push str.poda64.exe
push ebx
call esi
test eax, eax
je 0x4165e8
cmp dword [ebp - 0x11a8], 6
je 0x415ae5
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x415ace
mov eax, dword [eax + 4]
jmp 0x415ad1
add eax, 4
push str._win7.sys
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
jne 0x4165e8
lea esi, [ebp - 0x11b4]
call fcn.0043524c
push eax
lea eax, [ebp - 0x1224]
push eax
call fcn.0040121b
pop ecx
pop ecx
mov dword [ebp - 4], 3
cmp dword [eax + 0x18], 8
jb 0x415b11
mov eax, dword [eax + 4]
jmp 0x415b14
add eax, 4
push eax
call fcn.0041577f
push eax
push 0x49148c
lea ecx, [ebp - 0x1034]
call fcn.0041dbb7
add esp, 0xc
push edi
push 1
lea esi, [ebp - 0x1224]
mov byte [ebp - 4], 5
call fcn.00403d0d
lea esi, [ebp - 0x11b4]
mov dword [ebp - 0x11e0], edi
call fcn.0043524c
add eax, 0x1c
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415bb7
call fcn.0043524c
add eax, 0x1c
push eax
lea ebx, [ebp - 0x1050]
call fcn.00431f41
pop ecx
mov edi, eax
mov byte [ebp - 4], 6
call fcn.0043524c
lea ecx, [eax + 0x224]
mov eax, edi
call fcn.004058be
xor esi, esi
push 0
inc esi
push esi
lea ecx, [ebp - 0x1050]
mov bl, al
mov byte [ebp - 4], 5
call fcn.00403c15
test bl, bl
je 0x415baf
push 0
push esi
jmp 0x4165d7
mov dword [ebp - 0x11e0], esi
xor edi, edi
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x415bcc
lea eax, [ebp - 0x1030]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415c5d
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x415bf0
lea eax, [ebp - 0x1030]
push eax
lea ebx, [ebp - 0x1050]
call fcn.00431f41
pop ecx
mov edi, eax
lea esi, [ebp - 0x11b4]
mov byte [ebp - 4], 7
call fcn.0043524c
lea ecx, [eax + 0x224]
mov eax, edi
call fcn.004058be
push 0
push 1
lea ecx, [ebp - 0x1050]
mov bl, al
mov byte [ebp - 4], 5
call fcn.00403c15
test bl, bl
je 0x415c5b
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x415c49
lea eax, [ebp - 0x1030]
push eax
push str.cached_path_ok:__s
call fcn.0041f771
pop ecx
pop ecx
jmp 0x4165d3
xor edi, edi
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
mov dword [ebp - 0x11b8], 1
jae 0x415c7c
lea eax, [ebp - 0x1030]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415cd8
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x415c9c
lea eax, [ebp - 0x1030]
push eax
lea ebx, [ebp - 0x1050]
call fcn.00431f41
pop ecx
mov edi, eax
mov byte [ebp - 4], 8
or dword [ebp - 0x11bc], 1
lea esi, [ebp - 0x11b4]
call fcn.0043524c
lea ecx, [eax + 0x224]
mov eax, edi
call fcn.004058be
xor edi, edi
test al, al
je 0x415cd8
mov bl, 1
jmp 0x415cda
xor bl, bl
mov dword [ebp - 4], 5
test byte [ebp - 0x11bc], 1
je 0x415cff
and dword [ebp - 0x11bc], 0xfffffffe
push edi
push 1
lea ecx, [ebp - 0x1050]
call fcn.00403c15
test bl, bl
je 0x415d4b
mov dword [ebp - 0x11b8], edi
mov ebx, 0x491528
cmp dword [ebp - 0x11b8], edi
jne 0x415d1b
mov ebx, 0x491530
lea esi, [ebp - 0x11b4]
call fcn.0043524c
push eax
lea eax, [ebp - 0x1208]
push eax
call fcn.0040121b
pop ecx
pop ecx
mov byte [ebp - 4], 0xf
cmp dword [eax + 0x18], 8
jb 0x4160bd
mov eax, dword [eax + 4]
jmp 0x4160c0
push 1
lea ecx, [ebp - 0x1208]
mov dword [ebp - 0x11c8], edi
call fcn.00420d9c
pop ecx
mov ebx, eax
lea esi, [ebp - 0x11b4]
mov byte [ebp - 4], 9
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x415d7b
mov eax, dword [eax + 4]
jmp 0x415d7e
add eax, 4
cmp dword [ebx + 0x18], 0x10
jb 0x415d89
mov ebx, dword [ebx + 4]
jmp 0x415d8c
add ebx, 4
push eax
push 0x32e3
push ebx
push str.https:___s:_d_client__s
lea esi, [ebp - 0x1088]
call fcn.0041dc15
add esp, 0x10
push edi
push 1
lea ecx, [ebp - 0x1208]
mov byte [ebp - 4], 0xb
call fcn.00403c15
cmp dword [ebp - 0x11c4], edi
je 0x415ee0
push edi
lea ecx, [ebp - 0x1050]
mov dword [ebp - 0x1038], 0xf
call fcn.004043f6
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x101c], 8
mov ebx, dword [ebp - 0x1030]
jae 0x415df3
lea ebx, [ebp - 0x1030]
lea esi, [ebp - 0x11b4]
call fcn.0043524c
lea ecx, [ebp - 0x1050]
push ecx
push ebx
lea edx, [eax + 0x224]
lea ecx, [ebp - 0x1088]
call fcn.004209c4
pop ecx
pop ecx
test al, al
jne 0x415ecc
lea eax, [ebp - 0x1050]
push eax
lea eax, [ebp - 0x1208]
push eax
call fcn.0040121b
pop ecx
pop ecx
mov byte [ebp - 4], 0xd
cmp dword [eax + 0x18], 8
jb 0x415e45
mov ebx, dword [eax + 4]
jmp 0x415e48
lea ebx, [eax + 4]
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x415e5e
mov eax, dword [eax + 4]
jmp 0x415e61
add eax, 4
push ebx
push eax
push str.p2p_download__s_failed:_s
call fcn.0041fb6f
add esp, 0xc
xor ebx, ebx
push edi
inc ebx
push ebx
lea esi, [ebp - 0x1208]
call fcn.00403d0d
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x415e95
lea eax, [ebp - 0x1030]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push edi
push ebx
lea ecx, [ebp - 0x1050]
call fcn.00403c15
push edi
push ebx
lea ecx, [ebp - 0x1088]
call fcn.00403c15
push edi
push ebx
or dword [ebp - 4], 0xffffffff
lea esi, [ebp - 0x1034]
call fcn.00403d0d
jmp 0x4165e8
push edi
push 1
lea ecx, [ebp - 0x1050]
mov byte [ebp - 4], 0xb
call fcn.00403c15
jmp 0x415f30
cmp dword [ebp - 0x101c], 8
mov ecx, dword [ebp - 0x1030]
jae 0x415ef5
lea ecx, [ebp - 0x1030]
cmp dword [ebp - 0x1070], 0x10
mov eax, dword [ebp - 0x1084]
jae 0x415f0a
lea eax, [ebp - 0x1084]
lea edx, [ebp - 0x11c8]
push edx
push ecx
push eax
call fcn.0041fe6a
test eax, eax
je 0x41605e
cmp dword [ebp - 0x11c8], 0xc8
jne 0x41605e
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x415f45
lea eax, [ebp - 0x1030]
push eax
lea ebx, [ebp - 0x106c]
call fcn.00431f41
pop ecx
lea esi, [ebp - 0x11b4]
mov byte [ebp - 4], 0xe
call fcn.0043524c
add eax, 0x224
mov ecx, ebx
call fcn.004058be
test al, al
jne 0x41601a
cmp dword [ebp - 0x1054], 0x10
mov ebx, dword [ebp - 0x1068]
jae 0x415f8a
lea ebx, [ebp - 0x1068]
lea esi, [ebp - 0x11b4]
call fcn.0043524c
add eax, 0x224
cmp dword [eax + 0x18], 0x10
jb 0x415fa5
mov edi, dword [eax + 4]
jmp 0x415fa8
lea edi, [eax + 4]
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x415fbe
mov eax, dword [eax + 4]
jmp 0x415fc1
add eax, 4
push ebx
push edi
push eax
push str.md5_check_error:_s_s_s
call fcn.0041fb6f
mov eax, dword [ebp - 0x11e4]
xor esi, esi
inc esi
add esp, 0x10
cmp dword [ebp - 0x101c], 8
mov dword [eax], esi
mov eax, dword [ebp - 0x1030]
jae 0x415ff1
lea eax, [ebp - 0x1030]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor edi, edi
push edi
push esi
lea ecx, [ebp - 0x106c]
call fcn.00403c15
push edi
push esi
lea ecx, [ebp - 0x1088]
call fcn.00403c15
push edi
jmp 0x415ba9
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x41602f
lea eax, [ebp - 0x1030]
push eax
call fcn.0041d6f4
push 0
push 1
lea ecx, [ebp - 0x106c]
call fcn.00403c15
push 0
push 1
lea ecx, [ebp - 0x1088]
mov byte [ebp - 4], 5
call fcn.00403c15
xor edi, edi
jmp 0x415d09
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x416074
mov eax, dword [eax + 4]
jmp 0x416077
add eax, 4
push dword [ebp - 0x11c8]
push eax
push str.download__s_failed:_d
call fcn.0041fb6f
mov eax, dword [ebp - 0x1030]
add esp, 0xc
cmp dword [ebp - 0x101c], 8
jae 0x4160a0
lea eax, [ebp - 0x1030]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push edi
push 1
lea ecx, [ebp - 0x1088]
call fcn.00403c15
push edi
push 1
jmp 0x415eb8
add eax, 4
push ebx
push eax
push 0x49153c
call fcn.0041f771
add esp, 0xc
push edi
push 1
lea esi, [ebp - 0x1208]
mov byte [ebp - 4], 5
call fcn.00403d0d
inc dword [ebp - 0x11c0]
lea eax, [ebp - 0x1208]
push eax
call fcn.0041c8f9
cmp dword [eax + 0x18], 8
pop ecx
jb 0x4160ff
mov eax, dword [eax + 4]
jmp 0x416102
add eax, 4
mov esi, eax
mov ebx, str.upgradeTime
mov edi, 0x48eff0
call fcn.0041dca5
push 0
push 1
lea esi, [ebp - 0x1208]
call fcn.00403d0d
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x416138
mov eax, dword [eax + 4]
jmp 0x41613b
add eax, 4
push eax
mov ebx, 0x491570
call fcn.0041db74
test eax, eax
je 0x416271
cmp dword [ebp - 0x101c], 8
mov ecx, dword [ebp - 0x1030]
jae 0x416163
lea ecx, [ebp - 0x1030]
call fcn.00438222
xor edi, edi
mov ebx, eax
inc edi
test bl, 1
je 0x41618e
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp byte [eax + 0x244], 0
jne 0x41618e
mov eax, dword [ebp - 0x11d4]
mov dword [eax], edi
test bl, 2
je 0x416308
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp byte [eax + 0x244], 0
jne 0x416266
call fcn.00415732
test al, al
jne 0x416266
and dword [ebp - 0x11b8], 0
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x4161d8
lea eax, [ebp - 0x1030]
push eax
lea edi, [ebp - 0x11b8]
call fcn.0041d2f9
test eax, eax
je 0x416207
cmp dword [ebp - 0x11b8], 0
je 0x4161fc
mov eax, dword [ebp - 0x11dc]
jmp 0x416302
mov eax, dword [ebp - 0x11d8]
jmp 0x416302
push str.__s._d_
lea eax, [ebp - 0x1014]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x800
push str.PoIsPeFileW_failed:__s
lea eax, [ebp - 0x1014]
push eax
call dword [sym.imp.SHLWAPI.dll_StrNCatW]
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x416245
lea eax, [ebp - 0x1030]
push eax
push 0x9e
push str..upgrade.cpp
lea eax, [ebp - 0x1014]
push eax
push 0
call sym.gxbus32.exe_E7248975
add esp, 0x14
jmp 0x416308
mov dword [ebp - 0x11cc], edi
jmp 0x416308
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x416287
mov eax, dword [eax + 4]
jmp 0x41628a
add eax, 4
push eax
mov ebx, str..sys
call fcn.0041db74
test eax, eax
je 0x4162ac
mov ecx, dword [ebp - 0x11d4]
xor eax, eax
inc eax
mov dword [ecx], eax
mov dword [ebp - 0x11cc], eax
jmp 0x416308
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x4162c2
mov eax, dword [eax + 4]
jmp 0x4162c5
add eax, 4
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrIA]
push str.gxbus
push eax
call edi
test eax, eax
jne 0x4162fc
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp dword [eax + 0x18], 0x10
jb 0x4162ed
mov eax, dword [eax + 4]
jmp 0x4162f0
add eax, 4
push 0x4915f0
push eax
call edi
test eax, eax
je 0x416308
mov eax, dword [ebp - 0x11d4]
mov dword [eax], 1
lea esi, [ebp - 0x11b4]
call fcn.0043524c
add eax, 0x1c
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41633f
call fcn.0043524c
mov edi, eax
add edi, 0x1c
call fcn.0041b9e3
call fcn.0043524c
add eax, 0x1c
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea esi, [ebp - 0x11b4]
call fcn.0043524c
cmp dword [ebp - 0x11e0], 0
mov ecx, dword [ebp - 0x1030]
jne 0x416400
cmp dword [ebp - 0x101c], 8
jae 0x41636c
lea ecx, [ebp - 0x1030]
add eax, 0x1c
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
lea esi, [ebp - 0x11b4]
test eax, eax
jne 0x4163d7
call fcn.0043524c
cmp dword [ebp - 0x101c], 8
mov edi, dword [ebp - 0x1030]
mov esi, eax
jae 0x41639d
lea edi, [ebp - 0x1030]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
add esi, 0x1c
push esi
push edi
push str.move_file_failed:_s___s_err_code:_d
call fcn.0041fc97
mov eax, dword [ebp - 0x1030]
add esp, 0x10
cmp dword [ebp - 0x101c], 8
jae 0x4163cb
lea eax, [ebp - 0x1030]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x4165d3
call fcn.0043524c
cmp dword [ebp - 0x101c], 8
mov ecx, dword [ebp - 0x1030]
jae 0x4163f1
lea ecx, [ebp - 0x1030]
add eax, 0x1c
push eax
push ecx
push str.upgrade_ok__1_:__s___s
jmp 0x4165cb
cmp dword [ebp - 0x101c], 8
jae 0x41640f
lea ecx, [ebp - 0x1030]
mov edi, dword [sym.imp.KERNEL32.dll_MoveFileExW]
push 1
add eax, 0x1c
push eax
push ecx
call edi
lea esi, [ebp - 0x11b4]
test eax, eax
jne 0x4165a7
call fcn.0043524c
cmp byte [eax + 0x244], 0
je 0x4164b1
call fcn.0043524c
cmp dword [ebp - 0x101c], 8
mov ecx, dword [ebp - 0x1030]
jae 0x416454
lea ecx, [ebp - 0x1030]
push 5
add eax, 0x1c
push eax
push ecx
call edi
lea esi, [ebp - 0x11b4]
test eax, eax
jne 0x416488
call fcn.0043524c
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
add esi, 0x1c
push esi
push str.move_file_delay_failed:_s__err_code:_d_n
call fcn.0041fc97
jmp 0x4165d0
call fcn.0043524c
cmp dword [ebp - 0x101c], 8
mov ecx, dword [ebp - 0x1030]
jae 0x4164a2
lea ecx, [ebp - 0x1030]
add eax, 0x1c
push eax
push ecx
push str.upgrade_ok__2_:__s___s
jmp 0x4165cb
call fcn.0043524c
mov esi, eax
call fcn.0041c358
push eax
add esi, 0x1c
push esi
push str._s._08x.dirty
lea ecx, [ebp - 0x1050]
call fcn.0041dbb7
add esp, 0xc
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x1038], 8
mov edi, dword [ebp - 0x104c]
jae 0x4164ee
lea edi, [ebp - 0x104c]
lea esi, [ebp - 0x11b4]
call fcn.0043524c
push edi
mov edi, dword [sym.imp.KERNEL32.dll_MoveFileW]
add eax, 0x1c
push eax
call edi
test eax, eax
je 0x416581
call fcn.0043524c
cmp dword [ebp - 0x101c], 8
mov ecx, dword [ebp - 0x1030]
jae 0x416524
lea ecx, [ebp - 0x1030]
add eax, 0x1c
push eax
push ecx
call edi
lea esi, [ebp - 0x11b4]
test eax, eax
jne 0x416553
call fcn.0043524c
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
add esi, 0x1c
push esi
push str.move_file_failed:_s__err_code:_d_n
call fcn.0041fc97
jmp 0x41657c
call fcn.0043524c
cmp dword [ebp - 0x101c], 8
mov ecx, dword [ebp - 0x1030]
jae 0x41656d
lea ecx, [ebp - 0x1030]
add eax, 0x1c
push eax
push ecx
push str.upgrade_ok__3_:__s___s
call fcn.0041f771
add esp, 0xc
jmp 0x416596
call fcn.0043524c
add eax, 0x1c
push eax
push str.rename_file_failed:__s_n
call fcn.0041fc97
pop ecx
pop ecx
push 0
push 1
lea esi, [ebp - 0x1050]
call fcn.00403d0d
jmp 0x4165d3
call fcn.0043524c
cmp dword [ebp - 0x101c], 8
mov ecx, dword [ebp - 0x1030]
jae 0x4165c1
lea ecx, [ebp - 0x1030]
add eax, 0x1c
push eax
push ecx
push str.upgrade_ok__4_:__s___s
call fcn.0041f771
add esp, 0xc
push 0
push 1
or dword [ebp - 4], 0xffffffff
lea esi, [ebp - 0x1034]
call fcn.00403d0d
xor edi, edi
lea esi, [ebp - 0x11b4]
call fcn.00440f2d
jmp 0x415a03
cmp dword [ebp - 0x11c0], edi
je 0x4166dd
push dword [ebp - 0x11c0]
lea ecx, [ebp - 0x106c]
push 0x4917c4
call fcn.0041dbb7
pop ecx
pop ecx
push 4
pop esi
lea eax, [ebp - 0x11d8]
push eax
lea eax, [ebp - 0x11c4]
push eax
lea eax, [ebp - 0x11dc]
push eax
push str.__installed
push 0x48eff0
mov dword [ebp - 4], 0x11
push reloc.WS2_32.dll_bind
mov dword [ebp - 0x11d8], esi
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x41666a
cmp dword [ebp - 0x11dc], esi
jne 0x41666a
mov eax, dword [ebp - 0x11c4]
jmp 0x41666c
xor eax, eax
cmp eax, edi
je 0x416683
push 5
pop eax
mov ecx, 0x4917f4
lea esi, [ebp - 0x106c]
call fcn.00404506
cmp dword [ebp - 0x11cc], edi
je 0x4166b3
push 0x491800
lea eax, [ebp - 0x106c]
push eax
call fcn.0040352c
lea eax, [ebp - 0x11d0]
push eax
mov dword [ebp - 0x11d0], 1
call fcn.0041dffd
pop ecx
cmp dword [ebp - 0x1054], 8
mov eax, dword [ebp - 0x1068]
jae 0x4166c8
lea eax, [ebp - 0x1068]
push eax
call fcn.004157ac
pop ecx
push edi
push 1
lea esi, [ebp - 0x106c]
call fcn.00403d0d
xor eax, eax
inc eax
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.0044302b
leave
ret 0xc