Function at 0x40ead4
Capabilities:
Read .ini file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x41f0c8]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
xor esi, esi
cmp eax, esi
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x5c], eax
je 0x40eaf9
cmp byte [eax], 0
jne 0x40eb00
xor eax, eax
jmp 0x40ed46
push ebx
push edi
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x50]
push eax
push esi
push esi
push 2
push esi
push esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x54], esi
call sub.WINSPOOL.DRV_EnumPrinterDriversA
cmp dword [ebp - 0x50], esi
je 0x40ecc1
push dword [ebp - 0x50]
call fcn.0040d855
mov edi, eax
cmp edi, esi
je 0x40ecc1
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x50]
push edi
push 2
push esi
push esi
call sub.WINSPOOL.DRV_EnumPrinterDriversA
cmp eax, 1
jne 0x40eb99
cmp dword [ebp - 0x54], esi
jbe 0x40eb99
lea ebx, [edi + 4]
mov eax, dword [ebx]
test eax, eax
je 0x40eb72
push dword [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40eb7d
inc esi
add ebx, 0x18
cmp esi, dword [ebp - 0x54]
jb 0x40eb5e
jmp 0x40eb99
lea eax, [esi + esi*2]
lea esi, [edi + eax*8]
push dword [esi + 0xc]
call fcn.0040d916
push dword [esi + 0x10]
mov dword [ebp - 0x48], eax
call fcn.0040d916
mov dword [ebp - 0x4c], eax
push edi
call fcn.0040d74e
cmp dword [ebp - 0x48], 0
je 0x40ebc6
push 0x5c
push dword [ebp - 0x48]
call fcn.0040f660
test eax, eax
pop ecx
pop ecx
je 0x40ebba
mov byte [eax], 0
jmp 0x40ebc6
push dword [ebp - 0x48]
call fcn.0040d74e
and dword [ebp - 0x48], 0
mov ebx, dword [ebp - 0x4c]
test ebx, ebx
je 0x40ecc1
push 0x5c
push ebx
call fcn.0040f5a0
test eax, eax
pop ecx
pop ecx
jne 0x40ec36
cmp dword [ebp - 0x48], eax
je 0x40ec36
push dword [ebp - 0x48]
call fcn.0040d8a8
mov esi, eax
push ebx
inc esi
call fcn.0040d8a8
lea esi, [esi + eax + 1]
cmp esi, 2
jbe 0x40ec36
push esi
call fcn.0040d855
mov edi, eax
test edi, edi
je 0x40ec36
push ebx
push dword [ebp - 0x48]
push str._s_s
push esi
push edi
call fcn.00403f12
add esp, 0x14
test eax, eax
jne 0x40ec2c
push ebx
call fcn.0040d74e
mov dword [ebp - 0x4c], edi
xor edi, edi
test edi, edi
je 0x40ec36
push edi
call fcn.0040d74e
cmp dword [ebp - 0x4c], 0
je 0x40ecc1
push 0x10
pop ecx
push dword [ebp - 0x4c]
xor eax, eax
push 0x40
lea edi, [ebp - 0x44]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x44]
push eax
push 0x41a32c
push str.EPAUDF01
push str.User_Mode_Printer_Driver_Information
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov esi, eax
test esi, esi
jbe 0x40ecc1
cmp dword [ebp - 0x48], 0
je 0x40ecb2
push dword [ebp - 0x48]
call fcn.0040d8a8
lea esi, [eax + esi + 2]
push esi
call fcn.0040d855
mov edi, eax
test edi, edi
je 0x40ecb2
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x48]
push str._s_s
push esi
push edi
call fcn.00403f12
add esp, 0x14
test eax, eax
je 0x40ecae
push edi
call fcn.0040d74e
xor edi, edi
test edi, edi
jne 0x40ed20
lea eax, [ebp - 0x44]
push eax
call fcn.0040d916
mov edi, eax
test edi, edi
jne 0x40ed20
push str.E_DAUDF1.DLL
call fcn.0040d916
cmp dword [ebp - 0x48], 0
mov edi, eax
je 0x40ed20
push dword [ebp - 0x48]
call fcn.0040d8a8
mov esi, eax
push edi
inc esi
call fcn.0040d8a8
lea esi, [esi + eax + 1]
cmp esi, 2
jbe 0x40ed20
push esi
call fcn.0040d855
mov ebx, eax
test ebx, ebx
je 0x40ed20
push edi
push dword [ebp - 0x48]
push str._s_s
push esi
push ebx
call fcn.00403f12
add esp, 0x14
test eax, eax
jne 0x40ed1a
push edi
call fcn.0040d74e
mov edi, ebx
jmp 0x40ed20
push ebx
call fcn.0040d74e
cmp dword [ebp - 0x4c], 0
je 0x40ed2e
push dword [ebp - 0x4c]
call fcn.0040d74e
cmp dword [ebp - 0x48], 0
je 0x40ed3c
push dword [ebp - 0x48]
call fcn.0040d74e
mov eax, dword [ebp - 0x58]
mov dword [eax + 8], edi
mov eax, edi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
pop esi
call fcn.00410cf1
leave
ret 4