Function at 0x42ddb0
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6223e4
mov eax, dword fs:[0]
push eax
sub esp, 0x320
mov eax, dword [0x690a1c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x208
lea eax, [ebp - 0x218]
mov dword [ebp - 0x250], 0
push 0
push eax
mov dword [ebp - 0x274], 1
call fcn.005e3920
add esp, 0xc
mov dword [ebp - 0x270], 0x104
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x274]
push eax
push 0x637354
push str.SOFTWAREValveSteam
push SysReAllocStringLen
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
cmp word [ebp - 0x218], 0
je 0x42e1d1
call fcn.00407410
mov ecx, eax
test ecx, ecx
je 0x42e71e
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x218]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x24c]
call fcn.004090c0
test al, al
jne 0x42deb2
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42de90
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x24c]
call fcn.0040b220
push str._steamappscommonwallpaper_engineconfig.json
lea eax, [ebp - 0x24c]
mov dword [ebp - 4], 1
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.0041ab30
add esp, 0xc
mov edx, dword [ebp - 0x24c]
or edi, 0xffffffff
mov byte [ebp - 4], 3
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42def8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x632d78
push 0x6373f8
lea ecx, [ebp - 0x258]
call fcn.0040a6f0
push dword [ebp - 0x258]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42e1af
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
push dword [ebp - 0x258]
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 4
call fcn.0042a850
mov dword [ebp - 0x250], eax
mov esi, dword [eax]
mov byte [ebp - 4], 5
cmp dword [esi - 4], 1
jle 0x42df75
push dword [esi - 0xc]
mov ecx, eax
call fcn.00420da0
mov esi, dword [ebp - 0x250]
mov esi, dword [esi]
mov dword [ebp - 0x32c], 0x63732c
push 0
lea eax, [ebp - 0x31c]
mov byte [ebp - 4], 6
xorps xmm0, xmm0
mov dword [ebp - 0x250], 1
push eax
lea ecx, [ebp - 0x2bc]
mov dword [ebp - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov dword [ebp - 0x2c0], 0x58
movlpd qword [ebp - 0x324], xmm0
call fcn.0043c340
mov eax, dword [ebp - 0x32c]
push 0
mov dword [ebp - 4], 8
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x32c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x330], eax
lea ecx, [ebp - 0x31c]
call fcn.0042a9e0
push 0x40
push 1
push esi
lea ecx, [ebp - 0x31c]
mov byte [ebp - 4], 9
call fcn.0043c3e0
test eax, eax
jne 0x42e04f
mov eax, dword [ebp - 0x32c]
mov ecx, dword [eax + 4]
xor eax, eax
cmp dword [ebp + ecx - 0x2f4], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ebp + ecx - 0x320]
and eax, 0x17
mov dword [ebp + ecx - 0x320], eax
mov ecx, dword [ebp + ecx - 0x31c]
and ecx, eax
jne 0x42e728
mov edx, dword [ebp - 0x254]
mov eax, edi
mov byte [ebp - 4], 0xb
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42e070
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x32c]
lea ecx, [ebp - 0x230]
mov byte [ebp - 0x25b], 0
mov word [ebp - 0x268], 1
mov dword [ebp - 0x220], 0
mov eax, dword [eax + 4]
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
mov eax, dword [ebp + eax - 0x2f4]
test eax, eax
sete byte [ebp - 0x25c]
push dword [ebp - 0x25c]
push dword [ebp - 0x268]
push 0
push dword [ebp - 0x25c]
push eax
call fcn.0042a2b0
lea ecx, [ebp - 0x248]
call fcn.00406cd0
movups xmm0, xmmword [ebp - 0x230]
lea ecx, [ebp - 0x230]
mov byte [ebp - 0x230], 0
movups xmmword [ebp - 0x248], xmm0
movq xmm0, qword [ebp - 0x220]
movq qword [ebp - 0x238], xmm0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
call fcn.00406cd0
lea ecx, [ebp - 0x32c]
call fcn.0042c4b0
cmp dword [ebp - 0x234], 0x10
lea eax, [ebp - 0x248]
cmovae eax, dword [ebp - 0x248]
push eax
call fcn.00469310
mov esi, eax
add esp, 4
mov dword [ebp - 0x268], esi
mov byte [ebp - 4], 0xc
test esi, esi
je 0x42e1a4
mov edi, dword [esi + 8]
test edi, edi
je 0x42e198
cmp dword [edi + 0x10], 0
jne 0x42e192
push str.general
push edi
call fcn.00469250
add esp, 8
test eax, eax
je 0x42e198
push str.user
push eax
call fcn.00469250
add esp, 8
mov dword [ebp - 0x25c], eax
test eax, eax
jne 0x42e1ec
mov edi, dword [edi]
test edi, edi
jne 0x42e162
or edi, 0xffffffff
push esi
call fcn.004691a0
add esp, 4
lea ecx, [ebp - 0x248]
call fcn.00406cd0
mov edx, dword [ebp - 0x258]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x42e1d1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
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.004fa103
mov esp, ebp
pop ebp
ret
push str.apprules
push eax
call fcn.00469250
add esp, 8
mov dword [ebp - 0x250], eax
test eax, eax
je 0x42e479
cmp dword [eax + 0xc], 2
jne 0x42e215
mov dword [eax + 0xc], 5
push eax
call fcn.00469230
add esp, 4
mov dword [ebp - 0x25c], eax
xor edi, edi
test eax, eax
jle 0x42e365
nop
push edi
push dword [ebp - 0x250]
call fcn.00469210
add esp, 8
mov dword [ebp - 0x264], eax
test eax, eax
je 0x42e358
call fcn.00407410
mov ecx, eax
test ecx, ecx
je 0x42e71e
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x24c], eax
push 0x632c30
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 0xd
call fcn.004090c0
test al, al
jne 0x42e294
push 0x632c30
lea ecx, [ebp - 0x24c]
call fcn.0042bed0
push 0xa
push str.executable
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.004081d0
push 0xfde9
lea eax, [ebp - 0x24c]
mov byte [ebp - 4], 0xf
push eax
lea eax, [ebp - 0x230]
push eax
push dword [ebp - 0x264]
lea eax, [ebp - 0x254]
push eax
call fcn.0046a4e0
add esp, 0x14
lea ecx, [ebp - 0x230]
call fcn.00406cd0
mov edx, dword [ebp - 0x24c]
or eax, 0xffffffff
mov byte [ebp - 4], 0xc
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42e31e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x254]
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x42e34d
js 0x42e34d
push str.jiandesk
push eax
call fcn.005e3a7a
add esp, 8
test eax, eax
je 0x42e34d
sub eax, dword [ebp - 0x254]
sar eax, 1
jns 0x42e3d5
lea ecx, [ebp - 0x254]
call fcn.00406c60
inc edi
cmp edi, dword [ebp - 0x25c]
jl 0x42e230
call fcn.004690f0
mov edi, eax
test edi, edi
je 0x42e3e5
push 0x637424
call fcn.00469120
push eax
push 0x637428
push edi
call fcn.00469010
push str.fullscreen
call fcn.00469120
push eax
push str.condition
push edi
call fcn.00469010
push 0x637448
call fcn.00469120
push eax
push str.executable
push edi
call fcn.00469010
call fcn.004690c0
push eax
push 0x632eb0
push edi
call fcn.00469010
push edi
mov edi, dword [ebp - 0x250]
push edi
call fcn.00468fe0
add esp, 0x44
jmp 0x42e3eb
lea ecx, [ebp - 0x254]
call fcn.00406c60
jmp 0x42e198
mov edi, dword [ebp - 0x250]
call fcn.004690f0
mov dword [ebp - 0x24c], eax
test eax, eax
je 0x42e57f
push 0x637424
call fcn.00469120
push eax
push 0x637428
push dword [ebp - 0x24c]
call fcn.00469010
push str.fullscreen
call fcn.00469120
push eax
push str.condition
push dword [ebp - 0x24c]
call fcn.00469010
push str.DeskAide64.exe
call fcn.00469120
push eax
push str.executable
push dword [ebp - 0x24c]
call fcn.00469010
call fcn.004690c0
push eax
push 0x632eb0
push dword [ebp - 0x24c]
call fcn.00469010
push dword [ebp - 0x24c]
push edi
call fcn.00468fe0
add esp, 0x44
jmp 0x42e57f
call fcn.00469090
mov dword [ebp - 0x250], eax
test eax, eax
je 0x42e198
call fcn.004690f0
mov edi, eax
test edi, edi
je 0x42e4f9
push 0x637424
call fcn.00469120
push eax
push 0x637428
push edi
call fcn.00469010
push str.fullscreen
call fcn.00469120
push eax
push str.condition
push edi
call fcn.00469010
push 0x637448
call fcn.00469120
push eax
push str.executable
push edi
call fcn.00469010
call fcn.004690c0
push eax
push 0x632eb0
push edi
call fcn.00469010
push edi
push dword [ebp - 0x250]
call fcn.00468fe0
add esp, 0x44
call fcn.004690f0
mov edi, eax
test edi, edi
je 0x42e566
push 0x637424
call fcn.00469120
push eax
push 0x637428
push edi
call fcn.00469010
push str.fullscreen
call fcn.00469120
push eax
push str.condition
push edi
call fcn.00469010
push str.DeskAide64.exe
call fcn.00469120
push eax
push str.executable
push edi
call fcn.00469010
call fcn.004690c0
push eax
push 0x632eb0
push edi
call fcn.00469010
push edi
push dword [ebp - 0x250]
call fcn.00468fe0
add esp, 0x44
push dword [ebp - 0x250]
push str.apprules
push dword [ebp - 0x25c]
call fcn.00469010
add esp, 0xc
push esi
call fcn.00469370
add esp, 4
mov dword [ebp - 0x254], eax
test eax, eax
je 0x42e198
push dword [ebp - 0x258]
lea ecx, [ebp - 0x264]
call fcn.0042a850
mov dword [ebp - 0x25c], eax
mov edi, dword [eax]
mov byte [ebp - 4], 0x10
cmp dword [edi - 4], 1
jle 0x42e5cb
push dword [edi - 0xc]
mov ecx, eax
call fcn.00420da0
mov edi, dword [ebp - 0x25c]
mov edi, dword [edi]
mov dword [ebp - 0x324], 0x63734c
push 0
lea eax, [ebp - 0x320]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x2bc]
mov dword [ebp - 0x250], 5
mov dword [ebp - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov dword [ebp - 0x2c0], 0x60
call fcn.0043c340
mov eax, dword [ebp - 0x324]
push 0
mov dword [ebp - 4], 0x13
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x324]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x328], eax
lea ecx, [ebp - 0x320]
call fcn.0042a9e0
push 0x40
push 2
push edi
lea ecx, [ebp - 0x320]
mov byte [ebp - 4], 0x14
call fcn.0043c3e0
test eax, eax
jne 0x42e6ca
mov eax, dword [ebp - 0x324]
mov ecx, dword [eax + 4]
xor eax, eax
cmp dword [ebp + ecx - 0x2ec], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ebp + ecx - 0x318]
and eax, 0x17
mov dword [ebp + ecx - 0x318], eax
mov ecx, dword [ebp + ecx - 0x314]
and ecx, eax
je 0x42e6ca
test cl, 4
je 0x42e6ad
mov esi, str.ios_base::badbit_set
lea eax, [ebp - 0x260]
push 1
jmp 0x42e74c
test cl, 2
mov eax, str.ios_base::eofbit_set
mov esi, str.ios_base::failbit_set
cmove esi, eax
lea eax, [ebp - 0x260]
push 1
jmp 0x42e74c
mov edx, dword [ebp - 0x264]
or edi, 0xffffffff
mov byte [ebp - 4], 0x16
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42e6ee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x254]
lea eax, [ebp - 0x324]
push eax
call fcn.00429ca0
push dword [ebp - 0x254]
call fcn.005ebe53
add esp, 0xc
lea ecx, [ebp - 0x324]
call fcn.0042c540
jmp 0x42e19b
push 0x80004005
call fcn.00407120
test cl, 4
je 0x42e734
mov esi, str.ios_base::badbit_set
jmp 0x42e744
test cl, 2
mov esi, str.ios_base::failbit_set
mov eax, str.ios_base::eofbit_set
cmove esi, eax
push 1
lea eax, [ebp - 0x26c]
push eax
call fcn.00419a50
add esp, 8
lea ecx, [ebp - 0x22c]
push eax
push esi
call fcn.0040ec00
push 0x67ca60
lea eax, [ebp - 0x22c]
push eax
call fcn.005e2dac
int3