Function at 0x4014a9
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
and esp, 0xfffffff0
sub esp, 0x3c0
call sym.___main
mov dword [esp + 0x3bc], 0
mov dword [esp + 0x3b8], 0
mov dword [esp + 0x3b4], 0
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], str.argc___d_n
call sym._printf
cmp dword [ebp + 8], 2
jg 0x401504
call sym._printUsage
mov eax, 2
jmp 0x401c6e
cmp dword [ebp + 8], 4
jne 0x401515
mov dword [esp + 0x3bc], 1
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp], eax
call sym._strlen
lea edx, [eax - 4]
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea eax, [esp + 0x1f]
mov dword [esp], eax
call sym._strncpy
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp], eax
call sym._strlen
sub eax, 4
mov byte [esp + eax + 0x1f], 0
mov dword [esp + 0xc], str._oms.txt
lea eax, [esp + 0x1f]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s_s
lea eax, [esp + 0xe7]
mov dword [esp], eax
call sym._sprintf
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 4], 0x4060ac
mov dword [esp], eax
call sym._fopen
mov dword [0x408070], eax
mov eax, dword [0x408070]
test eax, eax
jne 0x4015cb
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str._tUnable_to_open__s_n
call sym._printf
mov eax, 3
jmp 0x401c6e
mov dword [esp + 4], 0x4060c2
lea eax, [esp + 0xe7]
mov dword [esp], eax
call sym._fopen
mov dword [0x408074], eax
mov eax, dword [0x408074]
test eax, eax
jne 0x401611
lea eax, [esp + 0xe7]
mov dword [esp + 4], eax
mov dword [esp], str._tUnable_to_create__s_file_n
call sym._printf
mov eax, 4
jmp 0x401c6e
mov dword [esp + 0x3b0], 0
jmp 0x4017f5
mov eax, dword [0x408070]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1f4
lea eax, [esp + 0x1af]
mov dword [esp], eax
call sym._fgets
test eax, eax
je 0x4017ed
mov dword [esp + 8], 8
mov dword [esp + 4], str.001FFF8C
lea eax, [esp + 0x1af]
mov dword [esp], eax
call sym._strncmp
test eax, eax
jne 0x4017ed
cmp dword [esp + 0x3bc], 0
je 0x401686
mov dword [esp], str.Parsing_SWPart_number
call sym._puts
mov dword [esp + 0x3b4], 9
mov dword [esp + 0x3ac], 0
jmp 0x4017dd
lea edx, [esp + 0x1af]
mov eax, dword [esp + 0x3b4]
add eax, edx
movzx eax, byte [eax]
cmp al, 0x20
jne 0x4016c0
add dword [esp + 0x3b4], 1
cmp dword [esp + 0x3bc], 0
je 0x4016f0
lea edx, [esp + 0x1af]
mov eax, dword [esp + 0x3b4]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.0x_02x
call sym._printf
mov eax, dword [esp + 0x3b4]
lea edx, [eax + 1]
mov dword [esp + 0x3b4], edx
movzx eax, byte [esp + eax + 0x1af]
movzx eax, al
mov dword [esp], eax
call sym._myA2H
mov byte [esp + 0x3a3], al
cmp dword [esp + 0x3bc], 0
je 0x40174b
lea edx, [esp + 0x1af]
mov eax, dword [esp + 0x3b4]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.0x_02x
call sym._printf
movzx eax, byte [esp + 0x3a3]
movzx eax, al
shl eax, 4
mov ebx, eax
mov eax, dword [esp + 0x3b4]
lea edx, [eax + 1]
mov dword [esp + 0x3b4], edx
movzx eax, byte [esp + eax + 0x1af]
movzx eax, al
mov dword [esp], eax
call sym._myA2H
or eax, ebx
mov byte [esp + 0x3a3], al
cmp dword [esp + 0x3bc], 0
je 0x4017ad
movzx eax, byte [esp + 0x3a3]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], 0x406107
call sym._printf
mov eax, dword [0x408074]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 1
lea eax, [esp + 0x3a3]
mov dword [esp], eax
call sym._fwrite
add dword [esp + 0x3ac], 1
cmp dword [esp + 0x3ac], 0xf
jle 0x4016a1
jmp 0x401803
add dword [esp + 0x3b0], 1
cmp dword [esp + 0x3b0], 6
jle 0x401621
mov eax, dword [0x408070]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1f4
lea eax, [esp + 0x1af]
mov dword [esp], eax
call sym._fgets
mov eax, dword [0x408070]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1f4
lea eax, [esp + 0x1af]
mov dword [esp], eax
call sym._fgets
mov eax, dword [0x408070]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1f4
lea eax, [esp + 0x1af]
mov dword [esp], eax
call sym._fgets
test eax, eax
je 0x401bf3
cmp dword [esp + 0x3bc], 0
je 0x401881
mov dword [esp], str.Parsing_Checksum
call sym._puts
mov dword [esp + 0x3b4], 9
mov dword [esp + 0x3a8], 0
jmp 0x4019d8
lea edx, [esp + 0x1af]
mov eax, dword [esp + 0x3b4]
add eax, edx
movzx eax, byte [eax]
cmp al, 0x20
jne 0x4018bb
add dword [esp + 0x3b4], 1
cmp dword [esp + 0x3bc], 0
je 0x4018eb
lea edx, [esp + 0x1af]
mov eax, dword [esp + 0x3b4]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.0x_02x
call sym._printf
mov eax, dword [esp + 0x3b4]
lea edx, [eax + 1]
mov dword [esp + 0x3b4], edx
movzx eax, byte [esp + eax + 0x1af]
movzx eax, al
mov dword [esp], eax
call sym._myA2H
mov byte [esp + 0x3a3], al
cmp dword [esp + 0x3bc], 0
je 0x401946
lea edx, [esp + 0x1af]
mov eax, dword [esp + 0x3b4]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.0x_02x
call sym._printf
movzx eax, byte [esp + 0x3a3]
movzx eax, al
shl eax, 4
mov ebx, eax
mov eax, dword [esp + 0x3b4]
lea edx, [eax + 1]
mov dword [esp + 0x3b4], edx
movzx eax, byte [esp + eax + 0x1af]
movzx eax, al
mov dword [esp], eax
call sym._myA2H
or eax, ebx
mov byte [esp + 0x3a3], al
cmp dword [esp + 0x3bc], 0
je 0x4019a8
movzx eax, byte [esp + 0x3a3]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.__0x_02x_n
call sym._printf
mov eax, dword [0x408074]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 1
lea eax, [esp + 0x3a3]
mov dword [esp], eax
call sym._fwrite
add dword [esp + 0x3a8], 1
cmp dword [esp + 0x3a8], 3
jle 0x40189c
jmp 0x401bf3
mov dword [esp + 8], 0x1a
mov dword [esp + 4], str.01000100_01000100_01000100
lea eax, [esp + 0x1af]
add eax, 9
mov dword [esp], eax
call sym._strncmp
test eax, eax
jne 0x401a27
mov dword [esp], str.Bad_data_pattern_found___Aborting
call sym._puts
mov eax, 6
jmp 0x401c6e
mov eax, dword [ebp + 0xc]
add eax, 8
mov eax, dword [eax]
mov dword [esp], eax
call sym._strlen
mov edx, eax
mov eax, dword [ebp + 0xc]
add eax, 8
mov eax, dword [eax]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea eax, [esp + 0x1af]
mov dword [esp], eax
call sym._strncmp
test eax, eax
je 0x401a6a
cmp dword [esp + 0x3b8], 0
je 0x401bf3
mov dword [esp + 0x3b8], 1
cmp dword [esp + 0x3bc], 0
je 0x401a8e
lea eax, [esp + 0x1af]
mov dword [esp], eax
call sym._puts
mov dword [esp + 0x3b4], 9
mov dword [esp + 0x3a4], 0
jmp 0x401be5
lea edx, [esp + 0x1af]
mov eax, dword [esp + 0x3b4]
add eax, edx
movzx eax, byte [eax]
cmp al, 0x20
jne 0x401ac8
add dword [esp + 0x3b4], 1
cmp dword [esp + 0x3bc], 0
je 0x401af8
lea edx, [esp + 0x1af]
mov eax, dword [esp + 0x3b4]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.0x_02x
call sym._printf
mov eax, dword [esp + 0x3b4]
lea edx, [eax + 1]
mov dword [esp + 0x3b4], edx
movzx eax, byte [esp + eax + 0x1af]
movzx eax, al
mov dword [esp], eax
call sym._myA2H
mov byte [esp + 0x3a3], al
cmp dword [esp + 0x3bc], 0
je 0x401b53
lea edx, [esp + 0x1af]
mov eax, dword [esp + 0x3b4]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.0x_02x
call sym._printf
movzx eax, byte [esp + 0x3a3]
movzx eax, al
shl eax, 4
mov ebx, eax
mov eax, dword [esp + 0x3b4]
lea edx, [eax + 1]
mov dword [esp + 0x3b4], edx
movzx eax, byte [esp + eax + 0x1af]
movzx eax, al
mov dword [esp], eax
call sym._myA2H
or eax, ebx
mov byte [esp + 0x3a3], al
cmp dword [esp + 0x3bc], 0
je 0x401bb5
movzx eax, byte [esp + 0x3a3]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], 0x406107
call sym._printf
mov eax, dword [0x408074]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 1
lea eax, [esp + 0x3a3]
mov dword [esp], eax
call sym._fwrite
add dword [esp + 0x3a4], 1
cmp dword [esp + 0x3a4], 0xf
jle 0x401aa9
mov eax, dword [0x408070]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1f4
lea eax, [esp + 0x1af]
mov dword [esp], eax
call sym._fgets
test eax, eax
jne 0x4019eb
cmp dword [esp + 0x3b8], 0
jne 0x401c38
mov dword [esp], str._tCould_not_find_the_starting_data_string
call sym._puts
mov eax, 5
jmp 0x401c6e
lea eax, [esp + 0xe7]
mov dword [esp + 4], eax
mov dword [esp], str._tSuccessfully_created_binary_output_file__s_n
call sym._printf
mov eax, dword [0x408070]
mov dword [esp], eax
call sym._fclose
mov eax, dword [0x408074]
mov dword [esp], eax
call sym._fclose
mov eax, 1
mov ebx, dword [ebp - 4]
leave
ret