Function at 0x40b2c0
Capabilities:
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4df8ad
mov eax, dword fs:[0]
push eax
sub esp, 0x910
mov eax, dword [0x509018]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
xor eax, eax
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
push eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x218]
push 0x2b
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x40b364
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40b330
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x230]
call fcn.00403110
push 0x1b
push str.AdobeAdobe_Desktop_Common
lea ecx, [ebp - 0x230]
call fcn.004033e0
push 5
xor eax, eax
mov dword [ebp - 0x8c4], 0
push str.HDBox
lea ecx, [ebp - 0x8d4]
mov dword [ebp - 0x8c0], 7
mov word [ebp - 0x8d4], ax
call fcn.00403110
push ecx
lea edx, [ebp - 0x8d4]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x230]
call fcn.004af6a0
mov byte [ebp - 4], 0
add esp, 4
mov edx, dword [ebp - 0x8c0]
cmp edx, 8
jb 0x40b3f0
mov ecx, dword [ebp - 0x8d4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b3e6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c5f2
push edx
push ecx
call fcn.004bda5c
add esp, 8
push 5
xor eax, eax
mov dword [ebp - 0x8f4], 0
push str.auphd
lea ecx, [ebp - 0x904]
mov dword [ebp - 0x8f0], 7
mov word [ebp - 0x904], ax
call fcn.00403110
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x8d4]
push 1
xor eax, eax
mov dword [ebp - 0x8c4], 0
push str.01234_
mov dword [ebp - 0x8c0], 7
mov word [ebp - 0x8d4], ax
call fcn.00403110
push ecx
push 0
lea eax, [ebp - 0x904]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x8d4]
push eax
lea ecx, [ebp - 0x440]
call fcn.004068d0
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x8c0]
cmp edx, 8
jb 0x40b4b6
mov ecx, dword [ebp - 0x8d4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b4ac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x8f0]
cmp edx, 8
jb 0x40b4fa
mov ecx, dword [ebp - 0x904]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b4f0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
lea ecx, [ebp - 0x440]
call fcn.00407360
test eax, eax
je 0x40b538
mov esi, dword [edi]
push eax
push str.auphd
push str.CreateRegistryKey_command_failed_for_key:__s_with_error_code:__d.
mov esi, dword [esi + 0x24]
mov ecx, esi
push 0x4f7340
push edi
call dword [0x4e2324]
call esi
add esp, 0x14
mov byte [ebp - 0x8a1], 0
jmp 0x40c58a
push 0x19
xor eax, eax
mov dword [ebp - 0x8ac], 0
push str.URL:Adobe_Update_Protocol
lea ecx, [ebp - 0x8bc]
mov dword [ebp - 0x8a8], 7
mov word [ebp - 0x8bc], ax
call fcn.00403110
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x8ec]
push 6
xor eax, eax
mov dword [ebp - 0x8dc], 0
push str.REG_SZ
mov dword [ebp - 0x8d8], 7
mov word [ebp - 0x8ec], ax
call fcn.00403110
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x91c]
push 7
xor eax, eax
mov dword [ebp - 0x90c], 0
push str.Default
mov dword [ebp - 0x908], 7
mov word [ebp - 0x91c], ax
call fcn.00403110
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x8d4]
push 5
xor eax, eax
mov dword [ebp - 0x8c4], 0
push str.auphd
mov dword [ebp - 0x8c0], 7
mov word [ebp - 0x8d4], ax
call fcn.00403110
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x904]
push 1
xor eax, eax
mov dword [ebp - 0x8f4], 0
push str.01234_
mov dword [ebp - 0x8f0], 7
mov word [ebp - 0x904], ax
call fcn.00403110
push ecx
push 0
lea eax, [ebp - 0x8bc]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x8ec]
push eax
lea eax, [ebp - 0x91c]
push eax
lea eax, [ebp - 0x8d4]
push eax
lea eax, [ebp - 0x904]
push eax
lea ecx, [ebp - 0x8a0]
call fcn.00408080
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x8f0]
cmp edx, 8
jb 0x40b6ac
mov ecx, dword [ebp - 0x904]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b6a2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x8c0]
cmp edx, 8
jb 0x40b6f0
mov ecx, dword [ebp - 0x8d4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b6e6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x908]
cmp edx, 8
jb 0x40b734
mov ecx, dword [ebp - 0x91c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b72a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x8d8]
cmp edx, 8
jb 0x40b778
mov ecx, dword [ebp - 0x8ec]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b76e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x8a8]
cmp edx, 8
jb 0x40b7bc
mov ecx, dword [ebp - 0x8bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b7b2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
lea ecx, [ebp - 0x8a0]
call fcn.00408f20
test eax, eax
je 0x40b7fa
mov esi, dword [edi]
push eax
push str.auphd
push str.SetRegistryValue_command_failed_for_key:__s_with_error_code:__d.
mov esi, dword [esi + 0x24]
mov ecx, esi
push 0x4f7340
push edi
call dword [0x4e2324]
call esi
add esp, 0x14
mov byte [ebp - 0x8a1], 0
jmp 0x40c57f
push 2
xor eax, eax
mov dword [ebp - 0x8c4], 0
push 0x4f8d6c
lea ecx, [ebp - 0x8d4]
mov dword [ebp - 0x8c0], 7
mov word [ebp - 0x8d4], ax
call fcn.00403110
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x904]
push 6
xor eax, eax
mov dword [ebp - 0x8f4], 0
push str.REG_SZ
mov dword [ebp - 0x8f0], 7
mov word [ebp - 0x904], ax
call fcn.00403110
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x91c]
push 0xc
xor eax, eax
mov dword [ebp - 0x90c], 0
push str.URL_Protocol
mov dword [ebp - 0x908], 7
mov word [ebp - 0x91c], ax
call fcn.00403110
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x8ec]
push 5
xor eax, eax
mov dword [ebp - 0x8dc], 0
push str.auphd
mov dword [ebp - 0x8d8], 7
mov word [ebp - 0x8ec], ax
call fcn.00403110
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x8bc]
push 1
xor eax, eax
mov dword [ebp - 0x8ac], 0
push str.01234_
mov dword [ebp - 0x8a8], 7
mov word [ebp - 0x8bc], ax
call fcn.00403110
push ecx
push 0
lea eax, [ebp - 0x8d4]
mov byte [ebp - 4], 0x16
push eax
lea eax, [ebp - 0x904]
push eax
lea eax, [ebp - 0x91c]
push eax
lea eax, [ebp - 0x8ec]
push eax
lea eax, [ebp - 0x8bc]
push eax
lea ecx, [ebp - 0x788]
call fcn.00408080
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x8a8]
cmp edx, 8
jb 0x40b96e
mov ecx, dword [ebp - 0x8bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b964
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x8d8]
cmp edx, 8
jb 0x40b9b2
mov ecx, dword [ebp - 0x8ec]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b9a8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x1a
mov edx, dword [ebp - 0x908]
cmp edx, 8
jb 0x40b9f6
mov ecx, dword [ebp - 0x91c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b9ec
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp - 0x8f0]
cmp edx, 8
jb 0x40ba3a
mov ecx, dword [ebp - 0x904]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40ba30
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x1c
mov edx, dword [ebp - 0x8c0]
cmp edx, 8
jb 0x40ba7e
mov ecx, dword [ebp - 0x8d4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40ba74
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
lea ecx, [ebp - 0x788]
call fcn.00408f20
test eax, eax
je 0x40babc
mov esi, dword [edi]
push eax
push str.auphd
push str.SetRegistryValue_command_failed_for_key:__s_with_error_code:__d.
mov esi, dword [esi + 0x24]
mov ecx, esi
push 0x4f7340
push edi
call dword [0x4e2324]
call esi
add esp, 0x14
mov byte [ebp - 0x8a1], 0
jmp 0x40c574
lea eax, [ebp - 0x230]
mov edx, 0x4f75f0
push eax
lea ecx, [ebp - 0x8bc]
call fcn.00403c00
add esp, 4
push 0x18
push str.Adobe_Update_Helper.exe
mov ecx, eax
mov byte [ebp - 4], 0x1d
call fcn.004033e0
mov dword [ebp - 0x8c4], 0
xor ecx, ecx
mov dword [ebp - 0x8c0], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x8d4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x8c4], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push 3
push 0x4f8d90
lea ecx, [ebp - 0x8d4]
mov byte [ebp - 4], 0x1e
call fcn.004033e0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x260], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x250], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x20
mov edx, dword [ebp - 0x8c0]
cmp edx, 8
jb 0x40bbaa
mov ecx, dword [ebp - 0x8d4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bba0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c5f7
push edx
push ecx
call fcn.004bda5c
add esp, 8
xor eax, eax
mov dword [ebp - 0x8c4], 0
mov dword [ebp - 0x8c0], 7
mov word [ebp - 0x8d4], ax
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x8a8]
cmp edx, 8
jb 0x40bc0b
mov ecx, dword [ebp - 0x8bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bc01
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c5f7
push edx
push ecx
call fcn.004bda5c
add esp, 8
xor eax, eax
mov dword [ebp - 0x8ac], 0
push 0x11
push str.auphdDefaultIcon
lea ecx, [ebp - 0x8ec]
mov dword [ebp - 0x8a8], 7
mov word [ebp - 0x8bc], ax
mov dword [ebp - 0x8dc], eax
mov dword [ebp - 0x8d8], 7
mov word [ebp - 0x8ec], ax
call fcn.00403110
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x8bc]
push 1
xor eax, eax
mov dword [ebp - 0x8ac], 0
push str.01234_
mov dword [ebp - 0x8a8], 7
mov word [ebp - 0x8bc], ax
call fcn.00403110
push ecx
push 0
lea eax, [ebp - 0x8ec]
mov byte [ebp - 4], 0x23
push eax
lea eax, [ebp - 0x8bc]
push eax
lea ecx, [ebp - 0x3a0]
call fcn.004068d0
mov byte [ebp - 4], 0x25
mov edx, dword [ebp - 0x8a8]
cmp edx, 8
jb 0x40bce8
mov ecx, dword [ebp - 0x8bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bcde
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x26
mov edx, dword [ebp - 0x8d8]
cmp edx, 8
jb 0x40bd2c
mov ecx, dword [ebp - 0x8ec]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bd22
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
lea ecx, [ebp - 0x3a0]
call fcn.00407360
test eax, eax
je 0x40bd6a
mov esi, dword [edi]
push eax
push str.auphdDefaultIcon
push str.CreateRegistryKey_command_failed_for_key:__s_with_error_code:__d.
mov esi, dword [esi + 0x24]
mov ecx, esi
push 0x4f7340
push edi
call dword [0x4e2324]
call esi
add esp, 0x14
mov byte [ebp - 0x8a1], 0
jmp 0x40c529
push 6
xor eax, eax
mov dword [ebp - 0x8f4], 0
push str.REG_SZ
lea ecx, [ebp - 0x904]
mov dword [ebp - 0x8f0], 7
mov word [ebp - 0x904], ax
call fcn.00403110
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x91c]
push 7
xor eax, eax
mov dword [ebp - 0x90c], 0
push str.Default
mov dword [ebp - 0x908], 7
mov word [ebp - 0x91c], ax
call fcn.00403110
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x8ec]
push 0x11
xor eax, eax
mov dword [ebp - 0x8dc], 0
push str.auphdDefaultIcon
mov dword [ebp - 0x8d8], 7
mov word [ebp - 0x8ec], ax
call fcn.00403110
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x8bc]
push 1
xor eax, eax
mov dword [ebp - 0x8ac], 0
push str.01234_
mov dword [ebp - 0x8a8], 7
mov word [ebp - 0x8bc], ax
call fcn.00403110
push ecx
push 0
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0x2a
push eax
lea eax, [ebp - 0x904]
push eax
lea eax, [ebp - 0x91c]
push eax
lea eax, [ebp - 0x8ec]
push eax
lea eax, [ebp - 0x8bc]
push eax
lea ecx, [ebp - 0x670]
call fcn.00408080
mov byte [ebp - 4], 0x2c
mov edx, dword [ebp - 0x8a8]
cmp edx, 8
jb 0x40beab
mov ecx, dword [ebp - 0x8bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bea1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x8d8]
cmp edx, 8
jb 0x40beef
mov ecx, dword [ebp - 0x8ec]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bee5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x2e
mov edx, dword [ebp - 0x908]
cmp edx, 8
jb 0x40bf33
mov ecx, dword [ebp - 0x91c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bf29
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x2f
mov edx, dword [ebp - 0x8f0]
cmp edx, 8
jb 0x40bf77
mov ecx, dword [ebp - 0x904]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bf6d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
lea ecx, [ebp - 0x670]
call fcn.00408f20
test eax, eax
je 0x40bfb5
mov esi, dword [edi]
push eax
push str.auphdDefaultIcon
push str.SetRegistryValue_command_failed_for_key:__s_with_error_code:__d.
mov esi, dword [esi + 0x24]
mov ecx, esi
push 0x4f7340
push edi
call dword [0x4e2324]
call esi
add esp, 0x14
mov byte [ebp - 0x8a1], 0
jmp 0x40c51e
lea eax, [ebp - 0x230]
mov edx, 0x4f75f0
push eax
lea ecx, [ebp - 0x8bc]
call fcn.00403c00
add esp, 4
push 0x18
push str.Adobe_Update_Helper.exe
mov ecx, eax
mov byte [ebp - 4], 0x30
call fcn.004033e0
mov dword [ebp - 0x8c4], 0
xor ecx, ecx
mov dword [ebp - 0x8c0], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x8d4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x8c4], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push 6
push str.____1_
lea ecx, [ebp - 0x8d4]
mov byte [ebp - 4], 0x31
call fcn.004033e0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x248], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x238], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x33
mov edx, dword [ebp - 0x8c0]
cmp edx, 8
jb 0x40c0a3
mov ecx, dword [ebp - 0x8d4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c099
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c5fc
push edx
push ecx
call fcn.004bda5c
add esp, 8
xor eax, eax
mov dword [ebp - 0x8c4], 0
mov dword [ebp - 0x8c0], 7
mov word [ebp - 0x8d4], ax
mov byte [ebp - 4], 0x34
mov edx, dword [ebp - 0x8a8]
cmp edx, 8
jb 0x40c104
mov ecx, dword [ebp - 0x8bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c0fa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c5fc
push edx
push ecx
call fcn.004bda5c
add esp, 8
xor eax, eax
mov dword [ebp - 0x8ac], 0
push 0x18
push str.auphd_shellopencommand
lea ecx, [ebp - 0x8ec]
mov dword [ebp - 0x8a8], 7
mov word [ebp - 0x8bc], ax
mov dword [ebp - 0x8dc], eax
mov dword [ebp - 0x8d8], 7
mov word [ebp - 0x8ec], ax
call fcn.00403110
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0x8bc]
push 1
xor eax, eax
mov dword [ebp - 0x8ac], 0
push str.01234_
mov dword [ebp - 0x8a8], 7
mov word [ebp - 0x8bc], ax
call fcn.00403110
push ecx
push 0
lea eax, [ebp - 0x8ec]
mov byte [ebp - 4], 0x36
push eax
lea eax, [ebp - 0x8bc]
push eax
lea ecx, [ebp - 0x300]
call fcn.004068d0
mov byte [ebp - 4], 0x38
mov edx, dword [ebp - 0x8a8]
cmp edx, 8
jb 0x40c1e1
mov ecx, dword [ebp - 0x8bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c1d7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x39
mov edx, dword [ebp - 0x8d8]
cmp edx, 8
jb 0x40c225
mov ecx, dword [ebp - 0x8ec]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c21b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
lea ecx, [ebp - 0x300]
call fcn.00407360
test eax, eax
je 0x40c263
mov esi, dword [edi]
push eax
push str.auphd_shellopencommand
push str.CreateRegistryKey_command_failed_for_key:__s_with_error_code:__d.
mov esi, dword [esi + 0x24]
mov ecx, esi
push 0x4f7340
push edi
call dword [0x4e2324]
call esi
add esp, 0x14
mov byte [ebp - 0x8a1], 0
jmp 0x40c4d3
push 6
xor eax, eax
mov dword [ebp - 0x8f4], 0
push str.REG_SZ
lea ecx, [ebp - 0x904]
mov dword [ebp - 0x8f0], 7
mov word [ebp - 0x904], ax
call fcn.00403110
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x91c]
push 7
xor eax, eax
mov dword [ebp - 0x90c], 0
push str.Default
mov dword [ebp - 0x908], 7
mov word [ebp - 0x91c], ax
call fcn.00403110
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x8ec]
push 0x18
xor eax, eax
mov dword [ebp - 0x8dc], 0
push str.auphd_shellopencommand
mov dword [ebp - 0x8d8], 7
mov word [ebp - 0x8ec], ax
call fcn.00403110
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x8bc]
push 1
xor eax, eax
mov dword [ebp - 0x8ac], 0
push str.01234_
mov dword [ebp - 0x8a8], 7
mov word [ebp - 0x8bc], ax
call fcn.00403110
push ecx
push 0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x3d
push eax
lea eax, [ebp - 0x904]
push eax
lea eax, [ebp - 0x91c]
push eax
lea eax, [ebp - 0x8ec]
push eax
lea eax, [ebp - 0x8bc]
push eax
lea ecx, [ebp - 0x558]
call fcn.00408080
mov byte [ebp - 4], 0x3f
mov edx, dword [ebp - 0x8a8]
cmp edx, 8
jb 0x40c3a4
mov ecx, dword [ebp - 0x8bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c39a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x40
mov edx, dword [ebp - 0x8d8]
cmp edx, 8
jb 0x40c3e8
mov ecx, dword [ebp - 0x8ec]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c3de
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x41
mov edx, dword [ebp - 0x908]
cmp edx, 8
jb 0x40c42c
mov ecx, dword [ebp - 0x91c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c422
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov byte [ebp - 4], 0x42
mov edx, dword [ebp - 0x8f0]
cmp edx, 8
jb 0x40c470
mov ecx, dword [ebp - 0x904]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c466
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
lea ecx, [ebp - 0x558]
call fcn.00408f20
mov esi, dword [edi]
test eax, eax
je 0x40c4ab
mov esi, dword [esi + 0x24]
mov ecx, esi
push eax
push str.auphd_shellopencommand
push str.SetRegistryValue_command_failed_for_key:__s_with_error_code:__d.
push 0x4f7340
push edi
call dword [0x4e2324]
call esi
add esp, 0x14
mov byte [ebp - 0x8a1], 0
jmp 0x40c4c8
mov esi, dword [esi + 0x14]
mov ecx, esi
push str.Added_registry_entries_for_Update_URI_handler
push edi
call dword [0x4e2324]
call esi
add esp, 8
mov byte [ebp - 0x8a1], 1
lea ecx, [ebp - 0x558]
call fcn.00408250
lea ecx, [ebp - 0x300]
call fcn.00406a20
mov edx, dword [ebp - 0x234]
cmp edx, 8
jb 0x40c51e
mov ecx, dword [ebp - 0x248]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c514
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
lea ecx, [ebp - 0x670]
call fcn.00408250
lea ecx, [ebp - 0x3a0]
call fcn.00406a20
mov edx, dword [ebp - 0x24c]
cmp edx, 8
jb 0x40c574
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c56a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
lea ecx, [ebp - 0x788]
call fcn.00408250
lea ecx, [ebp - 0x8a0]
call fcn.00408250
lea ecx, [ebp - 0x440]
call fcn.00406a20
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x40c5d1
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c5c7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c601
push edx
push ecx
call fcn.004bda5c
add esp, 8
mov al, byte [ebp - 0x8a1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004bda16
mov esp, ebp
pop ebp
ret
call fcn.004c59a2
call fcn.004c59a2
call fcn.004c59a2
call fcn.004c59a2
int3