Function at 0x403270
Capabilities:
Enumerate files on windows
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x40425c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x264
push ebx
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x1c], edi
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov dword [esp + 0x278], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x278], 1
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x28]
mov byte [esp + 0x278], 2
push eax
push 0x20019
push 0
push str.SoftwareInformixEnvironment
push 0x80000001
mov dword [esp + 0x34], 0xff
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40331f
lea ecx, [esp + 0x20]
lea edx, [esp + 0x170]
push ecx
push edx
push eax
push eax
mov eax, dword [esp + 0x38]
push str.INFORMIXDIR
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40332d
lea ecx, [esp + 0x170]
push ecx
jmp 0x403324
push 0x4074b4
lea ecx, [esp + 0x10]
call fcn.00403ac6
lea edx, [esp + 0x10]
push 1
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
mov eax, dword [eax]
mov esi, dword [sym.imp.MSVCRT.dll__mbscmp]
push 0x4074b0
push eax
call esi
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
setne bl
call fcn.00403aea
test bl, bl
je 0x403370
push 0x4074b0
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
lea eax, [esp + 0x10]
push 1
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Right
mov eax, dword [eax]
push 0x4074b0
push eax
call esi
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
setne bl
call fcn.00403aea
test bl, bl
je 0x4033ad
push 0x4074b0
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
push str.releaseen_us04e4_
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
push str.bin_
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
lea esi, [edi + 0x4c]
push ecx
mov ecx, esi
call sub.MFC42.DLL_CString::operator_1
push str..txt
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
mov eax, dword [esp + 0xc]
mov ebx, dword [edi + 0x40]
lea edx, [esp + 0x30]
mov dword [esp + 0x10], ebx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x24], eax
je 0x4034fa
lea ecx, [esp + 0x5c]
push ebp
push ecx
lea edx, [esp + 0x34]
push esi
push edx
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x280], 3
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x30]
mov byte [esp + 0x27c], 2
call fcn.00403aea
lea eax, [esp + 0x60]
push eax
call dword [sym.imp.MSVCRT.dll__strupr]
mov al, byte [esp + 0x38]
add esp, 4
test al, 0x10
jne 0x4034cf
mov edx, dword [ebx + 0x5c]
xor edi, edi
test edx, edx
jle 0x4034cf
mov ebp, dword [ebx + 0x58]
mov eax, dword [ebp]
lea esi, [esp + 0x60]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x40348b
test cl, cl
je 0x403487
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x40348b
add eax, 2
add esi, 2
test cl, cl
jne 0x403467
xor eax, eax
jmp 0x403490
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4034a4
add edi, 2
add ebp, 8
cmp edi, edx
jl 0x403460
mov ebx, dword [esp + 0x14]
jmp 0x4034cf
mov ebx, dword [esp + 0x14]
push 0xffff0002
mov ecx, dword [esp + 0x24]
push 0xffff0000
mov eax, dword [ebx + 0x58]
push 0
push 0
push 0
mov eax, dword [eax + edi*4 + 4]
push 0
push 0
push eax
push 1
call sub.MFC42.DLL_CTreeCtrl::InsertItem
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40343e
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
push ecx
mov ecx, ebx
call sub.MFC42.DLL_CDocument::UpdateAllViews
pop ebp
lea ecx, [esp + 0x14]
mov byte [esp + 0x278], 1
call fcn.00403aea
lea ecx, [esp + 0xc]
mov byte [esp + 0x278], 0
call fcn.00403aea
lea ecx, [esp + 0x18]
mov dword [esp + 0x278], 0xffffffff
call fcn.00403aea
mov ecx, dword [esp + 0x270]
pop edi
pop esi
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x270
ret