Function at 0x402300
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x416657
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x340
push ebx
push ebp
push esi
push edi
mov ebx, ecx
push str._n_MyReadDrvNameToAutoRunFile__Start_MyReadDrvNameToAutoRunFile_n
mov dword [esp + 0x24], ebx
call fcn.00401950
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x48]
add esp, 4
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x148]
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x24c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x24], 0
call fcn.00404702
lea esi, [ebx + 0xdc]
xor ebp, ebp
push 0x421580
mov ecx, esi
mov dword [esp + 0x35c], ebp
call fcn.004100a9
push 0x421580
lea ecx, [esp + 0x1c]
call fcn.0040ffda
push 0x421580
lea ecx, [esp + 0x20]
mov byte [esp + 0x35c], 1
call fcn.0040ffda
push 0x421580
lea ecx, [esp + 0x18]
mov byte [esp + 0x35c], 2
call fcn.0040ffda
push 0x421580
lea ecx, [esp + 0x14]
mov byte [esp + 0x35c], 3
call fcn.0040ffda
mov eax, dword [ebx + 0xe0]
mov byte [esp + 0x358], 4
push eax
push str._sAutoRun.Inf
push esi
call fcn.0040f845
mov ecx, dword [esi]
add esp, 0xc
push ecx
push str._______Autorun.inf_path_____s_
call fcn.00401950
mov eax, dword [esi]
add esp, 8
lea ecx, [esp + 0x28]
push ebp
push eax
call fcn.004047c5
test eax, eax
jne 0x40247e
push str._______Is_not_exist_Autorun.inf_file
call fcn.00401950
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x358], 3
call fcn.0040ff6c
lea ecx, [esp + 0x14]
mov byte [esp + 0x358], 2
call fcn.0040ff6c
lea ecx, [esp + 0x1c]
mov byte [esp + 0x358], 1
call fcn.0040ff6c
lea ecx, [esp + 0x18]
mov byte [esp + 0x358], 0
call fcn.0040ff6c
lea ecx, [esp + 0x28]
mov dword [esp + 0x358], 0xffffffff
call fcn.0040473f
xor eax, eax
jmp 0x4027fe
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [esp + 0x20]
push 0x421580
mov eax, dword [edx + 0xc4]
test eax, eax
jne 0x402565
lea ecx, [esp + 0x20]
call fcn.004100a9
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x44]
push ebp
rep stosd dword es:[edi], eax
push str.DRIVER_NAME
lea eax, [esp + 0x24]
push str._s__d
push eax
call fcn.0040f845
mov ecx, dword [esp + 0x2c]
add esp, 0x10
push ecx
push str._______Read_driver_name_key_is___s_
call fcn.00401950
mov eax, dword [esi]
add esp, 8
lea edx, [esp + 0x44]
push eax
mov eax, dword [esp + 0x20]
push 0x104
push edx
push 0x421580
push eax
push str.INFOMATION
call ebx
push 0x421580
lea ecx, [esp + 0x1c]
call fcn.004100a9
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004100a9
mov eax, dword [esp + 0x18]
mov ecx, dword [eax - 8]
test ecx, ecx
jle 0x40270f
push eax
push str._______Autorun.inf_is_read_drivername_____s_
call fcn.00401950
add esp, 8
lea ecx, [esp + 0x18]
call fcn.0041026c
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0xd8]
push eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.004056c2
add esp, 8
test eax, eax
je 0x40277b
push str._______Compare_is_not_identical
jmp 0x4026fb
lea ecx, [esp + 0x18]
call fcn.004100a9
push 0x421580
lea ecx, [esp + 0x14]
call fcn.004100a9
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x148]
push ebp
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x250]
rep stosd dword es:[edi], eax
push 0x41ce98
lea ecx, [esp + 0x1c]
push str._s__d
push ecx
call fcn.0040f845
add esp, 0x10
lea edx, [esp + 0x10]
push ebp
push 0x41ce94
push str._s__d
push edx
call fcn.0040f845
mov eax, dword [esp + 0x24]
add esp, 0x10
push eax
push str._______Read_MFG_name_key_is___s_
call fcn.00401950
mov ecx, dword [esp + 0x18]
add esp, 8
push ecx
push str._______Read_MDL_name_key_is___s_
call fcn.00401950
mov eax, dword [esi]
add esp, 8
lea edx, [esp + 0x148]
push eax
mov eax, dword [esp + 0x18]
push 0x104
push edx
push 0x421580
push eax
push str.INFOMATION
call ebx
mov eax, dword [esi]
mov edx, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x250]
push 0x104
push ecx
push 0x421580
push edx
push str.INFOMATION
call ebx
push 0x421580
lea ecx, [esp + 0x18]
call fcn.004100a9
push 0x421580
lea ecx, [esp + 0x14]
call fcn.004100a9
lea eax, [esp + 0x148]
lea ecx, [esp + 0x14]
push eax
call fcn.004100a9
lea ecx, [esp + 0x24c]
push ecx
lea ecx, [esp + 0x14]
call fcn.004100a9
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 8]
test ecx, ecx
jle 0x402821
mov edx, dword [esp + 0x10]
mov ecx, dword [edx - 8]
test ecx, ecx
jle 0x402821
push eax
push str._______Autorun.inf_is_read_MFG_Value_____s_
call fcn.00401950
mov eax, dword [esp + 0x18]
add esp, 8
push eax
push str._______Autorun.inf_is_read_MDL_Value_____s_
call fcn.00401950
add esp, 8
lea ecx, [esp + 0x14]
call fcn.0041026c
lea ecx, [esp + 0x10]
call fcn.0041026c
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0xe8]
push eax
push ecx
call fcn.004056c2
add esp, 8
test eax, eax
jne 0x4026f6
mov edi, dword [edi + 0xec]
mov edx, dword [esp + 0x10]
push edi
push edx
call fcn.004056c2
add esp, 8
test eax, eax
je 0x402817
push str._______MFG_and_MDL_Compare_is_not_identical
call fcn.00401950
add esp, 4
inc ebp
cmp ebp, 0x14
jl 0x402484
jmp 0x40278d
push str._______Is_not_read_driver_name
call fcn.00401950
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x358], 3
call fcn.0040ff6c
lea ecx, [esp + 0x14]
mov byte [esp + 0x358], 2
call fcn.0040ff6c
lea ecx, [esp + 0x1c]
mov byte [esp + 0x358], 1
call fcn.0040ff6c
lea ecx, [esp + 0x18]
mov byte [esp + 0x358], 0
call fcn.0040ff6c
lea ecx, [esp + 0x28]
mov dword [esp + 0x358], 0xffffffff
call fcn.0040473f
xor eax, eax
jmp 0x4027fe
push str._______Compare_is_identical
call fcn.00401950
add esp, 4
mov byte [esp + 0x24], 1
push str._MyReadDrvNameToAutoRunFile_End_MyReadDrvNameToAutoRunFile_n
call fcn.00401950
mov esi, dword [esp + 0x28]
add esp, 4
lea ecx, [esp + 0x10]
and esi, 0xff
mov byte [esp + 0x358], 3
call fcn.0040ff6c
lea ecx, [esp + 0x14]
mov byte [esp + 0x358], 2
call fcn.0040ff6c
lea ecx, [esp + 0x1c]
mov byte [esp + 0x358], 1
call fcn.0040ff6c
lea ecx, [esp + 0x18]
mov byte [esp + 0x358], 0
call fcn.0040ff6c
lea ecx, [esp + 0x28]
mov dword [esp + 0x358], 0xffffffff
call fcn.0040473f
mov eax, esi
mov ecx, dword [esp + 0x350]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x34c
ret
push str._______MDL_and_MFG_Compare_is_identical
jmp 0x402780
push str._______Is_not_MFG_or_MDL_driver_name
call fcn.00401950
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x358], 3
call fcn.0040ff6c
lea ecx, [esp + 0x14]
mov byte [esp + 0x358], 2
call fcn.0040ff6c
lea ecx, [esp + 0x1c]
mov byte [esp + 0x358], 1
call fcn.0040ff6c
lea ecx, [esp + 0x18]
mov byte [esp + 0x358], 0
call fcn.0040ff6c
lea ecx, [esp + 0x28]
mov dword [esp + 0x358], 0xffffffff
call fcn.0040473f
xor eax, eax
jmp 0x4027fe