Function at 0x4087c0
Capabilities:
Persist via app paths registry key
Persist via default file association registry key
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, ecx
mov edx, 0x42b5cc
mov ecx, dword [0x4305fc]
mov bl, 1
push edi
mov dword [ebp - 4], esi
call fcn.0040cae0
mov edi, eax
mov dword [ebp - 0xc], edi
cmp esi, 0x80000002
jne 0x40882e
test edi, edi
je 0x408807
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4087f6
sub ecx, edx
sar ecx, 1
jmp 0x408809
xor ecx, ecx
lea eax, [ecx*2 + 2]
push eax
push edi
push 1
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionApp_PathsRepairPartner.exe
push 0x80000002
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
test eax, eax
sete bl
and bl, 1
push 0
mov edx, 0x42b6fc
mov ecx, edi
call fcn.0040d450
add esp, 4
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x408862
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 8], ecx
mov edi, edi
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x408850
sub edx, dword [ebp - 8]
sar edx, 1
jmp 0x408864
xor edx, edx
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.SoftwareClassesApplicationsRepairPartner.exeDefaultIcon
push esi
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
test eax, eax
push edi
sete al
push str.__s_____1____
and bl, al
call fcn.0040d750
add esp, 8
mov dword [ebp - 0x18], eax
test eax, eax
je 0x4088b3
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 8], ecx
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x4088a1
sub edx, dword [ebp - 8]
sar edx, 1
jmp 0x4088b5
xor edx, edx
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.SoftwareClassesApplicationsRepairPartner.exeShellOpenCommand
push esi
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
test eax, eax
push edi
sete al
push str.__s___print_to_default____1_
and bl, al
call fcn.0040d750
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x408904
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 8], ecx
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x4088f2
sub edx, dword [ebp - 8]
sar edx, 1
jmp 0x408906
xor edx, edx
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.SoftwareClassesApplicationsRepairPartner.exeShellPrintCommand
push esi
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
test eax, eax
push edi
sete al
push str.__s___print_to____2_____1_
and bl, al
call fcn.0040d750
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
je 0x408955
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 8], ecx
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x408943
sub edx, dword [ebp - 8]
sar edx, 1
jmp 0x408957
xor edx, edx
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.SoftwareClassesApplicationsRepairPartner.exeShellPrintToCommand
push esi
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
test eax, eax
sete al
and bl, al
xor eax, eax
cmp eax, str..pdf
je 0x4089f9
mov eax, 0x427ce8
xor edi, edi
jmp 0x408990
mov edx, dword [eax]
mov ecx, str.SoftwareClasses_
push str.OpenWithListRepairPartner.exe
call fcn.0040d450
add esp, 4
mov esi, eax
lea eax, [ebp - 8]
push 0
push eax
push 0
push 0x20006
push 0
push 0
push 0
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x4089cb
xor al, al
jmp 0x4089d6
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
push esi
and bl, al
call fcn.004130f2
inc edi
add esp, 4
cmp dword [edi*4 + 0x427ce8], 0
lea eax, [edi*4 + 0x427ce8]
jne 0x408990
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
push 0x20
push str.application_pdf
push 1
push str.Content_Type
push str.SoftwareClasses.pdf
push esi
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push 0xa
push str..pdf
push 1
push str.Extension
test eax, eax
push str.SoftwareClassesMIMEDatabaseContent_Type_application_pdf
sete al
push esi
and bl, al
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push dword [ebp - 0x10]
mov esi, eax
call fcn.004130f2
push dword [ebp - 0x14]
call fcn.004130f2
push dword [ebp - 0x18]
call fcn.004130f2
push dword [ebp - 0x1c]
call fcn.004130f2
push edi
call fcn.004130f2
add esp, 0x14
test esi, esi
sete al
and al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret