Function at 0x4c7950
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a6f92
mov eax, dword fs:[0]
push eax
mov eax, 0x10ca4
call fcn.0056e430
mov eax, dword [0x608554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push ecx
xor edx, edx
lea ecx, [ebp - 0x10c70]
push str.CBaseDlgSetAdditionalDriver::OnInitDialogForPCL
mov dword [ebp - 0x10c84], edx
call fcn.0040a480
mov dword [ebp - 4], 0
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4c79e2
test byte [ecx + 0x1c], 1
je 0x4c79e2
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d76c0
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0xf
call fcn.00401840
add esp, 0xc
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00571c00
push 0xfffe
lea eax, [ebp - 0x10c20]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0xc20]
push 0
push eax
call fcn.00571c00
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.00571c00
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0xc20]
add esp, 0x30
mov dword [ebp - 0x10c2c], str.Driver_w32
mov dword [ebp - 0x10c28], str.Driver_x64
mov dword [ebp - 0x10c24], str.Driver_ARM64
mov ecx, dword [ecx + 0x1c]
push eax
push str.PortSelectCount
mov dword [ebp - 0x10c38], 8
mov dword [ebp - 0x10c34], 0x20
mov dword [ebp - 0x10c30], 0x40
call fcn.004f65f0
lea eax, [ebp - 0xc20]
push eax
call fcn.00577bb7
mov edx, dword [0x6184f0]
dec eax
add esp, 4
mov ecx, dword [edx + 4]
mov esi, dword [ecx + 4]
cmp eax, dword [esi]
jge 0x4c7ac7
mov dword [ecx + 8], eax
lea edi, [esi + 0x10001c]
imul eax, eax, 0x413c
mov dword [ecx + 0x14], 0
mov edx, dword [0x6184f0]
add edi, eax
jmp 0x4c7acc
mov edi, 8
mov ecx, dword [edx + 0x1c]
lea eax, [ebp - 0xc20]
push eax
push str.ADDITIONALS
call fcn.004f65f0
lea eax, [ebp - 0xc20]
push eax
call fcn.00577bb7
mov ecx, dword [0x6184f4]
add esp, 4
mov dword [ebp - 0x10c80], eax
mov ecx, dword [ecx + 4]
call fcn.0050a840
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x218]
push eax
push str.TEMPPATH
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
push str.InsDrv.ini
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.00574a48
add esp, 0xc
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x4c8178
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x10c74], esi
mov byte [ebp - 4], 1
mov ecx, dword [0x6184f0]
mov eax, dword [ecx + 8]
cmp dword [eax + 0x7f8], 2
jne 0x4c7bcb
mov edi, dword [ecx + 0x1c]
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, 0x400
or eax, ecx
jge 0x4c7b96
push 0x400
lea ecx, [ebp - 0x10c74]
call fcn.00403b50
mov esi, dword [ebp - 0x10c74]
push esi
push str.SelDriverList
mov ecx, edi
call fcn.004f65f0
push dword [esi - 8]
push esi
call fcn.00574de9
add esp, 8
test eax, eax
js 0x4c8182
cmp eax, dword [esi - 8]
jg 0x4c8182
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
jmp 0x4c7bfc
test edi, edi
jne 0x4c7bd3
xor ecx, ecx
jmp 0x4c7bef
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c7be0
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x10c74]
call fcn.00403bb0
xor ebx, ebx
mov dword [ebp - 0x10c7c], ebx
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebp + ebx - 0x10c2c]
lea ecx, [ebp - 0x218]
push ecx
push 0x7fff
lea ecx, [ebp - 0x10c20]
mov dword [ebp - 0x10c8c], eax
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov ebx, eax
call fcn.00550b4e
test eax, eax
je 0x4c8178
mov edx, dword [eax]
mov ecx, eax
push 2
push 0x7fff
call dword [edx]
test eax, eax
je 0x4c8173
cmp dword [eax + 8], 0x7fff
lea edi, [eax + 0x10]
mov dword [ebp - 0x10cb0], edi
jl 0x4c8182
xor eax, eax
mov dword [edi - 0xc], 0x7fff
mov word [edi + 0xfffe], ax
mov edx, 0x7fff
lea eax, [ebp - 0x10c20]
mov ecx, edi
push 0x7fff
push eax
call fcn.00403ed0
add esp, 8
mov byte [ebp - 4], 2
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x4c8178
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10c78], eax
lea ecx, [ebp - 0x10cac]
mov byte [ebp - 4], 3
xor esi, esi
call fcn.0055b16f
mov byte [ebp - 4], 4
test ebx, ebx
je 0x4c8000
mov ecx, dword [edi - 0xc]
nop dword [eax]
test esi, esi
js 0x4c7e80
cmp esi, ecx
jge 0x4c7e80
lea eax, [edi + esi*2]
push 0
push eax
call fcn.00570b1c
add esp, 8
test eax, eax
je 0x4c7e80
sub eax, edi
sar eax, 1
mov dword [ebp - 0x10c98], eax
test eax, eax
jle 0x4c7e80
xor ecx, ecx
add eax, 1
mov dword [ebp - 0x10c94], eax
cmovns ecx, eax
mov eax, closesocket
sub eax, esi
cmp eax, ecx
jl 0x4c818c
mov edx, dword [edi - 0xc]
lea eax, [esi + ecx]
cmp eax, edx
jle 0x4c7d43
mov ecx, edx
sub ecx, esi
xor ebx, ebx
cmp esi, edx
cmovle ebx, ecx
test esi, esi
jne 0x4c7d65
cmp ebx, edx
jne 0x4c7d65
lea ecx, [edi - 0x10]
call fcn.00403af0
add eax, 0x10
mov dword [ebp - 0x10c88], eax
jmp 0x4c7d98
mov ecx, dword [edi - 0x10]
test ecx, ecx
je 0x4c7d75
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x4c7d81
call fcn.00550b4e
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
push ebx
lea eax, [edi + esi*2]
push eax
lea ecx, [ebp - 0x10c88]
call fcn.00403d50
mov eax, dword [ebp - 0x10c88]
mov ecx, dword [ebp - 0x10c84]
lea esi, [eax - 0x10]
mov byte [ebp - 4], 5
or ecx, 1
mov ebx, dword [ebp - 0x10c78]
add ebx, 0xfffffff0
mov dword [ebp - 0x10c84], ecx
cmp esi, ebx
je 0x4c7e0b
cmp dword [ebx + 0xc], 0
jl 0x4c7dfc
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x4c7dfc
mov ecx, esi
call fcn.00403af0
mov dword [ebp - 0x10c90], eax
lea edx, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4c7df1
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x10c90]
add eax, 0x10
mov dword [ebp - 0x10c78], eax
jmp 0x4c7e0b
push dword [eax - 0xc]
lea ecx, [ebp - 0x10c78]
push eax
call fcn.00403bb0
mov byte [ebp - 4], 4
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4c7e24
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x10c78]
cmp dword [eax - 0xc], 1
jl 0x4c7e80
lea eax, [ebp - 0x10c78]
push eax
push dword [ebp - 0x10ca4]
lea ecx, [ebp - 0x10cac]
call fcn.0055b5b5
mov eax, dword [ebp - 0x10c94]
mov esi, eax
test eax, eax
js 0x4c8182
mov ecx, dword [edi - 0xc]
cmp dword [ebp - 0x10c98], ecx
jge 0x4c8182
movzx eax, word [edi + eax*2]
mov edx, dword [ebp - 0x10c84]
mov dword [ebp - 0x10c84], edx
test ax, ax
jne 0x4c7ce0
mov eax, dword [ebp - 0x10ca4]
xor ebx, ebx
test eax, eax
jle 0x4c7f39
test ebx, ebx
js 0x4c8196
cmp ebx, eax
jge 0x4c8196
mov eax, dword [ebp - 0x10ca8]
mov ecx, dword [eax + ebx*4]
sub ecx, 0x10
call fcn.00403af0
lea esi, [eax + 0x10]
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4c7efb
test byte [ecx + 0x1c], 4
je 0x4c7efb
push dword [ebp - 0x10c74]
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
mov edx, 0x5d76c0
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x10
call fcn.00430170
add esp, 0x14
push dword [ebp - 0x10c74]
push esi
call fcn.00570be3
add esp, 8
test eax, eax
jne 0x4c7f9c
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4c7f2a
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x10ca4]
inc ebx
cmp ebx, eax
jl 0x4c7e90
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4c7f85
test byte [ecx + 0x1c], 4
je 0x4c7f85
push dword [ebp - 0x10c8c]
cmp dword [0x608f68], 8
mov eax, 0x608f54
push dword [ebp - 0x10c74]
cmovae eax, dword [0x608f54]
mov edx, 0x5d76c0
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x12
call fcn.00430170
add esp, 0x14
mov ebx, dword [ebp - 0x10c7c]
mov eax, dword [ebp + ebx - 0x10c38]
not eax
and dword [ebp - 0x10c80], eax
jmp 0x4c8006
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4c7fe8
test byte [ecx + 0x1c], 4
je 0x4c7fe8
push dword [ebp - 0x10c8c]
cmp dword [0x608f68], 8
mov eax, 0x608f54
push dword [ebp - 0x10c74]
cmovae eax, dword [0x608f54]
mov edx, 0x5d76c0
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x11
call fcn.00430170
add esp, 0x14
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4c8000
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x10c7c]
lea ecx, [ebp - 0x10cac]
call fcn.0055b186
mov byte [ebp - 4], 2
or esi, 0xffffffff
mov edx, dword [ebp - 0x10c78]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4c8035
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4c8050
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
add ebx, 4
mov dword [ebp - 0x10c7c], ebx
cmp ebx, 0xc
jl 0x4c7c10
mov ecx, dword [0x608f30]
mov ebx, dword [ebp - 0x10c80]
cmp ecx, 0x608f30
je 0x4c80a9
test byte [ecx + 0x1c], 4
je 0x4c80a9
cmp dword [0x608f68], 8
mov eax, 0x608f54
push ebx
cmovae eax, dword [0x608f54]
mov edx, 0x5d76c0
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x13
call fcn.004018a0
add esp, 0x10
push ebx
push 0x5c6b38
push 0xffffffffffffffff
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.00437f50
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x420]
add esp, 0x14
mov ecx, dword [ecx + 0x1c]
push eax
push str.ADDITIONALS
call fcn.004f6860
mov byte [ebp - 0x10c6c], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4c8128
test byte [ecx + 0x1c], 1
je 0x4c8128
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 1
cmovae eax, dword [0x608f54]
mov edx, 0x5d76c0
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x14
call fcn.004018a0
add esp, 0x10
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x10c74]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], esi
dec esi
test esi, esi
jg 0x4c8147
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
lea ecx, [ebp - 0x10c70]
call fcn.0040a570
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056d977
mov esp, ebp
pop ebp
ret
call fcn.00403ec0
push 0x80004005
call fcn.004013a0
push 0x80070057
call fcn.004013a0
push 0x80070216
call fcn.004013a0
call fcn.005511b9
int3