Function at 0x100addc
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 0x1005c5c
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.0100cbd8
mov eax, dword [0x1016c8c]
dec eax
jne 0x100b1ea
test byte [0x1016c7c], 2
je 0x100b1ea
lea eax, [ebp - 0x24]
push eax
push esi
call fcn.0100c5db
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0100c35b
cmp eax, esi
mov dword [ebp - 0x24c], eax
je 0x100ae75
mov dword [ebp - 0x248], ebx
jmp 0x100ae88
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0100c35b
mov dword [ebp - 0x248], eax
push edi
push esi
mov edi, 0x104
push edi
lea eax, [ebp - 0x128]
push eax
push 0x10057e8
call fcn.01006b0a
test eax, eax
je 0x100b0e8
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x100b0e8
push ebx
push 0x1005c48
call fcn.0100cbd8
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x128]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov ebx, eax
cmp ebx, esi
je 0x100b0e5
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp eax, esi
mov dword [ebp - 0x240], eax
je 0x100b0e5
push eax
push ebx
push esi
lea eax, [ebp - 0x128]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x100b0cd
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x250]
push eax
push 0x1005c2c
push dword [ebp - 0x240]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x100b0cd
push 4
pop ebx
cmp dword [ebp - 0x244], ebx
jb 0x100b0cd
mov eax, dword [ebp - 0x250]
movzx ecx, word [eax + 2]
movzx eax, word [eax]
push ecx
push eax
push 0x1005c04
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 0x100b0cd
cmp dword [ebp - 0x244], esi
je 0x100b0cd
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x254]
call fcn.0100c580
cmp word [ebp - 0x1c], 8
jne 0x100afe0
cmp word [ebp - 0x1a], 5
jne 0x100b085
push esi
push 0x1005c00
call fcn.0100cbd8
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x230], eax
jmp 0x100b090
cmp word [ebp - 0x1c], 9
jb 0x100b085
push esi
push 0x1005bf8
call fcn.0100cbd8
mov eax, dword [ebp - 0x24c]
cmp eax, esi
mov dword [ebp - 0x230], eax
jne 0x100b098
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 0x100b0a5
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x238]
push eax
push esi
push esi
push 0x10055f4
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 0x100b077
cmp dword [ebp - 0x238], esi
jbe 0x100b077
push esi
push 0x1005be4
call fcn.0100cbd8
mov dword [ebp - 0x230], 1
push dword [ebp - 0x234]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x100b090
push esi
push 0x1005be0
call fcn.0100cbd8
cmp dword [ebp - 0x230], esi
je 0x100b0a5
push esi
push 0x1005bcc
call fcn.0100cbd8
jmp 0x100b0cd
push esi
push 0x1005bb0
call fcn.0100cbd8
push edi
push 0x30
push 0x4b6
push esi
call fcn.0100cc77
cmp eax, 6
jne 0x100b0cd
mov dword [ebp - 0x230], 1
push dword [ebp - 0x240]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [ebp - 0x230], esi
je 0x100b1e9
xor ebx, ebx
inc ebx
push esi
push edi
lea eax, [ebp - 0x128]
push eax
push 0x10057dc
call fcn.01006b0a
test eax, eax
je 0x100b1e9
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x100b1e9
push ebx
push 0x1005b9c
call fcn.0100cbd8
mov eax, dword [ebp - 0x24c]
cmp eax, esi
mov dword [ebp - 0x230], eax
jne 0x100b1b8
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 0x100b1c5
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x238]
push eax
push esi
push esi
push 0x1005600
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 0x100b1a4
cmp dword [ebp - 0x238], esi
jbe 0x100b1a4
push esi
push 0x1005b84
call fcn.0100cbd8
mov dword [ebp - 0x230], ebx
push dword [ebp - 0x234]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x230], esi
je 0x100b1c5
push esi
push 0x1005b74
call fcn.0100cbd8
jmp 0x100b1e9
push esi
push 0x1005b5c
call fcn.0100cbd8
push edi
push 0x30
push 0x410
push esi
call fcn.0100cc77
cmp eax, 6
jne 0x100b1e9
mov dword [ebp - 0x230], ebx
pop edi
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x230]
pop esi
pop ebx
call fcn.0100d058
leave
ret