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

Disassembly:
push 0x494
mov eax, 0x565077
call fcn.0053cd89
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.00437969
push eax
lea ecx, [ebp - 0x484]
call fcn.00402738
mov byte [ebp - 4], 1
call fcn.00437969
push eax
lea ecx, [ebp - 0x47c]
call fcn.00402738
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0xc]
cmp dword [eax - 0xc], edi
je 0x435fdf
push edi
push 0x59d6a4
lea ecx, [ebp + 0xc]
call fcn.0040edb7
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.0040a56d
push eax
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 3
call fcn.004024a4
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402760
sub esi, ebx
dec esi
push esi
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp + 0xc]
call fcn.0040ee16
push eax
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 4
call fcn.004024a4
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402760
mov esi, dword [ebp - 0x484]
cmp dword [esi - 0xc], edi
je 0x435dab
mov eax, dword [ebp - 0x47c]
cmp dword [eax - 0xc], edi
je 0x435dab
call fcn.00437969
push eax
lea ecx, [ebp - 0x474]
call fcn.00402738
mov byte [ebp - 4], 5
call fcn.00437969
push eax
lea ecx, [ebp - 0x480]
call fcn.00402738
push edi
push 0x599b40
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 6
call fcn.0040edb7
mov esi, dword [esi - 0xc]
mov ebx, eax
push ebx
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp - 0x484]
call fcn.0040a56d
push eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 7
call fcn.004024a4
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402760
sub esi, ebx
dec esi
push esi
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp - 0x484]
call fcn.0040ee16
push eax
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 8
call fcn.004024a4
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x478]
add ecx, 0xfffffff0
call fcn.00402760
mov eax, dword [ebp - 0x474]
cmp dword [eax - 0xc], edi
je 0x435d8f
mov eax, dword [ebp - 0x480]
cmp dword [eax - 0xc], edi
je 0x435d8f
push eax
lea eax, [ebp - 0x420]
xor ecx, ecx
push 0x599680
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.00410a55
test eax, eax
jne 0x435b93
mov esi, SysStringLen
jmp 0x435be7
push str.HKEY_CLASSES_ROOT
lea ecx, [ebp - 0x474]
call fcn.00410a55
test eax, eax
jne 0x435bae
mov esi, SysReAllocString
jmp 0x435be7
push str.HKEY_CURRENT_CONFIG
lea ecx, [ebp - 0x474]
call fcn.00410a55
test eax, eax
jne 0x435bc9
mov esi, VariantCopy
jmp 0x435be7
push str.HKEY_CURRENT_USER
lea ecx, [ebp - 0x474]
call fcn.00410a55
mov esi, eax
neg esi
sbb esi, esi
neg esi
add esi, 0x80000001
call fcn.00437969
push eax
lea ecx, [ebp - 0x488]
call fcn.00402738
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 0x435d75
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 0x435d75
push 0x2f
mov ebx, str...CommonUtility.cpp
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x435c64
push 0x2f
jmp 0x435c74
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x435c7f
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x435c81
mov eax, ebx
push 1
push 0x3fd
push eax
lea esi, [ebp - 0x470]
call fcn.00404b3c
lea ecx, [ebp - 0x218]
push ecx
push str.Trace:_Open_Reg:__s
push edi
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.00404c1a
mov edi, eax
call fcn.0040cbfa
pop ecx
pop ecx
mov ecx, esi
mov byte [ebp - 4], 9
call fcn.00404ba8
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 0x435d75
lea eax, [ebp - 0x218]
push eax
push 0x599680
push dword [ebp - 0x490]
call fcn.0040a7d8
xor esi, esi
push 0x2f
inc esi
push ebx
mov dword [ebp - 0x48c], esi
call fcn.005385d0
add esp, 0x14
test eax, eax
je 0x435d19
push 0x2f
jmp 0x435d29
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x435d34
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x435d36
mov eax, ebx
push esi
push 0x408
push eax
lea esi, [ebp - 0x470]
call fcn.00404b3c
lea ecx, [ebp - 0x218]
push ecx
push str.Trace:_App_Found:__s
push 0
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.00404c1a
mov edi, eax
call fcn.0040cbfa
pop ecx
pop ecx
mov ecx, esi
mov byte [ebp - 4], 9
call fcn.00404ba8
push dword [ebp - 0x478]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x488]
add ecx, 0xfffffff0
call fcn.00402760
mov ecx, dword [ebp - 0x480]
add ecx, 0xfffffff0
call fcn.00402760
mov ecx, dword [ebp - 0x474]
add ecx, 0xfffffff0
jmp 0x435fda
mov eax, dword [ebp - 0x47c]
cmp dword [eax - 0xc], edi
je 0x435fdf
call fcn.00437969
push eax
lea ecx, [ebp - 0x474]
call fcn.00402738
mov byte [ebp - 4], 0xc
call fcn.00437969
push eax
lea ecx, [ebp - 0x480]
call fcn.00402738
push edi
push 0x599b40
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 0xd
call fcn.0040edb7
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.0040a56d
push eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0xe
call fcn.004024a4
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x488]
add ecx, 0xfffffff0
call fcn.00402760
sub esi, ebx
dec esi
push esi
lea eax, [ebp - 0x488]
push eax
lea ecx, [ebp - 0x47c]
call fcn.0040ee16
push eax
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 0xf
call fcn.004024a4
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x488]
add ecx, 0xfffffff0
call fcn.00402760
mov esi, dword [ebp - 0x474]
cmp dword [esi - 0xc], edi
je 0x435fc9
mov eax, dword [ebp - 0x480]
cmp dword [eax - 0xc], edi
je 0x435fc9
push eax
mov ebx, 0x599680
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.00410a55
test eax, eax
jne 0x435ec6
mov eax, SysStringLen
jmp 0x435f17
push str.HKEY_CLASSES_ROOT
lea ecx, [ebp - 0x474]
call fcn.00410a55
test eax, eax
jne 0x435ee1
mov eax, SysReAllocString
jmp 0x435f17
push str.HKEY_CURRENT_CONFIG
lea ecx, [ebp - 0x474]
call fcn.00410a55
test eax, eax
jne 0x435efc
mov eax, VariantCopy
jmp 0x435f17
push str.HKEY_CURRENT_USER
lea ecx, [ebp - 0x474]
call fcn.00410a55
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.004204ba
test eax, eax
jne 0x435fb3
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x218]
push eax
push 0x599080
lea ecx, [ebp - 0x4a0]
mov dword [ebp - 0x478], 0x104
call fcn.004203f4
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 0x435fb3
lea eax, [ebp - 0x218]
push eax
push ebx
push dword [ebp - 0x490]
call fcn.0040a7d8
add esp, 0xc
mov dword [ebp - 0x48c], 1
lea ecx, [ebp - 0x4a0]
call fcn.00420509
lea ecx, [ebp - 0x4a0]
call fcn.00420509
mov ecx, dword [ebp - 0x480]
add ecx, 0xfffffff0
call fcn.00402760
lea ecx, [esi - 0x10]
call fcn.00402760
mov ecx, dword [ebp - 0x47c]
add ecx, 0xfffffff0
call fcn.00402760
mov ecx, dword [ebp - 0x484]
add ecx, 0xfffffff0
call fcn.00402760
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.00402760
mov eax, dword [ebp - 0x48c]
call fcn.0053ce0c
ret