Function at 0x402700
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x70
mov esi, dword [ebp + 0xc]
call dbg.__main
cmp dword [ebp + 8], 4
je 0x4027f1
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x59
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.First_two_inputs_must_be_in_CSV_format_with_semicolon_separators_lastly_the_colon_number_n
call sym._fwrite
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x40275d
mov dword [esp], eax
call sym._fclose
test ebx, ebx
je 0x402769
mov dword [esp], ebx
call sym._fclose
mov eax, dword [esp + 0x58]
test eax, eax
je 0x402779
mov dword [esp], eax
call sym._fclose
mov eax, dword [esp + 0x30]
test eax, eax
je 0x402789
mov dword [esp], eax
call sym._fclose
mov eax, dword [esp + 0x28]
test eax, eax
je 0x402799
mov dword [esp], eax
call sym._fclose
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._free
mov eax, esi
lea esp, [ebp - 0xc]
xor eax, 1
pop ebx
pop esi
movzx eax, al
pop edi
pop ebp
ret
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call sym._atoi
sub eax, 1
mov dword [esp + 0x24], eax
js 0x402d8c
mov dword [esp + 4], 0x4050c6
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym._fopen
mov dword [esp + 0x30], eax
test eax, eax
je 0x40305d
mov dword [esp + 4], 0x4050c6
mov eax, dword [esi + 8]
mov dword [esp], eax
call sym._fopen
mov dword [esp + 0x28], eax
test eax, eax
je 0x403091
call sym._tmpfile
mov dword [esp + 0x58], eax
call sym._tmpfile
mov ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym._fgetc
mov edi, eax
add al, 1
je 0x402e09
mov dword [esp + 0x5c], ebx
mov esi, dword [esp + 0x30]
lea esi, [esi]
mov eax, edi
xor ebx, ebx
cmp al, 0xd
je 0x40289c
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, edi
movsx eax, al
mov dword [esp], eax
call sym._fputc
mov eax, edi
cmp al, 0xa
sete bl
mov dword [esp], esi
call sym._fgetc
mov edi, eax
cmp al, 0xff
jne 0x402878
mov esi, ebx
mov ebx, dword [esp + 0x5c]
mov eax, esi
test al, al
je 0x402e09
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call sym._rewind
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sym._fgetc
mov edi, eax
add al, 1
je 0x402df4
mov esi, dword [esp + 0x28]
mov edx, edi
mov edi, ebx
lea esi, [esi]
xor ebx, ebx
cmp dl, 0xd
je 0x40290d
movsx eax, dl
mov dword [esp + 4], edi
mov dword [esp], eax
mov byte [esp + 0x5c], dl
call sym._fputc
movzx edx, byte [esp + 0x5c]
cmp dl, 0xa
sete bl
mov dword [esp], esi
call sym._fgetc
mov edx, eax
cmp al, 0xff
jne 0x4028e8
mov esi, ebx
mov ebx, edi
mov eax, esi
test al, al
je 0x402df4
mov dword [esp], ebx
mov edi, 1
call sym._rewind
mov esi, dword [esp + 0x58]
mov dword [esp], esi
call sym._fgetc
cmp al, 0xa
je 0x40295f
lea esi, [esi]
lea esi, [esi]
mov dword [esp], esi
add edi, 1
call sym._fgetc
cmp al, 0xa
jne 0x402950
mov dword [esp], edi
xor esi, esi
call sym._malloc
xor edx, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], edx
test eax, eax
je 0x4031cf
lea esi, [esi]
nop
mov eax, dword [esp + 0x58]
add esi, 1
mov dword [esp], eax
call sym._fgetc
cmp al, 0xa
je 0x402d00
cmp al, 0xff
jne 0x402980
mov esi, dword [esp + 0x58]
mov dword [esp], esi
call sym._rewind
mov eax, dword [esp + 0x50]
mov ecx, esi
mov edx, edi
call sym._getline
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sym._malloc
mov dword [esp + 0x4c], eax
test eax, eax
je 0x40326f
xor eax, eax
xor esi, esi
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x54], eax
xor edi, edi
lea esi, [esi]
mov dword [esp], ebx
add edi, 1
call sym._fgetc
cmp al, 0x3b
je 0x402d38
cmp al, 0xff
jne 0x4029e0
mov dword [esp], ebx
call sym._rewind
mov eax, dword [esp + 0x54]
add eax, 4
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
imul esi, eax
add esi, 1
mov dword [esp], esi
xor esi, esi
call sym._malloc
mov dword [esp + 0x34], eax
test eax, eax
je 0x4032a3
lea esi, [esi]
mov dword [esp], ebx
call sym._fgetc
cmp al, 0x3b
je 0x402d14
cmp al, 0xff
jne 0x402a30
mov eax, dword [esp + 0x34]
mov byte [eax + esi], 0
mov dword [esp], ebx
call sym._rewind
xor eax, eax
mov dword [esp + 0x40], eax
lea esi, [esi]
mov dword [esp], ebx
call sym._fgetc
cmp al, 0xa
je 0x402cf0
cmp al, 0xff
jne 0x402a60
mov dword [esp], ebx
call sym._rewind
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov eax, esi
imul eax, ecx
mov dword [esp], eax
call sym._malloc
mov dword [esp + 0x2c], eax
cmp esi, 0x105
jg 0x402dc0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym._malloc
mov dword [esp + 0x20], eax
mov esi, eax
test eax, eax
je 0x40323b
cmp dword [esp + 0x40], 0
je 0x402b9c
mov eax, dword [esp + 0x2c]
xor edi, edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x48], eax
lea esi, [esi]
xor edi, edi
jmp 0x402aec
mov byte [esi + edi - 1], al
cmp al, 0xff
je 0x402e28
mov dword [esp], ebx
call sym._fgetc
mov ecx, edi
add edi, 1
cmp al, 0x3b
jne 0x402ae0
movzx eax, word [0x405318]
mov byte [esi + ecx], 0x2e
mov byte [esi + edi], 0x63
mov word [esi + ecx + 2], ax
mov byte [esi + ecx + 4], 0
lea esi, [esi]
lea esi, [esi]
mov dword [esp], ebx
call sym._fgetc
cmp eax, 0xa
jne 0x402b20
mov eax, dword [esp + 0x48]
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._strcpy
mov dword [esp + 4], 0x405239
mov dword [esp], esi
call sym._fopen
mov edi, eax
test eax, eax
je 0x4030c5
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sym._fputs
mov dword [esp + 4], edi
mov dword [esp], 0xa
call sym._fputc
mov dword [esp], edi
call sym._fclose
add dword [esp + 0x54], 1
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x38]
add dword [esp + 0x48], edx
cmp eax, ecx
jne 0x402ad8
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call sym._malloc
mov dword [esp + 0x1c], eax
test eax, eax
je 0x403201
mov edi, dword [esp + 0x58]
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp], edi
call sym._fgetpos
xor eax, eax
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
lea esi, [esi]
mov dword [esp], edi
call sym._fgetc
cmp eax, 0xffffffff
je 0x403103
lea eax, [esp + 0x68]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._fsetpos
mov eax, dword [esp + 0x24]
test eax, eax
je 0x402c3d
mov ebx, eax
lea esi, [esi]
nop
mov dword [esp], edi
call sym._fgetc
xor edx, edx
cmp al, 0x3b
sete dl
sub ebx, edx
setne dl
cmp al, 0xa
setne cl
and dl, cl
jne 0x402c18
cmp al, 0xa
je 0x403117
mov dword [esp], edi
call sym._fgetc
mov byte [esi], al
cmp al, 0xa
je 0x402e5c
cmp al, 0x3b
lea ebx, [esi + 1]
setne al
test al, al
je 0x402e5c
nop
mov dword [esp], edi
call sym._fgetc
mov edx, ebx
mov byte [ebx], al
cmp al, 0x3b
je 0x402e5e
cmp al, 0xa
je 0x402e5e
add ebx, 1
mov eax, ebx
sub eax, esi
sub eax, 1
cmp dword [esp + 0x5c], eax
jge 0x402c60
cmp dword [esp + 0x3c], 0
je 0x403014
lea eax, [esp + 0x68]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._fsetpos
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ecx, edi
call sym._getline
lea ecx, [esp + 0x68]
mov dword [esp], edi
mov dword [esp + 4], ecx
call sym._fgetpos
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._fputs
mov dword [esp + 4], ebx
mov dword [esp], 0xa
call sym._fputc
jmp 0x402be8
add dword [esp + 0x40], 1
jmp 0x402a60
mov eax, dword [esp + 0x44]
cmp eax, esi
cmovge esi, eax
mov dword [esp + 0x44], esi
xor esi, esi
jmp 0x402980
mov edi, dword [esp + 0x34]
lea esi, [esi]
nop
mov dword [esp], ebx
add esi, 1
call sym._fgetc
mov byte [edi + esi - 1], al
cmp al, 0xa
jne 0x402d20
jmp 0x402a30
mov eax, dword [esp + 0x54]
cmp eax, edi
cmovge edi, eax
mov dword [esp + 0x54], edi
xor edi, edi
lea esi, [esi]
nop
mov dword [esp], ebx
add edi, 1
call sym._fgetc
cmp al, 0x3b
je 0x402d78
cmp al, 0xa
jne 0x402d50
mov eax, dword [esp + 0x5c]
cmp eax, edi
cmovge edi, eax
add esi, 1
mov dword [esp + 0x5c], edi
jmp 0x4029da
mov eax, dword [esp + 0x5c]
add esi, 1
cmp eax, edi
cmovge edi, eax
mov dword [esp + 0x5c], edi
xor edi, edi
jmp 0x402d50
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x25
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.invalid_colon_number:_negative_colon_n
call sym._fwrite
jmp 0x40274d
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x2f
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.Name_in_FILTER_is_bigger_than_maximum_filename_n
call sym._fwrite
jmp 0x40274d
mov dword [esp + 4], ebx
mov dword [esp], 0xa
call sym._fputc
jmp 0x402929
mov eax, dword [esp + 0x58]
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sym._fputc
jmp 0x4028ba
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x16
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.badly_formated_filter_n
call sym._fwrite
jmp 0x40274d
mov edx, esi
lea eax, [esp + 0x68]
mov byte [edx], 0
mov dword [esp + 4], eax
mov dword [esp], edi
call sym._fsetpos
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ecx, edi
call sym._getline
lea eax, [esp + 0x68]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._fgetpos
mov ecx, dword [esp + 0x34]
movzx edx, byte [ecx]
test dl, dl
je 0x402f1f
xor ebx, ebx
mov dword [esp + 0x20], edi
xor eax, eax
mov dword [esp + 0x40], ebx
xor ebx, ebx
mov edi, ebx
movzx ebx, byte [esi + edi]
cmp dl, 0x3b
mov byte [esp + 0x54], bl
sete bl
cmp dl, 0xa
sete byte [esp + 0x48]
or bl, byte [esp + 0x48]
cmp byte [esp + 0x54], 0
jne 0x402f78
test bl, bl
jne 0x402fb8
movzx edx, byte [ecx + eax]
cmp dl, 0xa
je 0x402f01
cmp dl, 0x3b
je 0x402f01
lea esi, [esi]
add eax, 1
movzx edx, byte [ecx + eax]
cmp dl, 0x3b
je 0x402f01
cmp dl, 0xa
jne 0x402ef0
cmp dl, 0xa
sete dl
add eax, 1
xor edi, edi
movzx edx, dl
add dword [esp + 0x40], edx
movzx edx, byte [ecx + eax]
test dl, dl
jne 0x402eaf
mov edi, dword [esp + 0x20]
cmp dword [esp + 0x3c], 0
jne 0x402cc6
mov dword [esp + 4], 0x405239
mov dword [esp], str.unfiltered.csv
call sym._fopen
mov dword [esp + 0x3c], eax
test eax, eax
je 0x403191
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._fputs
mov dword [esp + 4], ebx
mov dword [esp], 0xa
call sym._fputc
jmp 0x402cc6
test bl, bl
jne 0x402edc
cmp byte [esp + 0x54], dl
jne 0x402f9c
add eax, 1
add edi, 1
jmp 0x402f13
cmp dl, 0xa
je 0x4030f9
add eax, 1
movzx edx, byte [ecx + eax]
cmp dl, 0x3b
jne 0x402f90
cmp dl, 0xa
je 0x4030f9
add eax, 1
xor edi, edi
jmp 0x402f13
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov dword [esp + 4], 0x4052f5
mov edi, dword [esp + 0x20]
imul eax, ecx
mov ecx, dword [esp + 0x2c]
add eax, ecx
mov dword [esp], eax
call sym._fopen
mov ebx, eax
test eax, eax
je 0x403155
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call sym._fputs
mov dword [esp + 4], ebx
mov dword [esp], 0xa
call sym._fputc
mov dword [esp], ebx
call sym._fclose
jmp 0x402be8
mov dword [esp + 4], 0x405239
mov dword [esp], str.unfiltered.csv
call sym._fopen
mov dword [esp + 0x3c], eax
test eax, eax
je 0x403191
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._fputs
mov dword [esp + 4], ebx
mov dword [esp], 0xa
call sym._fputc
jmp 0x402c97
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x3e
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.DATA_failed_to_open__did_you_gave_the_right_path_to_the_file__n
call sym._fwrite
jmp 0x40274d
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.FILTER_failed_to_open__did_you_gave_the_right_path_to_the_file__n
call sym._fwrite
jmp 0x40274d
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x23
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.Error_occured_while_creating_files_n
call sym._fwrite
jmp 0x40274d
add dword [esp + 0x40], 1
jmp 0x402fae
xor edx, edx
mov ebx, dword [esp + 0x18]
mov esi, 1
mov dword [esp + 0x20], edx
jmp 0x40274d
mov esi, edx
mov dword [esp], 2
mov ebx, dword [esp + 0x18]
xor edi, edi
call dword [0x404024]
mov dword [esp + 8], 0x33
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.reached_end_of_line_before_fetching_the_POS_number_n
call sym._fwrite
mov dword [esp + 0x20], edi
jmp 0x40274d
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x18]
xor esi, esi
mov dword [esp], 2
call dword [0x404024]
mov dword [esp + 8], 0x1e
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.failed_to_open_file__aborting_n
call sym._fwrite
jmp 0x40274d
mov dword [esp], 2
mov ebx, dword [esp + 0x18]
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x20
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.Unable_to_create_unfiltered.csv_n
call sym._fwrite
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x40275d
mov dword [esp], 2
call dword [0x404024]
mov dword [esp + 8], 0x35
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.malloc_failure__first_line_of_DATA_might_be_very_big_n
call sym._fwrite
jmp 0x40274d
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x2c
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.malloc_failure__FilterNBUFF_size_is_too_big_n
call sym._fwrite
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x40274d
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x29
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.malloc_failure__NAMEBUFF_size_is_too_big_n
call sym._fwrite
jmp 0x40274d
mov dword [esp], 2
xor esi, esi
call dword [0x404024]
mov dword [esp + 8], 0x31
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.malloc_failure__a_line_in_DATA_might_be_very_big_n
call sym._fwrite
jmp 0x40274d
mov dword [esp], 2
call dword [0x404024]
mov dword [esp + 8], 0xf
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.malloc_failure_n
call sym._fwrite
jmp 0x40274d