Function at 0x407509
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x41e043
call fcn.0040b998
mov eax, 0x13c8
call fcn.0040c750
push ebx
xor ebx, ebx
cmp byte [0x42a141], bl
push esi
push edi
je 0x407680
mov al, byte [0x42868c]
push 0x3f
mov byte [ebp - 0x3d4], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x3d3]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x427530]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x2d4]
push 0x42a254
push eax
mov dword [ebp - 4], ebx
call fcn.0040bb30
lea eax, [ebp - 0x2d4]
push 0x42a560
push eax
call fcn.0040bb40
add esp, 0x10
lea eax, [ebp - 0x2d4]
push eax
lea eax, [ebp - 0x13d4]
push 0x1000
push eax
push str.FileConstants
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
cmp byte [ebp - 0x13d4], bl
lea esi, [ebp - 0x13d4]
mov edi, 0x42a0d8
je 0x407645
push 0x4250c8
push esi
call fcn.0040c250
pop ecx
test eax, eax
pop ecx
je 0x407630
push str.CFID
push esi
call fcn.0040c250
pop ecx
test eax, eax
pop ecx
je 0x407630
push esi
push 0x426b70
push 0x426b6c
call fcn.00409227
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x3d4]
push eax
push str._s__lu
push esi
call fcn.0040c87f
mov eax, dword [ebp - 0x14]
add esp, 0x1c
cmp ax, 0x1106
jne 0x407630
shr eax, 0x10
push eax
push str.DEV_
lea eax, [ebp - 0x10]
push str._s_04X
push eax
call fcn.0041509d
mov eax, dword [0x42a0e0]
add esp, 0x10
lea ecx, [ebp - 0x10]
push ecx
push eax
mov ecx, edi
call fcn.004155b4
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [esi + eax + 1], bl
lea esi, [esi + eax + 1]
jne 0x4075b1
mov eax, dword [0x42a0e0]
cmp eax, ebx
mov dword [0x42a0ec], eax
jne 0x407660
push 0x42868c
push eax
mov ecx, edi
call fcn.00415588
push 0x42511c
mov ecx, 0x42a0b8
call fcn.00415d4f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00415c12
jmp 0x4078d0
lea ecx, [ebp - 0x1d0]
call fcn.00401548
lea eax, [ebp - 0x2d4]
push 0x42a254
push eax
mov dword [ebp - 4], 1
call fcn.0040bb30
lea eax, [ebp - 0x2d4]
push 0x42a560
push eax
call fcn.0040bb40
lea eax, [ebp - 0x2d4]
push eax
push str.INF_Open:__s
call fcn.004013fd
add esp, 0x18
cmp byte [0x42a13c], bl
jne 0x4076f0
cmp byte [0x42a13d], bl
jne 0x4076f0
cmp byte [0x42a13e], bl
jne 0x4076f0
cmp byte [0x42a13f], bl
jne 0x4076f0
cmp byte [0x42a140], bl
je 0x407706
lea eax, [ebp - 0x2d4]
push ebx
push eax
lea ecx, [ebp - 0x1d0]
call fcn.00401cb5
mov dword [ebp - 0x10], eax
cmp byte [0x42a142], bl
jne 0x40771e
cmp byte [0x42a143], bl
jne 0x40771e
cmp byte [0x42a144], bl
je 0x407734
lea eax, [ebp - 0x2d4]
push ebx
push eax
lea ecx, [ebp - 0x1d0]
call fcn.00402337
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
je 0x40775e
push dword [ebp - 0x10]
push str.SetupOpenInfFile:__u
call fcn.004013fd
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
lea ecx, [ebp - 0x1d0]
call fcn.0040171d
xor eax, eax
jmp 0x4078d3
mov eax, dword [0x427530]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
cmp byte [0x42a13c], bl
mov byte [ebp - 4], 2
mov dword [ebp - 0x18], ebx
mov esi, 0x4079fb
jne 0x4077a3
cmp byte [0x42a13d], bl
jne 0x4077a3
cmp byte [0x42a13e], bl
jne 0x4077a3
cmp byte [0x42a13f], bl
jne 0x4077a3
cmp byte [0x42a140], bl
je 0x4077b6
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x1d0]
push eax
push esi
call fcn.00401b06
mov dword [ebp - 0x10], eax
cmp byte [0x42a142], bl
jne 0x4077ce
cmp byte [0x42a143], bl
jne 0x4077ce
cmp byte [0x42a144], bl
je 0x4077e1
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x1d0]
push eax
push esi
call fcn.004021b0
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
je 0x4077f0
push dword [ebp - 0x10]
push str.search_for_specified_device_:__u
jmp 0x40786e
push 0x42a0d8
lea ecx, [ebp - 0x1d0]
call fcn.004025f7
push 0x42a0c0
lea ecx, [ebp - 0x1d0]
call fcn.00402611
mov esi, 0x42a86c
lea ecx, [ebp - 0x1d0]
push esi
call fcn.0040262b
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c4]
mov edi, 0x42a0b8
push eax
mov ecx, edi
call fcn.00415cff
push dword [ebp - 0x10]
mov eax, dword [0x42a0e0]
mov dword [0x42a0ec], eax
push eax
push str.m_InfHWIDNumber:__d__u
call fcn.004013fd
push dword [ebp - 0x10]
push esi
push str.m_szDriverVer:__s__u
call fcn.004013fd
add esp, 0x18
mov ecx, edi
push ebx
call fcn.00415e93
push eax
push str.m_InfDevEnumType:__s
call fcn.004013fd
cmp byte [0x42a13c], bl
pop ecx
pop ecx
jne 0x4078aa
cmp byte [0x42a13d], bl
jne 0x4078aa
cmp byte [0x42a13e], bl
jne 0x4078aa
cmp byte [0x42a13f], bl
jne 0x4078aa
cmp byte [0x42a140], bl
jne 0x4078aa
lea ecx, [ebp - 0x1d0]
call fcn.004024fa
jmp 0x4078b5
lea ecx, [ebp - 0x1d0]
call fcn.00401e28
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.004078e2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1d0]
call fcn.0040171d
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret