Function at 0x401000
Capabilities:
Write file on windows

Disassembly:
push str.test_embusb
push dword [esp + 0xc]
push dword [esp + 0xc]
call sym.test_embusb.exe__string_cmline_set_12
call sym.test_embusb.exe__string_cmline_init_0
push 0x42fe88
push section..data
mov dword [0x430ef4], 0
mov dword [0x42fe84], 0
call sym.test_embusb.exe__string_cmline_token_8
push 0x42fe88
call sym.test_embusb.exe__string_eos_4
test al, al
jne 0x4010ea
nop dword [eax]
push 0
push 0x430f08
push 0x42b460
push 0x42b410
push 0x42fe88
call sym.test_embusb.exe__sys_error_abort_20
push section..data
call sym.test_embusb.exe__string_upcase_4
push 0x42fe80
push str._VID__PID
push section..data
call sym.test_embusb.exe__string_tkpick80_12
mov eax, dword [0x42fe80]
sub eax, 1
je 0x4010ab
sub eax, 1
je 0x40109f
call sym.test_embusb.exe__string_cmline_opt_bad_0
jmp 0x4010ba
push 0x42fe88
push 0x42fe84
jmp 0x4010b5
push 0x42fe88
push 0x430ef4
call sym.test_embusb.exe__string_cmline_token_int_8
push section..data
push 0x42fe88
call sym.test_embusb.exe__string_cmline_parm_check_8
push 0x42fe88
push section..data
call sym.test_embusb.exe__string_cmline_token_8
push 0x42fe88
call sym.test_embusb.exe__string_eos_4
test al, al
je 0x401050
movzx eax, word [0x42fe84]
push 0x42fe88
push 0x430ef8
push 0x42dc88
push eax
movzx eax, word [0x430ef4]
push eax
call sym.test_embusb.exe__file_usbid_8
push eax
call sym.test_embusb.exe__file_embusb_list_get_16
push 0
push 0x430f08
push 0x430f10
push 0x430f10
push 0x42fe88
call sym.test_embusb.exe__sys_error_abort_20
push dword [0x430efc]
push 0x42b500
call fcn.00401350
push 1
call fcn.0040887c
push eax
push 8
push 1
push str._Devices
call fcn.00408b11
push 0x42b510
call fcn.00401350
mov eax, dword [0x430f00]
add esp, 0x20
mov dword [0x430ef0], eax
test eax, eax
je 0x401332
push esi
push edi
mov edi, 0x400
nop dword [eax + eax]
push 0x42b514
call fcn.00401350
push 1
call fcn.0040887c
push eax
push 5
push 1
push str.Dev__
call fcn.00408b11
mov eax, dword [0x430ef0]
add esp, 0x18
movzx ecx, word [eax + 0x5e]
cmp cx, di
jle 0x4011d1
movsx eax, cx
push 0x430f0c
sub eax, 0x400
push eax
push 0x42b520
call fcn.00401350
mov eax, dword [0x430ef0]
add esp, 0xc
movzx eax, word [eax + 0x5e]
test ax, ax
jle 0x4011e8
cmp ax, di
jge 0x4011e4
movsx esi, ax
jmp 0x4011ea
mov esi, edi
jmp 0x4011ea
xor esi, esi
push 1
call fcn.0040887c
push eax
mov eax, dword [0x430ef0]
push esi
add eax, 0x60
push 1
push eax
call fcn.00408b11
push 0x22
push 0x42b524
call fcn.00401350
push 1
call fcn.0040887c
push eax
push 6
push 1
push str.__VID
call fcn.00408b11
mov eax, dword [0x430ef0]
movzx eax, word [eax + 6]
push eax
push 0x42b530
call fcn.00401350
push 1
call fcn.0040887c
push eax
push 6
push 1
push str.__PID
call fcn.00408b11
mov eax, dword [0x430ef0]
add esp, 0x4c
movzx eax, word [eax + 4]
push eax
push 0x42b53c
call fcn.00401350
push 1
call fcn.0040887c
push eax
push 8
push 1
push str.__Name__
call fcn.00408b11
mov eax, dword [0x430ef0]
add esp, 0x1c
movzx ecx, word [eax + 0xa]
cmp cx, 0x50
jle 0x4012ac
movsx eax, cx
push 0x430f0d
sub eax, 0x50
push eax
push 0x42b54c
call fcn.00401350
mov eax, dword [0x430ef0]
add esp, 0xc
movzx eax, word [eax + 0xa]
test ax, ax
jle 0x4012c7
cmp ax, 0x50
jge 0x4012c0
movsx esi, ax
jmp 0x4012c9
mov esi, 0x50
jmp 0x4012c9
xor esi, esi
push 1
call fcn.0040887c
push eax
mov eax, dword [0x430ef0]
push esi
add eax, 0xc
push 1
push eax
call fcn.00408b11
push 0x22
push 0x42b550
call fcn.00401350
push 1
call fcn.0040887c
push eax
push 9
push 1
push str.__DRTYPE
call fcn.00408b11
mov eax, dword [0x430ef0]
push dword [eax + 0x460]
push 0x42b560
call fcn.00401350
mov eax, dword [0x430ef0]
add esp, 0x38
mov eax, dword [eax]
mov dword [0x430ef0], eax
test eax, eax
jne 0x401180
pop edi
pop esi
push 0x430ef8
call sym.test_embusb.exe__file_usbdev_list_del_4
xor eax, eax
ret