Function at 0x40aded
Capabilities:
Copy file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x46c
mov eax, dword [0x49f2a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x460], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov esi, 0x104
mov dword [ebp - 0x44c], eax
mov eax, dword [ebp + 0x10]
push esi
push 1
mov dword [ebp - 0x468], eax
call fcn.00450903
push esi
push 1
mov dword [ebp - 0x454], eax
call fcn.00450903
push esi
push 1
mov dword [ebp - 0x458], eax
call fcn.00450903
push 4
mov edi, 0x3e8
push edi
mov dword [ebp - 0x450], eax
call fcn.00450903
push 8
push edi
mov dword [ebp - 0x45c], eax
call fcn.00450903
add esp, 0x28
mov dword [ebp - 0x464], eax
test ebx, ebx
je 0x40ae86
push esi
push ebx
push dword [ebp - 0x454]
call fcn.00451260
add esp, 0xc
cmp dword [ebp - 0x44c], 0
je 0x40aea4
push esi
push dword [ebp - 0x44c]
push dword [ebp - 0x458]
call fcn.00451260
add esp, 0xc
cmp dword [ebp - 0x468], 0
mov ebx, dword [ebp - 0x450]
je 0x40aec3
push esi
push dword [ebp - 0x468]
push ebx
call fcn.00451260
add esp, 0xc
mov eax, dword [ebp - 0x454]
cmp byte [eax], 0
jne 0x40aee1
push esi
push eax
call fcn.0040acbb
test eax, eax
jne 0x40aee1
xor eax, eax
inc eax
jmp 0x40b195
cmp byte [ebx], 0
jne 0x40aeee
push ebx
push 0
call fcn.0040adbf
push 4
push ebx
call fcn.00450d79
pop ecx
pop ecx
cmp eax, 0xffffffff
jne 0x40af1e
push ebx
push str.The_drivers_.inf_file__s_is_not_readable.
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x231
push str.ADDDRIVER
call fcn.0044dc85
add esp, 0x14
jmp 0x40aed9
push 0x40
lea eax, [ebp - 0x44]
push eax
push edi
push dword [ebp - 0x45c]
push ebx
call fcn.0040a036
mov ebx, dword [ebp - 0x458]
cmp byte [ebx], 0
mov dword [ebp - 0x44c], eax
jne 0x40af4a
push ebx
push 0
call fcn.0040ad94
push 4
push ebx
call fcn.00450d79
pop ecx
pop ecx
cmp eax, 0xffffffff
jne 0x40af6d
push ebx
push str.The_driver_file__s_is_not_readable.
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x23f
jmp 0x40af0f
lea eax, [ebp - 0x348]
push eax
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x448]
push eax
lea eax, [ebp - 0x46c]
push eax
push ebx
call fcn.00451211
lea eax, [ebp - 0x348]
push eax
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0x454]
lea eax, [ebp - 0x248]
push str._s_system32drivers_s_s
push esi
push eax
call fcn.00450d91
add esp, 0x2c
test eax, eax
js 0x40aed9
push 0x80
lea eax, [ebp - 0x248]
push eax
call dword [sym.imp.___total_physical_size__lu_MB_SetFileAttributesA]
push 0
lea eax, [ebp - 0x248]
push eax
push ebx
call dword [sym.imp.___total_physical_size__lu_MB_CopyFileA]
test eax, eax
jne 0x40b011
lea eax, [ebp - 0x248]
push eax
push ebx
push str.Copy_of__s_to__s_failed.
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x251
push str.ADDDRIVER
call fcn.0044dc85
add esp, 0x18
jmp 0x40aed9
mov ebx, dword [ebp - 0x464]
push 1
push edi
push ebx
call fcn.0040a3dc
test byte [0x4cdde0], 1
mov esi, eax
mov dword [ebp - 0x450], esi
je 0x40b045
push dword [ebp - 0x44c]
push esi
push str.RegPCIListEntries___d__InfPCIListEntries___d_n
call fcn.00450f5c
add esp, 0xc
test esi, esi
jle 0x40b0c5
mov edi, ebx
mov dword [ebp - 0x458], esi
xor esi, esi
cmp dword [ebp - 0x44c], esi
jle 0x40b0ba
test byte [0x4cdde0], 1
je 0x40b07c
mov eax, dword [ebp - 0x45c]
push dword [eax + esi*4]
push dword [edi]
push str.REG:_s_FILE:_s_n
call fcn.00450f5c
add esp, 0xc
mov eax, dword [ebp - 0x45c]
lea eax, [eax + esi*4]
push 0x11
push dword [eax]
mov dword [ebp - 0x464], eax
push dword [edi]
call fcn.00450f08
add esp, 0xc
test eax, eax
jne 0x40b0b1
mov eax, dword [ebp - 0x464]
push dword [eax]
call fcn.004503c5
pop ecx
mov dword [ebp - 0x460], eax
inc esi
cmp esi, dword [ebp - 0x44c]
jl 0x40b05b
add edi, 8
dec dword [ebp - 0x458]
jne 0x40b051
xor edi, edi
xor esi, esi
cmp dword [ebp - 0x44c], edi
jle 0x40b0e9
mov eax, dword [ebp - 0x45c]
push dword [eax + esi*4]
call fcn.0045038b
inc esi
pop ecx
cmp esi, dword [ebp - 0x44c]
jl 0x40b0d1
xor esi, esi
cmp dword [ebp - 0x450], edi
jle 0x40b119
mov eax, dword [ebx + esi*8]
cmp eax, edi
je 0x40b101
push eax
call fcn.0045038b
pop ecx
mov eax, dword [ebx + esi*8 + 4]
cmp eax, edi
je 0x40b110
push eax
call fcn.0045038b
pop ecx
inc esi
cmp esi, dword [ebp - 0x450]
jl 0x40b0f3
push dword [ebp - 0x45c]
call fcn.0045038b
push ebx
call fcn.0045038b
pop ecx
pop ecx
cmp dword [ebp - 0x460], edi
jne 0x40b157
push str.Cant_find_a_device_with_matching_PCI_Id.
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x277
push str.ADDDRIVER
call fcn.0044dc85
add esp, 0x10
jmp 0x40aed9
push dword [ebp - 0x460]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0x454]
call fcn.0040a777
mov esi, eax
cmp esi, edi
jne 0x40b193
push dword [ebp - 0x454]
lea eax, [ebp - 0x144]
push eax
push str._nThe_driver__s_was_successfully_installed_to__s_n
call fcn.00450f5c
add esp, 0xc
mov eax, esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450b32
leave
ret 0xc