Function at 0x41b0e0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0xc4
push ebx
push ebp
push esi
mov esi, dword [esp + 0xe4]
mov eax, 0x50
mov word [esp + 0x28], ax
mov edx, 0x400
mov word [esp + 0x7c], ax
mov ecx, 0x100
lea eax, [esi + 4]
mov word [esi + 0x408], cx
mov word [eax], dx
mov dword [esp + 0x18], eax
lea eax, [esi + 0x408]
push edi
mov edi, dword [esp + 0xec]
mov dword [esp + 0x20], eax
lea eax, [esi + 0x50c]
push edi
mov dword [esp + 0x28], eax
mov word [eax], dx
call sym.test_usbprog.exe__sys_error_none_4
lea eax, [esp + 0x14]
push eax
push 0x298c
call sym.test_usbprog.exe__sys_mem_alloc_8
push 0
push 0x438368
push 0x438318
push 0x438318
push dword [esp + 0x24]
call sym.test_usbprog.exe__sys_mem_error_20
mov ebp, dword [esp + 0x14]
push edi
lea ebx, [ebp + 0x5c]
push ebx
push 0
push 0x434670
push dword [esp + 0xe8]
mov dword [esp + 0x3c], ebx
call sym.test_usbprog.exe__file_open_read_env_20
push edi
call sym.test_usbprog.exe__sys_error_4
test al, al
jne 0x41b6f9
mov eax, dword [esp + 0x14]
mov dword [esi + 0x918], eax
mov eax, 0x50
mov word [esi], 0x401
mov byte [esi + 2], 1
mov dword [esi + 0x910], 0
mov dword [esi + 0x91c], 0x41c130
lea esi, [ebp + 0x984]
push ebp
push dword [esp + 0xe0]
mov word [ebp], ax
mov eax, 0x2000
mov word [esi], ax
call sym.test_usbprog.exe__string_copy_8
push ebp
call sym.test_usbprog.exe__string_upcase_4
mov eax, dword [esp + 0xe0]
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0xe4]
mov dword [ebp + 0x58], eax
lea eax, [ebp + 0x980]
push eax
call sym.test_usbprog.exe__sys_langp_curr_get_4
push edi
push esi
push ebx
mov word [ebp + 0x298a], 0x100
mov byte [esp + 0x1e], 0
mov byte [esp + 0x1f], 0
call sym.test_usbprog.exe__file_read_env_12
push edi
call sym.test_usbprog.exe__file_eof_4
test al, al
jne 0x41b63e
push edi
call sym.test_usbprog.exe__sys_error_4
test al, al
jne 0x41b6f3
lea ebx, [ebp + 0x2988]
mov eax, 1
mov word [ebx], ax
cmp byte [ebp + 0x988], 0x20
jne 0x41b26e
mov ecx, eax
movzx eax, cx
inc ecx
cwde
mov word [ebx], cx
movzx edx, cx
cmp byte [eax + ebp + 0x988], 0x20
je 0x41b257
mov eax, edx
cwde
dec eax
cmp eax, 3
ja case.default.0x41b279
jmp dword [eax*4 + 0x41b710]
push edi
lea eax, [esp + 0x30]
mov byte [esp + 0x16], 0
push eax
push ebx
push esi
call sym.test_usbprog.exe__string_token_16
push edi
call sym.test_usbprog.exe__sys_error_4
test al, al
je 0x41b2a6
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
lea eax, [esp + 0x2c]
push eax
call sym.test_usbprog.exe__string_upcase_4
push 0x434648
lea eax, [esp + 0x30]
push eax
call sym.test_usbprog.exe__string_equal_8
test al, al
je case.default.0x41b279
push edi
lea eax, [esp + 0x30]
push eax
push ebx
push esi
call sym.test_usbprog.exe__string_token_16
push edi
call sym.test_usbprog.exe__string_eos_4
test al, al
je 0x41b30b
push 1
call fcn.0040a39c
push eax
push 0x27
push 1
push str.Missing_message_name_after_MSG_command.
call fcn.0040a631
push 0x434740
call fcn.00401f00
add esp, 0x18
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
push edi
call sym.test_usbprog.exe__sys_error_4
test al, al
je 0x41b31f
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
lea eax, [esp + 0x2c]
push eax
call sym.test_usbprog.exe__string_upcase_4
push ebp
lea eax, [esp + 0x30]
push eax
call sym.test_usbprog.exe__string_equal_8
mov byte [esp + 0x12], al
jmp 0x41b555
cmp byte [esp + 0x12], 0
je case.default.0x41b279
push edi
lea eax, [esp + 0x30]
push eax
push ebx
push esi
call sym.test_usbprog.exe__string_token_16
push edi
call sym.test_usbprog.exe__sys_error_4
test al, al
je 0x41b369
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
lea eax, [esp + 0x2c]
push eax
call sym.test_usbprog.exe__string_upcase_4
push 0x43465c
lea eax, [esp + 0x30]
push eax
call sym.test_usbprog.exe__string_equal_8
test al, al
je case.default.0x41b279
push edi
lea eax, [esp + 0x84]
push eax
push ebx
push esi
call sym.test_usbprog.exe__string_token_16
push edi
call sym.test_usbprog.exe__string_eos_4
test al, al
je 0x41b3d1
push 1
call fcn.0040a39c
push eax
push 0x2b
push 1
push str.Missing_language_name_after_LAN_sub_command
call fcn.0040a631
push 0x434770
call fcn.00401f00
add esp, 0x18
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
push edi
call sym.test_usbprog.exe__sys_error_4
test al, al
je 0x41b3e5
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
lea eax, [esp + 0x80]
push eax
call sym.test_usbprog.exe__string_upcase_4
push dword [ebp + 0x980]
lea eax, [esp + 0x84]
push eax
call sym.test_usbprog.exe__string_equal_8
push edi
mov byte [esp + 0x17], al
lea eax, [esp + 0x30]
push eax
push ebx
push esi
call sym.test_usbprog.exe__string_token_16
push edi
call sym.test_usbprog.exe__string_eos_4
test al, al
jne 0x41b555
push edi
call sym.test_usbprog.exe__sys_error_4
test al, al
je 0x41b438
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
lea eax, [esp + 0x2c]
push eax
call sym.test_usbprog.exe__string_upcase_4
lea eax, [esp + 0x18]
push eax
push str._DEF
lea eax, [esp + 0x34]
push eax
call sym.test_usbprog.exe__string_tkpick80_12
mov eax, dword [esp + 0x18]
sub eax, 1
je 0x41b506
push 1
call fcn.0040a39c
push eax
push 0x21
push 1
push str.Unrecognized_LAN_command_option__
call fcn.0040a631
mov ax, word [esp + 0x42]
add esp, 0x14
cmp ax, 0x50
jle 0x41b4a3
cwde
push 0x43836c
sub eax, 0x50
push eax
push 0x434798
call fcn.00401f00
mov ax, word [esp + 0x3a]
add esp, 0xc
test ax, ax
jle 0x41b4ba
cmp ax, 0x50
jge 0x41b4b3
movsx esi, ax
jmp 0x41b4bc
mov esi, 0x50
jmp 0x41b4bc
xor esi, esi
push 1
call fcn.0040a39c
push eax
push esi
lea eax, [esp + 0x3c]
push 1
push eax
call fcn.0040a631
push 1
call fcn.0040a39c
push eax
push 2
push 1
push 0x43479c
call fcn.0040a631
push 0x4347a0
call fcn.00401f00
add esp, 0x2c
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
lea esi, [ebp + 0x984]
jmp 0x41b50b
mov byte [esp + 0x13], 1
push edi
lea eax, [esp + 0x30]
push eax
push ebx
push esi
call sym.test_usbprog.exe__string_token_16
push edi
call sym.test_usbprog.exe__string_eos_4
test al, al
je 0x41b424
jmp 0x41b555
push 1
call fcn.0040a39c
push eax
push 0x21
push 1
push str.Illegal_starting_column_for_text.
call fcn.0040a631
push 0x4347c8
call fcn.00401f00
add esp, 0x18
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
push edi
lea eax, [esp + 0x30]
push eax
push ebx
push esi
call sym.test_usbprog.exe__string_token_16
push edi
call sym.test_usbprog.exe__string_eos_4
test al, al
jne 0x41b611
push 1
call fcn.0040a39c
push eax
push 0x29
push 1
push str.Too_many_tokens.__First_excess_token_is__
call fcn.0040a631
mov ax, word [esp + 0x42]
add esp, 0x14
cmp ax, 0x50
jle 0x41b5b0
cwde
push 0x43836d
sub eax, 0x50
push eax
push 0x4347f8
call fcn.00401f00
mov ax, word [esp + 0x3a]
add esp, 0xc
test ax, ax
jle 0x41b5c7
cmp ax, 0x50
jge 0x41b5c0
movsx esi, ax
jmp 0x41b5c9
mov esi, 0x50
jmp 0x41b5c9
xor esi, esi
push 1
call fcn.0040a39c
push eax
push esi
lea eax, [esp + 0x3c]
push 1
push eax
call fcn.0040a631
push 1
call fcn.0040a39c
push eax
push 2
push 1
push 0x4347fc
call fcn.0040a631
push 0x434800
call fcn.00401f00
add esp, 0x2c
lea eax, [esp + 0x14]
push eax
call fcn.0041afd0
lea esi, [ebp + 0x984]
push edi
call sym.test_usbprog.exe__sys_error_4
test al, al
jne 0x41b6ef
cmp byte [esp + 0x13], al
jne 0x41b679
push edi
push esi
lea ebx, [ebp + 0x5c]
push ebx
call sym.test_usbprog.exe__file_read_env_12
push edi
call sym.test_usbprog.exe__file_eof_4
test al, al
je 0x41b230
push edi
push 7
push 0xfffffffffffffffd
call sym.test_usbprog.exe__sys_stat_set_12
push edi
push dword [esp + 0xdc]
call sym.test_usbprog.exe__sys_stat_parm_vstr_8
movzx eax, word [0x4346c4]
push eax
push str..msg
lea eax, [esp + 0x34]
push eax
call sym.test_usbprog.exe__string_vstring_12
push edi
lea eax, [esp + 0x30]
push eax
call sym.test_usbprog.exe__sys_stat_parm_vstr_8
jmp 0x41b6f3
push dword [esp + 0x1c]
lea eax, [ebp + 0x60]
push eax
call sym.test_usbprog.exe__string_copy_8
push dword [esp + 0x20]
lea eax, [ebp + 0x464]
push eax
call sym.test_usbprog.exe__string_copy_8
push dword [esp + 0x24]
lea eax, [ebp + 0x568]
push eax
call sym.test_usbprog.exe__string_copy_8
mov ecx, dword [esp + 0xe8]
mov eax, dword [ebp + 0x970]
mov dword [ecx + 0x914], eax
lea eax, [ebp + 0x980]
push eax
lea eax, [esp + 0x84]
push eax
call sym.test_usbprog.exe__sys_langp_get_8
xor eax, eax
pop edi
mov word [ebp + 0x986], ax
mov eax, 1
pop esi
mov word [ebp + 0x2988], ax
pop ebp
pop ebx
add esp, 0xc4
ret 0x18
mov ebx, dword [esp + 0x28]
push ebx
call sym.test_usbprog.exe__file_close_4
lea eax, [esp + 0x14]
push eax
call sym.test_usbprog.exe__sys_mem_dealloc_4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret 0x18