Function at 0x404950
Capabilities:
Write file on windows

Disassembly:
mov eax, 0x34a0
call fcn.00407310
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.hf32.exe__file_read_env_12
lea eax, [esp + 0x438]
push eax
call sym.hf32.exe__file_eof_4
test al, al
jne 0x404f56
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.hf32.exe__sys_error_4
test al, al
je 0x4049e7
push edi
call fcn.004047e0
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.hf32.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.hf32.exe__sys_error_4
test al, al
je 0x404a25
push edi
call fcn.004047e0
lea eax, [esp + 0x1c]
push eax
call sym.hf32.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.hf32.exe__string_tkpick80_12
mov eax, dword [esp + 0x18]
sub eax, 1
je 0x404c40
sub eax, 1
je 0x404bdd
sub eax, 1
je 0x404afe
push 1
call fcn.0040a6ac
push eax
push 0x16
push 1
push 0x431620
call fcn.0040a941
mov ax, word [esp + 0x32]
add esp, 0x14
cmp ax, 0x20
jle 0x404aa2
cwde
push 0x434981
sub eax, 0x20
push eax
push 0x431638
call fcn.00401130
mov ax, word [esp + 0x2a]
add esp, 0xc
test ax, ax
jle 0x404ab9
cmp ax, 0x20
jge 0x404ab2
movsx esi, ax
jmp 0x404abb
mov esi, 0x20
jmp 0x404abb
xor esi, esi
push 1
call fcn.0040a6ac
push eax
push esi
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.0040a941
push 1
call fcn.0040a6ac
push eax
push 2
push 1
push 0x43163c
call fcn.0040a941
push 0x431640
call fcn.00401130
add esp, 0x2c
push edi
call fcn.004047e0
jmp 0x404ca6
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.hf32.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.hf32.exe__string_eos_4
test al, al
jne 0x404db0
lea eax, [esp + 0x444]
push eax
call sym.hf32.exe__sys_error_4
test al, al
jne 0x404e47
cmp word [esp + 0x42], 0
jle 0x404e47
push ebp
push ebx
lea eax, [esp + 0x48]
push eax
call fcn.00404760
mov eax, dword [ebx]
xor esi, esi
mov dword [esp + 0x10], eax
test eax, eax
je 0x404b7c
nop dword [eax + eax]
mov esi, eax
mov eax, dword [eax]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x404b70
lea eax, [esp + 0x10]
push eax
push 1
push dword [ebp]
push 0x40c
call sym.hf32.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.hf32.exe__string_copy_8
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test esi, esi
jne 0x404bcf
mov dword [eax + 4], esi
mov eax, dword [esp + 0x10]
mov dword [ebx], eax
jmp 0x404ca6
mov dword [eax + 4], esi
mov eax, dword [esp + 0x10]
mov dword [esi], eax
jmp 0x404ca6
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.hf32.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.hf32.exe__string_eos_4
test al, al
jne 0x404db0
lea eax, [esp + 0x444]
push eax
call sym.hf32.exe__sys_error_4
test al, al
jne 0x404e47
cmp word [esp + 0x42], 0
jle 0x404e47
push ebp
push ebx
lea eax, [esp + 0x48]
push eax
call fcn.00404760
jmp 0x404ca6
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.hf32.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.hf32.exe__string_eos_4
test al, al
jne 0x404db0
lea eax, [esp + 0x444]
push eax
call sym.hf32.exe__sys_error_4
test al, al
jne 0x404e47
cmp word [esp + 0x42], 0
jle 0x404e47
push esi
lea eax, [esp + 0x44]
push eax
call sym.hf32.exe__string_copy_8
push esi
call sym.hf32.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.hf32.exe__string_token_16
lea eax, [esp + 0x444]
push eax
call sym.hf32.exe__string_eos_4
test al, al
jne 0x404d71
push 1
call fcn.0040a6ac
push eax
push 0x21
push 1
push str.Too_many_parameters_for_command__
call fcn.0040a941
mov ax, word [esp + 0x32]
add esp, 0x14
cmp ax, 0x20
jle 0x404d1a
cwde
push 0x434982
sub eax, 0x20
push eax
push 0x431668
call fcn.00401130
mov ax, word [esp + 0x2a]
add esp, 0xc
test ax, ax
jle 0x404d31
cmp ax, 0x20
jge 0x404d2a
movsx esi, ax
jmp 0x404d33
mov esi, 0x20
jmp 0x404d33
xor esi, esi
push 1
call fcn.0040a6ac
push eax
push esi
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.0040a941
push 1
call fcn.0040a6ac
push eax
push 2
push 1
push 0x43166c
call fcn.0040a941
push 0x431670
call fcn.00401130
add esp, 0x2c
push edi
call fcn.004047e0
lea eax, [esp + 0x444]
push eax
lea eax, [esp + 0x14b0]
push eax
push edi
call sym.hf32.exe__file_read_env_12
lea eax, [esp + 0x444]
push eax
call sym.hf32.exe__file_eof_4
mov esi, dword [esp + 0x34b8]
test al, al
je 0x4049d0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x34a0
ret 0x10
push 1
call fcn.0040a6ac
push eax
push 0x1d
push 1
push str.Missing_argument_to_command__
call fcn.0040a941
mov ax, word [esp + 0x32]
add esp, 0x14
cmp ax, 0x20
jle 0x404df0
cwde
push 0x434983
sub eax, 0x20
push eax
push 0x431694
call fcn.00401130
mov ax, word [esp + 0x2a]
add esp, 0xc
test ax, ax
jle 0x404e07
cmp ax, 0x20
jge 0x404e00
movsx esi, ax
jmp 0x404e09
mov esi, 0x20
jmp 0x404e09
xor esi, esi
push 1
call fcn.0040a6ac
push eax
push esi
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.0040a941
push 1
call fcn.0040a6ac
push eax
push 2
push 1
push 0x431698
call fcn.0040a941
push 0x43169c
call fcn.00401130
add esp, 0x2c
push edi
call fcn.004047e0
push 1
call fcn.0040a6ac
push eax
push 0xf
push 1
push 0x4316a0
call fcn.0040a941
mov ax, word [esp + 0x56]
mov ecx, 0x400
add esp, 0x14
cmp ax, cx
jle 0x404e8f
cwde
push 0x4349f8
sub eax, ecx
push eax
push 0x4316b0
call fcn.00401130
mov ax, word [esp + 0x4e]
add esp, 0xc
mov ecx, 0x400
test ax, ax
jle 0x404ea5
cmp ax, cx
jge 0x404e9e
movsx esi, ax
jmp 0x404ea7
mov esi, 0x400
jmp 0x404ea7
xor esi, esi
push 1
call fcn.0040a6ac
push eax
push esi
lea eax, [esp + 0x50]
push 1
push eax
call fcn.0040a941
push 1
call fcn.0040a6ac
push eax
push 0xe
push 1
push 0x4316b4
call fcn.0040a941
mov ax, word [esp + 0x46]
add esp, 0x28
cmp ax, 0x20
jle 0x404efc
cwde
push 0x4349f9
sub eax, 0x20
push eax
push 0x4316c4
call fcn.00401130
mov ax, word [esp + 0x2a]
add esp, 0xc
test ax, ax
jle 0x404f13
cmp ax, 0x20
jge 0x404f0c
movsx esi, ax
jmp 0x404f15
mov esi, 0x20
jmp 0x404f15
xor esi, esi
push 1
call fcn.0040a6ac
push eax
push esi
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.0040a941
push 1
call fcn.0040a6ac
push eax
push 2
push 1
push 0x4316c8
call fcn.0040a941
push 0x4316cc
call fcn.00401130
add esp, 0x2c
push edi
call fcn.004047e0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x34a0
ret 0x10