Function at 0x41f330
Capabilities:
Write file on windows

Disassembly:
mov eax, 0x34a0
call fcn.00406cc0
mov eax, 0x2000
mov word [esp + 0x149c], ax
mov eax, 0x20
mov word [esp + 0xc], ax
mov eax, 0x400
push edi
mov edi, dword [esp + 0x34a8]
mov word [esp + 0x34], ax
lea eax, [esp + 0x438]
push eax
lea eax, [esp + 0x14a4]
push eax
push edi
call sym.test_usbprog.exe__file_read_env_12
lea eax, [esp + 0x438]
push eax
call sym.test_usbprog.exe__file_eof_4
test al, al
jne 0x41f936
push ebx
mov ebx, dword [esp + 0x34b4]
push ebp
mov ebp, dword [esp + 0x34bc]
push esi
mov esi, dword [esp + 0x34b8]
nop word [eax + eax]
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__sys_error_4
test al, al
je 0x41f3c7
push edi
call fcn.0041f1c0
lea eax, [esp + 0x444]
mov dword [esp + 0x14], 1
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x14b8]
push eax
call sym.test_usbprog.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__sys_error_4
test al, al
je 0x41f405
push edi
call fcn.0041f1c0
lea eax, [esp + 0x1c]
push eax
call sym.test_usbprog.exe__string_upcase_4
lea eax, [esp + 0x18]
push eax
push str.LANGUAGE_ENV_PATH_DEL_ENV_PATH_ADD
lea eax, [esp + 0x24]
push eax
call sym.test_usbprog.exe__string_tkpick80_12
mov eax, dword [esp + 0x18]
sub eax, 1
je 0x41f620
sub eax, 1
je 0x41f5bd
sub eax, 1
je 0x41f4de
push 1
call fcn.0040a39c
push eax
push 0x16
push 1
push str.Unrecognized_command__
call fcn.0040a631
mov ax, word [esp + 0x32]
add esp, 0x14
cmp ax, 0x20
jle 0x41f482
cwde
push 0x438561
sub eax, 0x20
push eax
push 0x4350e0
call fcn.00401f00
mov ax, word [esp + 0x2a]
add esp, 0xc
test ax, ax
jle 0x41f499
cmp ax, 0x20
jge 0x41f492
movsx esi, ax
jmp 0x41f49b
mov esi, 0x20
jmp 0x41f49b
xor esi, esi
push 1
call fcn.0040a39c
push eax
push esi
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.0040a631
push 1
call fcn.0040a39c
push eax
push 2
push 1
push 0x4350e4
call fcn.0040a631
push 0x4350e8
call fcn.00401f00
add esp, 0x2c
push edi
call fcn.0041f1c0
jmp 0x41f686
lea eax, [esp + 0x444]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x14b8]
push eax
call sym.test_usbprog.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__string_eos_4
test al, al
jne 0x41f790
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__sys_error_4
test al, al
jne 0x41f827
cmp word [esp + 0x42], 0
jle 0x41f827
push ebp
push ebx
lea eax, [esp + 0x48]
push eax
call fcn.0041f140
mov eax, dword [ebx]
xor esi, esi
mov dword [esp + 0x10], eax
test eax, eax
je 0x41f55c
nop dword [eax + eax]
mov esi, eax
mov eax, dword [eax]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41f550
lea eax, [esp + 0x10]
push eax
push 1
push dword [ebp]
push 0x40c
call sym.test_usbprog.exe__util_mem_grab_16
mov eax, dword [esp + 0x10]
mov ecx, 0x400
mov word [eax + 8], cx
mov eax, dword [esp + 0x10]
add eax, 8
push eax
lea eax, [esp + 0x44]
push eax
call sym.test_usbprog.exe__string_copy_8
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test esi, esi
jne 0x41f5af
mov dword [eax + 4], esi
mov eax, dword [esp + 0x10]
mov dword [ebx], eax
jmp 0x41f686
mov dword [eax + 4], esi
mov eax, dword [esp + 0x10]
mov dword [esi], eax
jmp 0x41f686
lea eax, [esp + 0x444]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x14b8]
push eax
call sym.test_usbprog.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__string_eos_4
test al, al
jne 0x41f790
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__sys_error_4
test al, al
jne 0x41f827
cmp word [esp + 0x42], 0
jle 0x41f827
push ebp
push ebx
lea eax, [esp + 0x48]
push eax
call fcn.0041f140
jmp 0x41f686
lea eax, [esp + 0x444]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x14b8]
push eax
call sym.test_usbprog.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__string_eos_4
test al, al
jne 0x41f790
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__sys_error_4
test al, al
jne 0x41f827
cmp word [esp + 0x42], 0
jle 0x41f827
push esi
lea eax, [esp + 0x44]
push eax
call sym.test_usbprog.exe__string_copy_8
push esi
call sym.test_usbprog.exe__string_upcase_4
lea eax, [esp + 0x444]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x14b8]
push eax
call sym.test_usbprog.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__string_eos_4
test al, al
jne 0x41f751
push 1
call fcn.0040a39c
push eax
push 0x21
push 1
push str.Too_many_parameters_for_command__
call fcn.0040a631
mov ax, word [esp + 0x32]
add esp, 0x14
cmp ax, 0x20
jle 0x41f6fa
cwde
push 0x438562
sub eax, 0x20
push eax
push 0x435110
call fcn.00401f00
mov ax, word [esp + 0x2a]
add esp, 0xc
test ax, ax
jle 0x41f711
cmp ax, 0x20
jge 0x41f70a
movsx esi, ax
jmp 0x41f713
mov esi, 0x20
jmp 0x41f713
xor esi, esi
push 1
call fcn.0040a39c
push eax
push esi
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.0040a631
push 1
call fcn.0040a39c
push eax
push 2
push 1
push 0x435114
call fcn.0040a631
push 0x435118
call fcn.00401f00
add esp, 0x2c
push edi
call fcn.0041f1c0
lea eax, [esp + 0x444]
push eax
lea eax, [esp + 0x14b0]
push eax
push edi
call sym.test_usbprog.exe__file_read_env_12
lea eax, [esp + 0x444]
push eax
call sym.test_usbprog.exe__file_eof_4
mov esi, dword [esp + 0x34b8]
test al, al
je 0x41f3b0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x34a0
ret 0x10
push 1
call fcn.0040a39c
push eax
push 0x1d
push 1
push str.Missing_argument_to_command__
call fcn.0040a631
mov ax, word [esp + 0x32]
add esp, 0x14
cmp ax, 0x20
jle 0x41f7d0
cwde
push 0x438563
sub eax, 0x20
push eax
push 0x43513c
call fcn.00401f00
mov ax, word [esp + 0x2a]
add esp, 0xc
test ax, ax
jle 0x41f7e7
cmp ax, 0x20
jge 0x41f7e0
movsx esi, ax
jmp 0x41f7e9
mov esi, 0x20
jmp 0x41f7e9
xor esi, esi
push 1
call fcn.0040a39c
push eax
push esi
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.0040a631
push 1
call fcn.0040a39c
push eax
push 2
push 1
push 0x435140
call fcn.0040a631
push 0x435144
call fcn.00401f00
add esp, 0x2c
push edi
call fcn.0041f1c0
push 1
call fcn.0040a39c
push eax
push 0xf
push 1
push 0x435148
call fcn.0040a631
mov ax, word [esp + 0x56]
mov ecx, 0x400
add esp, 0x14
cmp ax, cx
jle 0x41f86f
cwde
push 0x4385d8
sub eax, ecx
push eax
push 0x435158
call fcn.00401f00
mov ax, word [esp + 0x4e]
add esp, 0xc
mov ecx, 0x400
test ax, ax
jle 0x41f885
cmp ax, cx
jge 0x41f87e
movsx esi, ax
jmp 0x41f887
mov esi, 0x400
jmp 0x41f887
xor esi, esi
push 1
call fcn.0040a39c
push eax
push esi
lea eax, [esp + 0x50]
push 1
push eax
call fcn.0040a631
push 1
call fcn.0040a39c
push eax
push 0xe
push 1
push 0x43515c
call fcn.0040a631
mov ax, word [esp + 0x46]
add esp, 0x28
cmp ax, 0x20
jle 0x41f8dc
cwde
push 0x4385d9
sub eax, 0x20
push eax
push 0x43516c
call fcn.00401f00
mov ax, word [esp + 0x2a]
add esp, 0xc
test ax, ax
jle 0x41f8f3
cmp ax, 0x20
jge 0x41f8ec
movsx esi, ax
jmp 0x41f8f5
mov esi, 0x20
jmp 0x41f8f5
xor esi, esi
push 1
call fcn.0040a39c
push eax
push esi
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.0040a631
push 1
call fcn.0040a39c
push eax
push 2
push 1
push 0x435170
call fcn.0040a631
push 0x435174
call fcn.00401f00
add esp, 0x2c
push edi
call fcn.0041f1c0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x34a0
ret 0x10