Function at 0x40ab50
Capabilities:
Copy file
Create service
Get common file path

Disassembly:
push ebx
push esi
push edi
push 0x104
push 0x43934c
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, 0x43934c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jae 0x40abaa
mov eax, dword [0x548160]
push 0x10
push str._Initialize
push str.Windows_directory_error
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x548160]
push 0x81
push ecx
call dword [sym.imp.USER32.dll_EndDialog]
pop edi
pop esi
mov eax, 1
pop ebx
ret
or ecx, 0xffffffff
mov edi, 0x43934c
xor eax, eax
mov ebx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
shr ecx, 2
mov edi, 0x54e530
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, str.SYSTEM32DRIVERS_
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, 0x54e530
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
or ecx, 0xffffffff
mov edi, 0x54e530
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..SYS
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x54e530
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x418e18
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x54e428
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x54e530
mov esi, edi
mov edx, ecx
mov edi, 0x54e428
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x54e428
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..SYS
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x54e428
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x40ad19
push 0x54e428
push str.Failed_in_copying_source_file__s
push 0x54e3a8
call fcn.0040cce6
mov eax, dword [0x548160]
add esp, 0xc
push 0x10
push str._Install_Driver
push 0x54e3a8
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
ret
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov esi, eax
test esi, esi
jne 0x40ad4d
mov ecx, dword [0x548160]
push 0x10
push str._Install_Driver
push str.Please_check_your_privilege__Administrator_
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
ret
push 0
push 0
push 0
push 0
push 0
push 0x54e530
push 1
push 0
push 1
push 0xf01ff
push ebx
push ebx
push esi
call dword [sym.imp.ADVAPI32.dll_CreateServiceA]
mov edi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test eax, eax
je 0x40ad7d
push eax
call edi
push esi
call edi
push ebx
call fcn.0040a900
add esp, 4
test eax, eax
jne 0x40adab
mov edx, dword [0x548160]
push eax
push str._Install_Driver
push str.Please_check_your_privilege__Administrator_
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
ret
push ebx
push str.Install__s_driver_completed___r_nplease_restart_to_load.
push 0x54e3a8
call fcn.0040cce6
mov eax, dword [0x548160]
add esp, 0xc
push 0x40
push str._Install_Driver
push 0x54e3a8
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
mov eax, 1
pop ebx
ret