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

Disassembly:
push ebx
push esi
push edi
push 0x104
push 0x4376cc
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, 0x4376cc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jae 0x40523a
mov eax, dword [0x43783c]
push 0x10
push str._Initialize
push str.Windows_directory_error
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x43783c]
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, 0x4376cc
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, 0x43e560
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, 0x43e560
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, 0x43e560
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, 0x43e560
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, 0x40f278
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x43e668
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 0x43e560
mov esi, edi
mov edx, ecx
mov edi, 0x43e668
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 0x43e668
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, 0x43e668
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 0x4053a9
push 0x43e668
push str.Failed_in_copying_source_file__s
push 0x43e4e0
call fcn.004059a0
mov eax, dword [0x43783c]
add esp, 0xc
push 0x10
push str._Install_Driver
push 0x43e4e0
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 0x4053dd
mov ecx, dword [0x43783c]
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 0x43e560
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 0x40540d
push eax
call edi
push esi
call edi
push ebx
call fcn.00404f90
add esp, 4
test eax, eax
jne 0x40543b
mov edx, dword [0x43783c]
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 0x43e4e0
call fcn.004059a0
mov eax, dword [0x43783c]
add esp, 0xc
push 0x40
push str._Install_Driver
push 0x43e4e0
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
mov eax, 1
pop ebx
ret