Function at 0x40c8d0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x640
mov eax, dword [0x5a40e0]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
xorps xmm0, xmm0
push eax
mov word [ebp - 0x10], ax
lea eax, [ebp - 0x10]
push eax
movq qword [ebp - 0xe], xmm0
call fcn.00409000
add esp, 8
test eax, eax
jne 0x40c929
xor ecx, ecx
jmp 0x40c910
movzx eax, word [ecx + 0x554684]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40c910
jmp 0x40cd44
cmp eax, 0xffffffff
jne 0x40cd44
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
movzx ecx, ax
mov eax, ecx
and eax, 0x3ff
dec eax
cmp eax, 0x26
ja case.0x40c94c.3
jmp dword [eax*4 + 0x40cf0c]
xor ecx, ecx
jmp 0x40c960
movzx eax, word [ecx + 0x55468c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40c960
jmp 0x40cd44
xor ecx, ecx
jmp 0x40c980
movzx eax, word [ecx + 0x554694]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40c980
jmp 0x40cd44
xor ecx, ecx
jmp 0x40c9a0
movzx eax, word [ecx + 0x55469c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40c9a0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40c9c0
movzx eax, word [ecx + 0x5546a4]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40c9c0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40c9e0
movzx eax, word [ecx + 0x5546ac]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40c9e0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40ca00
movzx eax, word [ecx + 0x5546b4]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40ca00
jmp 0x40cd44
xor ecx, ecx
jmp 0x40ca20
movzx eax, word [ecx + 0x5546bc]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40ca20
jmp 0x40cd44
xor ecx, ecx
jmp 0x40ca40
movzx eax, word [ecx + 0x5546c4]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40ca40
jmp 0x40cd44
and ecx, 0xfc00
cmp ecx, 0x800
jne 0x40ca89
xor ecx, ecx
lea esp, [esp]
movzx eax, word [ecx + 0x5546cc]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40ca70
jmp 0x40cd44
xor ecx, ecx
jmp 0x40ca90
movzx eax, word [ecx + 0x5546d4]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40ca90
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cab0
movzx eax, word [ecx + 0x5546dc]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cab0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cad0
movzx eax, word [ecx + 0x5546e4]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cad0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40caf0
movzx eax, word [ecx + 0x5546ec]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40caf0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cb10
movzx eax, word [ecx + 0x5546f4]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cb10
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cb30
movzx eax, word [ecx + 0x5546fc]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cb30
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cb50
movzx eax, word [ecx + 0x554704]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cb50
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cb70
movzx eax, word [ecx + 0x55470c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cb70
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cb90
movzx eax, word [ecx + 0x554714]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cb90
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cbb0
movzx eax, word [ecx + 0x55471c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cbb0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cbd0
movzx eax, word [ecx + 0x554724]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cbd0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cbf0
movzx eax, word [ecx + 0x55472c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cbf0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cc10
movzx eax, word [ecx + 0x554734]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cc10
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cc30
movzx eax, word [ecx + 0x55473c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cc30
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cc50
movzx eax, word [ecx + 0x554744]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cc50
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cc70
movzx eax, word [ecx + 0x55474c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cc70
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cc90
movzx eax, word [ecx + 0x554754]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cc90
jmp 0x40cd44
xor ecx, ecx
jmp 0x40ccb0
movzx eax, word [ecx + 0x55475c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40ccb0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40ccd0
movzx eax, word [ecx + 0x554764]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40ccd0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40ccf0
movzx eax, word [ecx + 0x55476c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40ccf0
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cd10
movzx eax, word [ecx + 0x554774]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cd10
jmp 0x40cd44
xor ecx, ecx
jmp 0x40cd30
movzx eax, word [ecx + 0x55477c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x12], ax
test ax, ax
jne 0x40cd30
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x62c]
push eax
push 0x20019
push 0
push 0x554790
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x40cefd
lea eax, [ebp - 0x63c]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x62c]
call esi
test eax, eax
jne 0x40cef1
push eax
lea eax, [ebp - 0x640]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push str.SoftwareAdobeAcrobat_DistillerAdobePDFSettingsDisplayName
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x40cef1
push ebx
push 0x206
xor esi, esi
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push esi
push eax
call fcn.00525b40
add esp, 0xc
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
lea eax, [ebp - 0x634]
mov dword [ebp - 0x630], 0x208
mov dword [ebp - 0x634], 0x208
mov dword [ebp - 0x638], esi
push eax
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x638]
push eax
push esi
lea eax, [ebp - 0x630]
push eax
lea eax, [ebp - 0x218]
push eax
push esi
push dword [ebp - 0x63c]
call ebx
test eax, eax
jne 0x40cee4
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ce40
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x628]
push eax
push 1
push 0
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x640]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor eax, eax
inc esi
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.00525b40
add esp, 0xc
mov dword [ebp - 0x630], 0x208
lea eax, [ebp - 0x634]
mov dword [ebp - 0x634], 0x208
mov dword [ebp - 0x638], 0
push eax
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x638]
push eax
push 0
lea eax, [ebp - 0x630]
push eax
lea eax, [ebp - 0x218]
push eax
push esi
push dword [ebp - 0x63c]
call ebx
test eax, eax
je 0x40ce30
push dword [ebp - 0x640]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ebx
push dword [ebp - 0x62c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00525b2c
mov esp, ebp
pop ebp
ret