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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff6ec
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov esi, 0x4b8e4c
lea eax, [ebp - 8]
push eax
lea edx, [esi + 0x8b7]
push edx
push 0x80000002
call sub.ADVAPI32.DLL_RegOpenKeyA
test eax, eax
jne 0x43c8d5
lea ecx, [esi + 0x8f4]
lea eax, [esi + 0x8ec]
push ecx
push 0x4d3764
push eax
lea edx, [ebp - 0x30c]
push edx
call fcn.004a6c2c
add esp, 0x10
lea ecx, [ebp - 4]
mov dword [ebp - 4], 0x204
push ecx
lea eax, [ebp - 0x510]
push eax
push 0
lea edx, [esi + 0x905]
push 0
push edx
mov ecx, dword [ebp - 8]
push ecx
call sub.ADVAPI32.DLL_RegQueryValueExA
test eax, eax
jne 0x43c737
lea eax, [ebp - 0x30c]
push eax
lea edx, [ebp - 0x510]
push edx
call fcn.004a38bc
add esp, 8
test eax, eax
jne 0x43c737
push 0
push 0x1326
push ebx
call sub.USER32.DLL_GetDlgItem
push eax
call sub.USER32.DLL_EnableWindow
lea ecx, [esi + 0x90e]
push ecx
lea eax, [ebp - 0x108]
push eax
call fcn.004a6c2c
add esp, 8
mov edi, eax
jmp 0x43c815
push 1
push 0x1326
push ebx
call sub.USER32.DLL_GetDlgItem
push eax
call sub.USER32.DLL_EnableWindow
xor eax, eax
push esi
lea edi, [ebp - 0x510]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x714]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
lea eax, [ebp - 0x914]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [ebp - 0x814]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
push eax
push edx
push 0
lea ecx, [ebp - 0x714]
push 0
push ecx
call fcn.004a51bc
add esp, 0x14
lea eax, [ebp - 0x914]
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x714]
push eax
push edx
push 0
push 0
push ecx
call fcn.004a5198
add esp, 0x14
mov eax, dword [0x4d5a04]
test eax, eax
je 0x43c7da
lea edx, [esi + 0x92c]
push edx
push eax
call sub.KERNEL32.DLL_GetProcAddress
test eax, eax
je 0x43c7da
lea ecx, [ebp - 0x714]
push ecx
call eax
lea eax, [ebp - 0x714]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x22
jne 0x43c7ee
mov byte [eax], 0
jmp 0x43c7f6
cmp byte [eax], 0
je 0x43c7f6
inc eax
jmp 0x43c7e0
lea ecx, [ebp - 0x714]
push ecx
lea eax, [esi + 0x93c]
push eax
lea edx, [ebp - 0x108]
push edx
call fcn.004a6c2c
add esp, 0xc
mov edi, eax
mov dword [ebp - 4], 0x204
lea eax, [ebp - 4]
lea edx, [ebp - 0x510]
push eax
push edx
push 0
lea ecx, [esi + 0x953]
push 0
push ecx
mov eax, dword [ebp - 8]
push eax
call sub.ADVAPI32.DLL_RegQueryValueExA
test eax, eax
jne 0x43c88c
xor edx, edx
mov dl, byte [ebp - 0x510]
cmp edx, 0x31
jne 0x43c88c
push 1
push 0x1328
push ebx
call sub.USER32.DLL_GetDlgItem
push eax
call sub.USER32.DLL_EnableWindow
push 0
push 0x1329
push ebx
call sub.USER32.DLL_GetDlgItem
push eax
call sub.USER32.DLL_EnableWindow
lea ecx, [esi + 0x958]
lea eax, [ebp - 0x108]
add edi, eax
push ecx
push edi
call fcn.004a6c2c
add esp, 8
jmp 0x43c8ca
push 0
push 0x1328
push ebx
call sub.USER32.DLL_GetDlgItem
push eax
call sub.USER32.DLL_EnableWindow
push 1
push 0x1329
push ebx
call sub.USER32.DLL_GetDlgItem
push eax
call sub.USER32.DLL_EnableWindow
lea edx, [esi + 0x982]
lea ecx, [ebp - 0x108]
add edi, ecx
push edx
push edi
call fcn.004a6c2c
add esp, 8
mov eax, dword [ebp - 8]
push eax
call sub.ADVAPI32.DLL_RegCloseKey
jmp 0x43c8ee
push esi
add esi, 0x9a4
lea edi, [ebp - 0x108]
mov eax, edi
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
lea edx, [ebp - 0x108]
push edx
push 0x1325
push ebx
call sub.USER32.DLL_SetDlgItemTextA
push 0x4d53a4
push 0x204
lea ecx, [ebp - 0x510]
push ecx
lea eax, [esi + 5]
push eax
lea edx, [esi + 0x905]
push edx
lea ecx, [esi + 0x8e4]
push ecx
call sub.KERNEL32.DLL_GetPrivateProfileStringA
test eax, eax
je 0x43c941
push 1
push 0x1327
push ebx
call sub.USER32.DLL_GetDlgItem
push eax
call sub.USER32.DLL_EnableWindow
jmp 0x43c954
push 0
push 0x1327
push ebx
call sub.USER32.DLL_GetDlgItem
push eax
call sub.USER32.DLL_EnableWindow
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret