Function at 0x408191
Capabilities:
Query or enumerate registry value
Read .ini file

Disassembly:
mov eax, 0x427e1f
call fcn.0041b8d0
sub esp, 0x580
push ebx
push esi
push edi
mov esi, ecx
xor edi, edi
push edi
lea ecx, [ebp - 0x28]
call fcn.004133d0
mov dword [ebp - 4], edi
cmp dword [ebp + 8], edi
je 0x4081c6
lea ecx, [esi + 0x20]
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x10], eax
jmp 0x4081c9
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x10]
push dword [ebp - 0x10]
neg edi
sbb edi, edi
lea ebx, [esi + 0x20]
mov eax, dword [ebx]
and edi, 0xfffffff5
mov ecx, ebx
add edi, 0x100c
call dword [eax + 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
push eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
push eax
mov ebx, 0xc9
push ebx
push dword [ebp - 0x14]
call fcn.004107f9
push eax
lea eax, [ebp - 0x28]
push edi
push eax
call fcn.00413429
mov eax, dword [ebp - 0x24]
xor edi, edi
add esp, 0x1c
cmp eax, edi
jne 0x408223
mov eax, 0x401650
push edi
push eax
push ebx
mov ecx, esi
call fcn.00407edd
push ebx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push dword [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
cmp dword [ebp + 8], edi
je 0x408253
lea ecx, [esi + 0x4c]
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x10], eax
jmp 0x408256
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x10]
push dword [ebp - 0x10]
neg edi
sbb edi, edi
lea ebx, [esi + 0x4c]
mov eax, dword [ebx]
and edi, 0xfffffff5
mov ecx, ebx
add edi, 0x100c
call dword [eax + 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
push eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
push eax
mov ebx, 0xca
push ebx
push dword [ebp - 0x14]
call fcn.004107f9
push eax
lea eax, [ebp - 0x28]
push edi
push eax
call fcn.00413429
mov eax, dword [ebp - 0x24]
xor edi, edi
add esp, 0x1c
cmp eax, edi
jne 0x4082b0
mov eax, 0x401650
push edi
push eax
push ebx
mov ecx, esi
call fcn.00407edd
push ebx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push dword [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
cmp dword [ebp + 8], edi
je 0x4082e0
lea ecx, [esi + 0x78]
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x10], eax
jmp 0x4082e3
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x10]
push dword [ebp - 0x10]
neg edi
sbb edi, edi
lea ebx, [esi + 0x78]
mov eax, dword [ebx]
and edi, 0xfffffff5
mov ecx, ebx
add edi, 0x100c
call dword [eax + 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
push eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
push eax
mov ebx, 0xcb
push ebx
push dword [ebp - 0x14]
call fcn.004107f9
push eax
lea eax, [ebp - 0x28]
push edi
push eax
call fcn.00413429
mov eax, dword [ebp - 0x24]
add esp, 0x1c
test eax, eax
jne 0x40833b
mov eax, 0x401650
push 0
push eax
push ebx
mov ecx, esi
call fcn.00407edd
push ebx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push dword [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
and byte [ebp - 0x278], 0
and byte [ebp - 0x37c], 0
push 0x41
pop ecx
xor eax, eax
and byte [ebp - 0x484], al
and byte [ebp - 0x170], al
push 0x41
lea edi, [ebp - 0x277]
rep stosd dword es:[edi], eax
pop ecx
push 0x40
lea edi, [ebp - 0x483]
rep stosd dword es:[edi], eax
pop ecx
lea edi, [ebp - 0x16f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x37b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104c
lea ecx, [ebp - 0x6c]
stosb byte es:[edi], al
call fcn.004133d0
mov byte [ebp - 4], 1
mov eax, 0x105
push eax
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x278]
push eax
push 0x3006
call fcn.00405286
mov eax, dword [ebp - 0x68]
test eax, eax
mov ebx, 0x401650
jne 0x4083e3
mov eax, ebx
push eax
lea eax, [ebp - 0x278]
push eax
call fcn.00413a76
push 0x302a
lea ecx, [ebp - 0x4c]
call fcn.004133d0
mov edi, eax
mov byte [ebp - 4], 2
push 0x3017
lea ecx, [ebp - 0x38]
call fcn.004133d0
mov byte [ebp - 4], 3
mov ecx, dword [edi + 4]
test ecx, ecx
jne 0x40841d
mov ecx, ebx
mov eax, dword [eax + 4]
test eax, eax
jne 0x408426
mov eax, ebx
lea edx, [ebp - 0x278]
push edx
mov edi, 0x104
push edi
lea edx, [ebp - 0x37c]
push edx
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x38]
call fcn.0041341e
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4c]
call fcn.0041341e
push 0x3003
lea ecx, [ebp - 0x4c]
call fcn.004133d0
mov byte [ebp - 4], 4
mov eax, dword [eax + 4]
test eax, eax
jne 0x408475
mov eax, ebx
push edi
push eax
lea eax, [ebp - 0x484]
push eax
call fcn.0041ba87
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4c]
call fcn.0041341e
push 0x300f
lea ecx, [ebp - 0x38]
call fcn.004133d0
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 5
push 0x3004
lea ecx, [ebp - 0x4c]
call fcn.004133d0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x4084c3
mov ecx, ebx
mov eax, dword [eax + 4]
test eax, eax
jne 0x4084cc
mov eax, ebx
lea edx, [ebp - 0x484]
push edx
push edi
lea edx, [ebp - 0x170]
push edx
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x4c]
call fcn.0041341e
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x38]
call fcn.0041341e
xor edi, edi
push edi
lea ecx, [ebp - 0x5c]
call fcn.004133d0
mov byte [ebp - 4], 7
lea eax, [ebp - 0x37c]
push eax
lea eax, [ebp - 0x5c]
push 0x302b
push eax
call fcn.00413429
add esp, 0xc
mov dword [ebp - 0x18], edi
mov byte [ebp - 4], 8
cmp dword [ebp - 0x58], edi
je 0x408532
mov ebx, dword [ebp - 0x58]
push 0x2001f
push ebx
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x18]
call fcn.00404be8
cmp eax, edi
jne 0x408704
xor eax, eax
mov cl, byte [ebp + eax - 0x170]
mov byte [ebp + eax - 0x58c], cl
inc eax
test cl, cl
jne 0x40854f
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x58c]
push eax
lea eax, [ebp - 0x14]
push eax
push edi
lea eax, [ebp - 0x170]
push eax
push dword [ebp - 0x18]
mov dword [ebp - 0x14], edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp eax, edi
jne 0x4086fc
push edi
lea ecx, [ebp - 0x38]
call fcn.004133d0
mov byte [ebp - 4], 9
cmp dword [ebp + 8], edi
je 0x4085ac
lea ecx, [esi + 0x20]
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x10], eax
jmp 0x4085af
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x10]
push dword [ebp - 0x10]
neg edi
sbb edi, edi
lea ebx, [esi + 0x20]
mov eax, dword [ebx]
and edi, 0xfffffff5
mov ecx, ebx
add edi, 0x100c
call dword [eax + 0x14]
push 0x42e128
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x38]
push 0x1067
push eax
call fcn.00413429
mov eax, dword [ebp - 0x34]
add esp, 0xc
test eax, eax
jne 0x4085f1
mov eax, 0x401650
push eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
push eax
mov ebx, 0xc9
push ebx
push dword [ebp - 0x14]
call fcn.004107f9
push eax
lea eax, [ebp - 0x28]
push edi
push eax
call fcn.00413429
mov eax, dword [ebp - 0x24]
add esp, 0x1c
test eax, eax
jne 0x408622
mov eax, 0x401650
push 0
push eax
push ebx
mov ecx, esi
call fcn.00407edd
push ebx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push dword [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
lea ebx, [esi + 0x4c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x10], eax
add ecx, 0x1068
cmp dword [ebp + 8], 0
mov eax, ecx
jne 0x408667
and dword [ebp - 0x10], 0
push 0x42e128
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00413429
mov edi, dword [ebp - 0x10]
mov eax, dword [ebx]
add esp, 0xc
push edi
mov ecx, ebx
call dword [eax + 0x14]
neg edi
sbb edi, edi
and edi, 0xfffffff5
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
add edi, 0x100c
test eax, eax
jne 0x4086a0
mov eax, 0x401650
push eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
push eax
mov ebx, 0xca
push ebx
push dword [ebp - 0x14]
call fcn.004107f9
push eax
lea eax, [ebp - 0x28]
push edi
push eax
call fcn.00413429
mov eax, dword [ebp - 0x24]
add esp, 0x1c
test eax, eax
jne 0x4086d1
mov eax, 0x401650
push 0
push eax
push ebx
mov ecx, esi
call fcn.00407edd
push ebx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push dword [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x38]
call fcn.0041341e
lea ecx, [ebp - 0x18]
call fcn.00404bd1
mov ecx, esi
call fcn.00407fb4
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.00404bd1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5c]
call fcn.0041341e
and byte [ebp - 4], 0
lea ecx, [ebp - 0x6c]
call fcn.0041341e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0041341e
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4