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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x258
mov eax, dword [0x101203c]
push ebx
push esi
xor ebx, ebx
inc ebx
push ebx
xor esi, esi
push 0x1005c38
mov dword [ebp - 4], eax
mov word [ebp - 0x14], 4
mov word [ebp - 0x12], 0x48
mov word [ebp - 0x10], 0x83a
mov word [ebp - 0xe], si
mov word [ebp - 0xc], 4
mov word [ebp - 0xa], 0x48
mov word [ebp - 8], 0xc26
mov word [ebp - 6], si
mov dword [ebp - 0x230], ebx
call fcn.0100cbb8
mov eax, dword [0x1016c8c]
dec eax
jne 0x100b1ca
test byte [0x1016c7c], 2
je 0x100b1ca
lea eax, [ebp - 0x24]
push eax
push esi
call fcn.0100c5bb
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0100c33b
cmp eax, esi
mov dword [ebp - 0x24c], eax
je 0x100ae55
mov dword [ebp - 0x248], ebx
jmp 0x100ae68
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0100c33b
mov dword [ebp - 0x248], eax
push edi
push esi
mov edi, 0x104
push edi
lea eax, [ebp - 0x128]
push eax
push 0x10057c4
call fcn.01006aea
test eax, eax
je 0x100b0c8
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x100b0c8
push ebx
push 0x1005c24
call fcn.0100cbb8
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x128]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov ebx, eax
cmp ebx, esi
je 0x100b0c5
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp eax, esi
mov dword [ebp - 0x240], eax
je 0x100b0c5
push eax
push ebx
push esi
lea eax, [ebp - 0x128]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x100b0ad
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x250]
push eax
push 0x1005c08
push dword [ebp - 0x240]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x100b0ad
push 4
pop ebx
cmp dword [ebp - 0x244], ebx
jb 0x100b0ad
mov eax, dword [ebp - 0x250]
movzx ecx, word [eax + 2]
movzx eax, word [eax]
push ecx
push eax
push 0x1005be0
lea eax, [ebp - 0x22c]
push edi
push eax
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x14
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x254]
push eax
lea eax, [ebp - 0x22c]
push eax
push dword [ebp - 0x240]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x100b0ad
cmp dword [ebp - 0x244], esi
je 0x100b0ad
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x254]
call fcn.0100c560
cmp word [ebp - 0x1c], 8
jne 0x100afc0
cmp word [ebp - 0x1a], 5
jne 0x100b065
push esi
push 0x1005bdc
call fcn.0100cbb8
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x230], eax
jmp 0x100b070
cmp word [ebp - 0x1c], 9
jb 0x100b065
push esi
push 0x1005bd4
call fcn.0100cbb8
mov eax, dword [ebp - 0x24c]
cmp eax, esi
mov dword [ebp - 0x230], eax
jne 0x100b078
lea eax, [ebp - 0x234]
push eax
push 1
push esi
push dword [0x1016be0]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x100b085
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x238]
push eax
push esi
push esi
push 0x10055d0
push dword [ebp - 0x234]
mov dword [ebp - 0x238], esi
mov dword [ebp - 0x23c], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x100b057
cmp dword [ebp - 0x238], esi
jbe 0x100b057
push esi
push 0x1005bc0
call fcn.0100cbb8
mov dword [ebp - 0x230], 1
push dword [ebp - 0x234]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x100b070
push esi
push 0x1005bbc
call fcn.0100cbb8
cmp dword [ebp - 0x230], esi
je 0x100b085
push esi
push 0x1005ba8
call fcn.0100cbb8
jmp 0x100b0ad
push esi
push 0x1005b8c
call fcn.0100cbb8
push edi
push 0x30
push 0x4b6
push esi
call fcn.0100cc57
cmp eax, 6
jne 0x100b0ad
mov dword [ebp - 0x230], 1
push dword [ebp - 0x240]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [ebp - 0x230], esi
je 0x100b1c9
xor ebx, ebx
inc ebx
push esi
push edi
lea eax, [ebp - 0x128]
push eax
push 0x10057b8
call fcn.01006aea
test eax, eax
je 0x100b1c9
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x100b1c9
push ebx
push 0x1005b78
call fcn.0100cbb8
mov eax, dword [ebp - 0x24c]
cmp eax, esi
mov dword [ebp - 0x230], eax
jne 0x100b198
lea eax, [ebp - 0x234]
push eax
push ebx
push esi
push dword [0x1016be0]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x100b1a5
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x238]
push eax
push esi
push esi
push 0x10055dc
push dword [ebp - 0x234]
mov dword [ebp - 0x238], esi
mov dword [ebp - 0x23c], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x100b184
cmp dword [ebp - 0x238], esi
jbe 0x100b184
push esi
push 0x1005b60
call fcn.0100cbb8
mov dword [ebp - 0x230], ebx
push dword [ebp - 0x234]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x230], esi
je 0x100b1a5
push esi
push 0x1005b50
call fcn.0100cbb8
jmp 0x100b1c9
push esi
push 0x1005b38
call fcn.0100cbb8
push edi
push 0x30
push 0x410
push esi
call fcn.0100cc57
cmp eax, 6
jne 0x100b1c9
mov dword [ebp - 0x230], ebx
pop edi
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x230]
pop esi
pop ebx
call fcn.0100d038
leave
ret