Function at 0x435f91
Capabilities:
Check if file exists
Get file attributes
Query or enumerate registry value

Disassembly:
push 0x494
mov eax, 0x56568f
call fcn.0053d399
mov eax, dword [ebp + 8]
mov dword [ebp - 0x494], eax
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x48c], ebx
call fcn.00437f60
push eax
lea ecx, [ebp - 0x480]
call fcn.0042a551
mov byte [ebp - 4], 1
call fcn.00437f60
push eax
lea ecx, [ebp - 0x47c]
call fcn.0042a551
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0xc]
cmp dword [eax - 0xc], ebx
je 0x4365d4
push ebx
push 0x59d6f4
lea ecx, [ebp + 0xc]
call fcn.0040ef12
mov edi, eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax - 0xc]
push edi
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp + 0xc]
call fcn.0040a583
push eax
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 3
call fcn.0040248a
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402728
sub esi, edi
dec esi
push esi
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp + 0xc]
call fcn.0040ef71
push eax
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 4
call fcn.0040248a
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402728
mov esi, dword [ebp - 0x480]
cmp dword [esi - 0xc], ebx
je 0x4363a9
mov eax, dword [ebp - 0x47c]
cmp dword [eax - 0xc], ebx
je 0x4363a9
call fcn.00437f60
push eax
lea ecx, [ebp - 0x474]
call fcn.0042a551
mov byte [ebp - 4], 5
call fcn.00437f60
push eax
lea ecx, [ebp - 0x490]
call fcn.0042a551
push ebx
push 0x599b60
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 6
call fcn.0040ef12
mov esi, dword [esi - 0xc]
mov edi, eax
push edi
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp - 0x480]
call fcn.0040a583
push eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 7
call fcn.0040248a
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402728
sub esi, edi
dec esi
push esi
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp - 0x480]
call fcn.0040ef71
push eax
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 8
call fcn.0040248a
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402728
mov eax, dword [ebp - 0x474]
cmp dword [eax - 0xc], ebx
je 0x43638d
mov eax, dword [ebp - 0x490]
cmp dword [eax - 0xc], ebx
je 0x43638d
push eax
lea eax, [ebp - 0x420]
xor ecx, ecx
push 0x5996a0
push eax
mov word [ebp - 0x218], cx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push str.HKEY_USERS
lea ecx, [ebp - 0x474]
call fcn.00410c4d
test eax, eax
jne 0x43618a
mov esi, SysStringLen
jmp 0x4361de
push str.HKEY_CLASSES_ROOT
lea ecx, [ebp - 0x474]
call fcn.00410c4d
test eax, eax
jne 0x4361a5
mov esi, SysReAllocString
jmp 0x4361de
push str.HKEY_CURRENT_CONFIG
lea ecx, [ebp - 0x474]
call fcn.00410c4d
test eax, eax
jne 0x4361c0
mov esi, VariantCopy
jmp 0x4361de
push str.HKEY_CURRENT_USER
lea ecx, [ebp - 0x474]
call fcn.00410c4d
mov esi, eax
neg esi
sbb esi, esi
neg esi
add esi, 0x80000001
call fcn.00437f60
push eax
lea ecx, [ebp - 0x484]
call fcn.0042a551
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x420]
push eax
push esi
mov byte [ebp - 4], 9
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x436373
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
push ebx
push dword [ebp - 0x47c]
mov dword [ebp - 0x488], 0x208
push dword [ebp - 0x478]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x436373
push 0x2f
mov edi, str...CommonUtility.cpp
push edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x43625b
push 0x2f
jmp 0x43626b
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x436276
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x436278
mov eax, edi
push 1
push 0x3fd
push eax
lea esi, [ebp - 0x470]
call fcn.00404b6f
lea ecx, [ebp - 0x218]
push ecx
push str.Trace:_Open_Reg:__s
push ebx
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.00404c4d
mov esi, eax
call fcn.0040cc0a
pop ecx
pop ecx
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 9
call fcn.00404bdb
mov ecx, dword [ebp - 0x488]
xor eax, eax
mov word [ebp + ecx*2 - 0x218], ax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x436373
lea eax, [ebp - 0x218]
push eax
push 0x5996a0
push dword [ebp - 0x494]
call fcn.0040a7ee
xor esi, esi
push 0x2f
inc esi
push edi
mov dword [ebp - 0x48c], esi
call fcn.00538be0
add esp, 0x14
test eax, eax
je 0x436314
push 0x2f
jmp 0x436324
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x43632f
push 0x5c
push edi
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x436331
mov eax, edi
push esi
push 0x408
push eax
lea esi, [ebp - 0x470]
call fcn.00404b6f
lea ecx, [ebp - 0x218]
push ecx
push str.Trace:_App_Found:__s
push ebx
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.00404c4d
mov esi, eax
call fcn.0040cc0a
pop ecx
pop ecx
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 9
call fcn.00404bdb
push dword [ebp - 0x478]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x484]
add ecx, 0xfffffff0
call fcn.00402728
mov ecx, dword [ebp - 0x490]
add ecx, 0xfffffff0
call fcn.00402728
mov ecx, dword [ebp - 0x474]
add ecx, 0xfffffff0
jmp 0x4365cf
mov esi, dword [ebp - 0x47c]
cmp dword [esi - 0xc], ebx
je 0x4365d4
call fcn.00437f60
push eax
lea ecx, [ebp - 0x474]
call fcn.0042a551
mov byte [ebp - 4], 0xc
call fcn.00437f60
push eax
lea ecx, [ebp - 0x478]
call fcn.0042a551
push ebx
push 0x599b60
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 0xd
call fcn.0040ef12
mov esi, dword [esi - 0xc]
mov edi, eax
push edi
lea eax, [ebp - 0x484]
push eax
lea ecx, [ebp - 0x47c]
call fcn.0040a583
push eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0xe
call fcn.0040248a
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x484]
add ecx, 0xfffffff0
call fcn.00402728
sub esi, edi
dec esi
push esi
lea eax, [ebp - 0x484]
push eax
lea ecx, [ebp - 0x47c]
call fcn.0040ef71
push eax
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], 0xf
call fcn.0040248a
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x484]
add ecx, 0xfffffff0
call fcn.00402728
mov esi, dword [ebp - 0x474]
mov edi, dword [ebp - 0x478]
cmp dword [esi - 0xc], ebx
je 0x4365c4
cmp dword [edi - 0xc], ebx
je 0x4365c4
xor eax, eax
push edi
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x420]
push 0x5996a0
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push str.HKEY_USERS
lea ecx, [ebp - 0x474]
call fcn.00410c4d
test eax, eax
jne 0x4364bd
mov eax, SysStringLen
jmp 0x43650e
push str.HKEY_CLASSES_ROOT
lea ecx, [ebp - 0x474]
call fcn.00410c4d
test eax, eax
jne 0x4364d8
mov eax, SysReAllocString
jmp 0x43650e
push str.HKEY_CURRENT_CONFIG
lea ecx, [ebp - 0x474]
call fcn.00410c4d
test eax, eax
jne 0x4364f3
mov eax, VariantCopy
jmp 0x43650e
push str.HKEY_CURRENT_USER
lea ecx, [ebp - 0x474]
call fcn.00410c4d
neg eax
sbb eax, eax
neg eax
add eax, 0x80000001
mov dword [ebp - 0x4a0], ebx
mov dword [ebp - 0x49c], ebx
mov dword [ebp - 0x498], ebx
push 0x20019
lea ecx, [ebp - 0x420]
push ecx
push eax
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 0x10
call fcn.00420967
test eax, eax
jne 0x4365ae
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x218]
push eax
push 0x5990a0
lea ecx, [ebp - 0x4a0]
mov dword [ebp - 0x488], 0x104
call fcn.004208a1
mov ecx, dword [ebp - 0x488]
xor eax, eax
mov word [ebp + ecx*2 - 0x218], ax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4365ae
lea eax, [ebp - 0x218]
push eax
push 0x5996a0
push dword [ebp - 0x494]
call fcn.0040a7ee
add esp, 0xc
mov dword [ebp - 0x48c], 1
lea ecx, [ebp - 0x4a0]
call fcn.004209b6
lea ecx, [ebp - 0x4a0]
call fcn.004209b6
lea ecx, [edi - 0x10]
call fcn.00402728
lea ecx, [esi - 0x10]
call fcn.00402728
mov ecx, dword [ebp - 0x47c]
add ecx, 0xfffffff0
call fcn.00402728
mov ecx, dword [ebp - 0x480]
add ecx, 0xfffffff0
call fcn.00402728
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.00402728
mov eax, dword [ebp - 0x48c]
call fcn.0053d41c
ret