Function at 0x100018c0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa24
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0xa20], eax
push ebx
push esi
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
push 0x10020184
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x10020184
mov dword [0x1002019c], 1
call esi
push 0x10020184
call ebx
mov ecx, dword [ebp + 8]
mov edx, 0x100201a0
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
or ax, ax
mov word [edx + ecx - 2], ax
jne 0x10001912
push 0x10020184
call esi
push 0
push 0x80000080
push 2
push 0
push 3
push 0x40000000
push 0x100201a0
mov word [esp + 0x28], 0xfeff
mov dword [esp + 0x2c], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x1000197f
push 0
lea edi, [esp + 0x14]
push edi
push 2
lea eax, [esp + 0x18]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.__r_n__HP_USB_Port_Manager_Configuration_Utility_version_1.2.0_r_n
push 0x10020180
call fcn.10003bf0
push str.__A_reboot_is_required_for_these_changes_to_take_effect_r_n__r_n
push 0x10020180
call fcn.10003bf0
push 0x1001b558
push str.HPUSBPortMgr.exe__delete__s_r_n
push 0x10020180
call fcn.10003bf0
mov eax, dword [0x10020164]
sub esp, 0xffffffe4
mov ecx, 0x10020164
mov dword [0x10020168], eax
call fcn.100044b0
or eax, eax
je 0x10001b61
mov esi, dword [0x10020168]
mov eax, 0x3e88cb3d
mov edi, dword [0x10020164]
mov ecx, esi
sub ecx, edi
xor ebx, ebx
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x10], eax
or eax, eax
jle 0x10001ab5
xor ecx, ecx
mov dword [esp + 0xc], ecx
sub esi, edi
mov eax, 0x3e88cb3d
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ebx
jbe 0x10001b78
lea esi, [ecx + edi]
xor eax, eax
mov ecx, 0x83
cmp dword [esp + 0x220], eax
lea edi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov esi, 1
cmovne eax, esi
lea ecx, [esp + 0x18]
push ecx
push eax
movzx eax, byte [esp + 0x220]
push eax
movzx esi, word [esp + 0x228]
push esi
movzx edi, word [esp + 0x22a]
push edi
lea eax, [esp + 0x23c]
push str.VendorID0x_04X_ProductID0x_04X_ClassID0x_02X_Allow0x_02X_Name_s
push eax
call fcn.100078d1
add esp, 0x1c
lea eax, [esp + 0x228]
push eax
push str.HPUSBPortMgr.exe__Add___s__r_n
push 0x10020180
call fcn.10003bf0
inc ebx
mov ecx, dword [esp + 0x18]
add ecx, 0x20c
add esp, 0xc
mov dword [esp + 0xc], ecx
cmp ebx, dword [esp + 0x10]
jge 0x10001ab5
mov esi, dword [0x10020168]
mov edi, dword [0x10020164]
jmp 0x10001a05
lea eax, [esp + 0xc]
mov dword [esp + 0xc], 0
push eax
call fcn.10002510
cmp dword [esp + 0xc], 0
je 0x10001ad5
push str.HPUSBPortMgr.exe__USBF_Enable_r_n
jmp 0x10001ada
push str.HPUSBPortMgr.exe__USBF_Disable_r_n
push 0x10020180
call fcn.10003bf0
sub esp, 0xfffffff8
mov dword [esp + 0x14], 0
lea ecx, [esp + 0x14]
call fcn.10004d00
or eax, eax
jne 0x10001b1d
push 0xffffffffffffffff
xor edi, edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa20]
xor ecx, esp
call fcn.10006e5b
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], 0
jbe 0x10001b2b
push str.HPUSBPortMgr.exe__USBStor_ReadOnly_Enable_r_n
jmp 0x10001b30
push str.HPUSBPortMgr.exe__USBStor_ReadOnly_Disable_r_n
push 0x10020180
call fcn.10003bf0
mov edi, 1
add esp, 8
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa20]
xor ecx, esp
call fcn.10006e5b
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0xa2c]
pop edi
pop esi
pop ebx
xor eax, eax
xor ecx, esp
call fcn.10006e5b
mov esp, ebp
pop ebp
ret
push str.invalid_vector_T__subscript
call fcn.100140e6
int3