Function at 0x407650
Capabilities:
Enumerate files on windows
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6fc
mov eax, dword [0x43b010]
xor eax, ebp
mov dword [ebp - 4], eax
movdqu xmm0, xmmword [str.strings]
movzx eax, word [0x434ea8]
mov word [ebp - 0x2c], ax
movzx eax, word [0x434edc]
movdqu xmmword [ebp - 0x28], xmm0
push ebx
movdqu xmm0, xmmword [str.HP_Mombi_Driver_Name]
mov word [ebp - 0x58], ax
xor bl, bl
push esi
movdqu xmmword [ebp - 0x54], xmm0
xor eax, eax
mov esi, edx
movdqu xmm0, xmmword [0x434e90]
push edi
mov edi, dword [ebp + 8]
movdqu xmmword [ebp - 0x44], xmm0
mov word [ebp - 0x6f0], ax
lea eax, [ebp - 0x18]
movq xmm0, qword [0x434ea0]
movq qword [ebp - 0x34], xmm0
movdqu xmm0, xmmword [str.HP_Mombi_Driver_Name_Ver]
push eax
mov byte [ebp - 0x6e9], bl
movdqu xmmword [ebp - 0x88], xmm0
mov dword [ebp - 0x18], 0x73
movdqu xmm0, xmmword [0x434ebc]
mov dword [ebp - 0x6f8], 0x5c
movdqu xmmword [ebp - 0x78], xmm0
movdqu xmm0, xmmword [0x434ecc]
movdqu xmmword [ebp - 0x68], xmm0
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x14], xmm0
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea ecx, [ebp - 0x18]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407720
sub ecx, edx
sar ecx, 1
cmp ecx, 2
jne 0x407740
movzx eax, word [ebp - 0x16]
mov dword [ebp - 0x6f8], eax
jmp 0x407745
mov eax, 0x5c
push eax
push esi
call fcn.00417db3
add esp, 8
test eax, eax
je 0x4078e4
xor ecx, ecx
push 0x250
mov word [eax + 2], cx
lea eax, [ebp - 0x6e8]
push ecx
push eax
call fcn.0041a7b0
add esp, 0xc
lea ecx, [esi - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x407775
mov eax, dword [str..inf]
mov dword [ecx], eax
mov eax, dword [0x434ee4]
mov dword [ecx + 4], eax
mov eax, dword [0x434ee8]
mov dword [ecx + 8], eax
lea eax, [ebp - 0x6e8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x6f4], eax
cmp eax, 0xffffffff
je 0x4078e4
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x4077c0
lea eax, [ebp - 0x6bc]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4077d0
sub eax, edx
sar eax, 1
je 0x4078b2
push dword [ebp - 0x6f8]
push esi
call fcn.00417db3
add esp, 8
test eax, eax
je 0x4078b2
xor ecx, ecx
mov word [eax + 2], cx
lea eax, [ebp - 0x6bc]
push eax
push 0x410
push esi
call fcn.0041810e
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x498], ax
lea eax, [ebp - 0x496]
push eax
call fcn.0041a7b0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x290], ax
lea eax, [ebp - 0x28e]
push eax
call fcn.0041a7b0
add esp, 0x24
cmp byte [ebp + 0xc], 0
push esi
push 0x104
je 0x407896
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x6f0]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x28]
push eax
call ebx
test eax, eax
je 0x4078b2
lea ecx, [ebp - 0x290]
mov bl, 1
mov eax, ecx
sub edi, eax
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edi + ecx - 2], ax
test ax, ax
jne 0x407884
jmp 0x4078d3
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x6f0]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x28]
push eax
call ebx
test eax, eax
jne 0x4078f7
lea eax, [ebp - 0x6e8]
push eax
push dword [ebp - 0x6f4]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4077c0
mov bl, byte [ebp - 0x6e9]
mov eax, dword [ebp - 0x6f4]
test eax, eax
je 0x4078e4
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041729b
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x498]
mov bl, 1
mov eax, ecx
sub edi, eax
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edi + ecx - 2], ax
test ax, ax
jne 0x407903
jmp 0x4078d3