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

Disassembly:
push 0x494
mov eax, 0x565d69
call fcn.0053da79
mov eax, dword [ebp + 8]
mov dword [ebp - 0x490], eax
xor edi, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x48c], edi
call fcn.00438647
push eax
lea ecx, [ebp - 0x484]
call fcn.0042a80d
mov byte [ebp - 4], 1
call fcn.00438647
push eax
lea ecx, [ebp - 0x47c]
call fcn.0042a80d
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0xc]
cmp dword [eax - 0xc], edi
je 0x436cbd
push edi
push 0x59d6ac
lea ecx, [ebp + 0xc]
call fcn.0040f067
mov ebx, eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax - 0xc]
push ebx
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp + 0xc]
call fcn.0040a558
push eax
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 3
call fcn.0040248f
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402722
sub esi, ebx
dec esi
push esi
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp + 0xc]
call fcn.0040f0c6
push eax
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 4
call fcn.0040248f
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402722
mov esi, dword [ebp - 0x484]
cmp dword [esi - 0xc], edi
je 0x436a89
mov eax, dword [ebp - 0x47c]
cmp dword [eax - 0xc], edi
je 0x436a89
call fcn.00438647
push eax
lea ecx, [ebp - 0x474]
call fcn.0042a80d
mov byte [ebp - 4], 5
call fcn.00438647
push eax
lea ecx, [ebp - 0x480]
call fcn.0042a80d
push edi
push 0x599b60
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 6
call fcn.0040f067
mov esi, dword [esi - 0xc]
mov ebx, eax
push ebx
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp - 0x484]
call fcn.0040a558
push eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 7
call fcn.0040248f
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402722
sub esi, ebx
dec esi
push esi
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp - 0x484]
call fcn.0040f0c6
push eax
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 8
call fcn.0040248f
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402722
mov eax, dword [ebp - 0x474]
cmp dword [eax - 0xc], edi
je 0x436a6d
mov eax, dword [ebp - 0x480]
cmp dword [eax - 0xc], edi
je 0x436a6d
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.00410e1f
test eax, eax
jne 0x436871
mov esi, SysStringLen
jmp 0x4368c5
push str.HKEY_CLASSES_ROOT
lea ecx, [ebp - 0x474]
call fcn.00410e1f
test eax, eax
jne 0x43688c
mov esi, SysReAllocString
jmp 0x4368c5
push str.HKEY_CURRENT_CONFIG
lea ecx, [ebp - 0x474]
call fcn.00410e1f
test eax, eax
jne 0x4368a7
mov esi, VariantCopy
jmp 0x4368c5
push str.HKEY_CURRENT_USER
lea ecx, [ebp - 0x474]
call fcn.00410e1f
mov esi, eax
neg esi
sbb esi, esi
neg esi
add esi, 0x80000001
call fcn.00438647
push eax
lea ecx, [ebp - 0x488]
call fcn.0042a80d
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 0x436a53
lea eax, [ebp - 0x494]
push eax
lea eax, [ebp - 0x218]
push eax
push edi
push edi
push dword [ebp - 0x47c]
mov dword [ebp - 0x494], 0x208
push dword [ebp - 0x478]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x436a53
push 0x2f
mov ebx, str...CommonUtility.cpp
push ebx
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x436942
push 0x2f
jmp 0x436952
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x43695d
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x43695f
mov eax, ebx
push 1
push 0x3fd
push eax
lea esi, [ebp - 0x470]
call fcn.00404b01
lea ecx, [ebp - 0x218]
push ecx
push str.Trace:_Open_Reg:__s
push edi
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.00404bdf
mov edi, eax
call fcn.0040cbe5
pop ecx
pop ecx
mov ecx, esi
mov byte [ebp - 4], 9
call fcn.00404b6d
mov ecx, dword [ebp - 0x494]
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 0x436a53
lea eax, [ebp - 0x218]
push eax
push 0x5996a0
push dword [ebp - 0x490]
call fcn.0040a7c3
xor esi, esi
push 0x2f
inc esi
push ebx
mov dword [ebp - 0x48c], esi
call fcn.005392c0
add esp, 0x14
test eax, eax
je 0x4369f7
push 0x2f
jmp 0x436a07
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x436a12
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x436a14
mov eax, ebx
push esi
push 0x408
push eax
lea esi, [ebp - 0x470]
call fcn.00404b01
lea ecx, [ebp - 0x218]
push ecx
push str.Trace:_App_Found:__s
push 0
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.00404bdf
mov edi, eax
call fcn.0040cbe5
pop ecx
pop ecx
mov ecx, esi
mov byte [ebp - 4], 9
call fcn.00404b6d
push dword [ebp - 0x478]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x488]
add ecx, 0xfffffff0
call fcn.00402722
mov ecx, dword [ebp - 0x480]
add ecx, 0xfffffff0
call fcn.00402722
mov ecx, dword [ebp - 0x474]
add ecx, 0xfffffff0
jmp 0x436cb8
mov eax, dword [ebp - 0x47c]
cmp dword [eax - 0xc], edi
je 0x436cbd
call fcn.00438647
push eax
lea ecx, [ebp - 0x474]
call fcn.0042a80d
mov byte [ebp - 4], 0xc
call fcn.00438647
push eax
lea ecx, [ebp - 0x480]
call fcn.0042a80d
push edi
push 0x599b60
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 0xd
call fcn.0040f067
mov ebx, eax
mov eax, dword [ebp - 0x47c]
mov esi, dword [eax - 0xc]
push ebx
lea eax, [ebp - 0x488]
push eax
lea ecx, [ebp - 0x47c]
call fcn.0040a558
push eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0xe
call fcn.0040248f
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x488]
add ecx, 0xfffffff0
call fcn.00402722
sub esi, ebx
dec esi
push esi
lea eax, [ebp - 0x488]
push eax
lea ecx, [ebp - 0x47c]
call fcn.0040f0c6
push eax
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 0xf
call fcn.0040248f
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x488]
add ecx, 0xfffffff0
call fcn.00402722
mov esi, dword [ebp - 0x474]
cmp dword [esi - 0xc], edi
je 0x436ca7
mov eax, dword [ebp - 0x480]
cmp dword [eax - 0xc], edi
je 0x436ca7
push eax
mov ebx, 0x5996a0
lea eax, [ebp - 0x420]
xor ecx, ecx
push ebx
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.00410e1f
test eax, eax
jne 0x436ba4
mov eax, SysStringLen
jmp 0x436bf5
push str.HKEY_CLASSES_ROOT
lea ecx, [ebp - 0x474]
call fcn.00410e1f
test eax, eax
jne 0x436bbf
mov eax, SysReAllocString
jmp 0x436bf5
push str.HKEY_CURRENT_CONFIG
lea ecx, [ebp - 0x474]
call fcn.00410e1f
test eax, eax
jne 0x436bda
mov eax, VariantCopy
jmp 0x436bf5
push str.HKEY_CURRENT_USER
lea ecx, [ebp - 0x474]
call fcn.00410e1f
neg eax
sbb eax, eax
neg eax
add eax, 0x80000001
mov dword [ebp - 0x4a0], edi
mov dword [ebp - 0x49c], edi
mov dword [ebp - 0x498], edi
push 0x20019
lea ecx, [ebp - 0x420]
push ecx
push eax
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 0x10
call fcn.00420c69
test eax, eax
jne 0x436c91
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x218]
push eax
push 0x5990a0
lea ecx, [ebp - 0x4a0]
mov dword [ebp - 0x478], 0x104
call fcn.00420ba3
mov ecx, dword [ebp - 0x478]
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 0x436c91
lea eax, [ebp - 0x218]
push eax
push ebx
push dword [ebp - 0x490]
call fcn.0040a7c3
add esp, 0xc
mov dword [ebp - 0x48c], 1
lea ecx, [ebp - 0x4a0]
call fcn.00420cb8
lea ecx, [ebp - 0x4a0]
call fcn.00420cb8
mov ecx, dword [ebp - 0x480]
add ecx, 0xfffffff0
call fcn.00402722
lea ecx, [esi - 0x10]
call fcn.00402722
mov ecx, dword [ebp - 0x47c]
add ecx, 0xfffffff0
call fcn.00402722
mov ecx, dword [ebp - 0x484]
add ecx, 0xfffffff0
call fcn.00402722
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.00402722
mov eax, dword [ebp - 0x48c]
call fcn.0053dafc
ret