Function at 0x4012d0
Capabilities:
Create directory
Delete registry key
Get common file path
Shutdown system
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x41225b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x108
push esi
push edi
lea eax, [esp + 0x10]
push 0xff
mov esi, ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov ecx, dword [0x417498]
mov dword [esp + 8], ecx
lea edx, [esp + 0x10]
lea ecx, [esp + 8]
push edx
mov dword [esp + 0x11c], 0
call fcn.0040cb2f
push str.Drivers_
lea ecx, [esp + 0xc]
call fcn.0040cbf3
mov eax, dword [esp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0
push eax
call edi
push str.iusb2_
lea ecx, [esp + 0xc]
call fcn.0040cbf3
mov ecx, dword [esp + 8]
push 0
push ecx
call edi
test eax, eax
je 0x4013af
push str.owciusb2.ina
push str.Driversiusb2iusb2.inf
mov ecx, esi
call 0x401540
push str.owciusbehci.sys
push str.Driversiusb2iusbehci.sys
mov ecx, esi
call 0x401540
push str.owciusb2hub.sys
push str.Driversiusb2iusb2hub.sys
mov ecx, esi
call 0x401540
push str.owcUninst.exe
push str.Driversiusb2Uninst.exe
mov ecx, esi
call 0x401540
push str.owcUnusb20.exe
push str.Driversiusb2Unusb20.exe
mov ecx, esi
call 0x401540
push str.owciusb2.ina
push str.infiusb2.inf
mov ecx, esi
call 0x401540
push str.owciusbehci.sys
push str._system32driversiusbehci.sys
mov ecx, esi
call 0x401540
push str.owciusb2hub.sys
push str._system32driversiusb2hub.sys
mov ecx, esi
call 0x401540
mov ecx, esi
call fcn.00401630
test eax, eax
jne 0x401405
mov edx, dword [esi]
push eax
push eax
push str.Get_del_key_fail___
mov ecx, esi
call dword [edx + 0x8c]
push 0
call fcn.00402466
lea eax, [esp + 0xc]
push eax
push 0xf003f
push 0
push str.EnumPCI
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40151d
mov eax, dword [esi + 0xc4]
mov ecx, dword [esp + 0xc]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
jne 0x4014f8
mov edx, dword [esp + 0xc]
push ebx
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esi + 0xc0]
mov edi, str._s__f2_c:csb.log_
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x401482
test cl, cl
je 0x40147e
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x401482
add eax, 2
add edi, 2
test cl, cl
jne 0x40145a
xor eax, eax
jmp 0x401487
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
pop ebx
mov ecx, esi
jne 0x40149a
call fcn.00401810
push 0
call fcn.00402466
call fcn.00401810
mov eax, dword [esi]
push 0
push 0x31
push str.Install_finished_You_need_to_reboot___
mov ecx, esi
call dword [eax + 0x8c]
cmp eax, 1
jne 0x4014ec
push 0
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
lea ecx, [esp + 8]
mov dword [esp + 0x118], 0xffffffff
call fcn.0040ca88
mov ecx, dword [esp + 0x110]
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x114
ret
cmp eax, 2
jne 0x4014c1
push 0
call fcn.00402466
mov edx, dword [esi]
push 0
push 0
push str.Delete_Key_Fail__
mov ecx, esi
call dword [edx + 0x8c]
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
call fcn.00402466
mov edx, dword [esi]
push 0
push 0
push str.Open_Key_Fail__
mov ecx, esi
call dword [edx + 0x8c]
push 0
call fcn.00402466
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0xffffffffffffffff
push 0x412286
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10c
mov eax, dword [0x417498]
push esi
mov dword [esp + 4], eax
mov dword [esp + 0x118], 0
mov dword [esp + 8], eax
lea esi, [ecx + 0xd4]
mov byte [esp + 0x118], 1
push esi
push 0x32
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push esi
lea ecx, [esp + 8]
call fcn.0040cb2f
mov eax, dword [esp + 0x124]
lea ecx, [esp + 4]
push eax
call fcn.0040cbf3
lea ecx, [esp + 0xc]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea edx, [esp + 0xc]
lea ecx, [esp + 8]
push edx
call fcn.0040cb2f
mov eax, dword [esp + 0x120]
lea ecx, [esp + 8]
push eax
call fcn.0040cbf3
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push 0
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [esp + 8]
mov byte [esp + 0x118], 0
call fcn.0040ca88
lea ecx, [esp + 4]
mov dword [esp + 0x118], 0xffffffff
call fcn.0040ca88
mov ecx, dword [esp + 0x110]
pop esi
mov dword fs:[0], ecx
add esp, 0x118
ret 8