Function at 0x4026d0
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
cmp byte [0x42db1c], 0
jne 0x402bbb
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebp
mov esi, dword [0x42db9c]
mov dword [esp], esi
call sym._gettc
mov byte [esp + 0x47], al
cmp al, 0x20
mov cl, al
sete dl
cmp al, 9
sete al
or eax, edx
test al, 1
jne 0x4026f0
mov ebx, dword [0x42db9c]
movsx ebp, cl
mov dword [esp], ebp
mov dword [esp + 4], ebx
call sym._ungetc
mov edi, dword [0x42db9c]
mov dword [esp], edi
call sym._eoln
test al, al
jne 0x402ba8
mov eax, 1
mov ebx, dword [0x42dc7c]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x40], ebx
jg 0x402b7b
movzx ecx, byte [0x42da8c]
test cl, cl
setne bl
xor edx, edx
cmp dword [esp + 0x3c], 0
sete dl
test edx, ebx
jne 0x40277a
test cl, cl
jne 0x402b5f
mov esi, dword [esp + 0x40]
xor ebp, ebp
dec esi
mov dword [esp], esi
call sym._initname
cmp byte [0x42da8c], 0
jne 0x402b5f
mov byte [esp + 0x2b], 0
nop
lea esi, [esi]
cmp byte [esp + 0x2b], 0
jne 0x4028a5
mov edx, dword [0x42db9c]
mov dword [esp], edx
call sym._eoff
test al, al
jne 0x4028a5
cmp byte [0x42da8c], 0
je 0x4027d0
mov byte [esp + 0x2b], 1
nop
cmp ebp, dword [esp + 0x60]
jge 0x402888
mov eax, dword [0x42db9c]
mov dword [esp], eax
call sym._eoln
test al, al
jne 0x402888
mov ecx, dword [0x42db9c]
mov dword [esp], ecx
call sym._eoff
test al, al
jne 0x402888
mov edi, dword [0x42db9c]
mov dword [esp], edi
call sym._gettc
mov byte [esp + 0x47], al
mov dl, al
sub al, 9
cmp al, 1
ja 0x402826
mov byte [esp + 0x47], 0x20
mov dl, 0x20
cmp dl, 0x20
sete al
sub dl, 0x30
cmp dl, 9
setbe cl
or eax, ecx
test al, 1
jne 0x4027d0
lea ebx, [esp + 0x47]
lea esi, [ebp + 1]
mov dword [esp], ebx
call sym._uppercase
movzx ebx, byte [esp + 0x47]
mov dword [esp], str.ABCDEFGHIKLMNPQRSTVWXYZ__
movsx edi, bl
mov dword [esp + 4], edi
call sym._strchr
test eax, eax
je 0x402be0
mov ebp, esi
mov edi, dword [esp + 0x40]
mov esi, dword [0x42dabc]
mov edx, dword [esi + edi*4 - 4]
mov byte [edx + ebp - 1], bl
cmp ebp, dword [esp + 0x60]
jl 0x4027da
cmp byte [0x42da8c], 0
jne 0x4027a0
cmp ebp, dword [esp + 0x60]
jl 0x402b68
jne 0x4027a0
cmp byte [0x42da8c], 0
setne al
xor ecx, ecx
cmp dword [esp + 0x40], 1
sete cl
test ecx, eax
je 0x4028c1
mov dword [esp + 0x38], ebp
mov esi, dword [0x42db9c]
mov dword [esp], esi
call sym._scan_eoln
movzx ecx, byte [0x42da8c]
test cl, cl
setne bl
xor edx, edx
cmp ebp, dword [esp + 0x38]
setne dl
test edx, ebx
jne 0x4028fa
test cl, cl
sete al
xor ebx, ebx
cmp ebp, dword [esp + 0x60]
setne bl
test ebx, eax
je 0x40291d
mov dword [esp + 4], ebp
mov dword [esp], str.ERROR:_SEQUENCES_OUT_OF_ALIGNMENT_AT_POSITION__ld._n
call sym._printf
mov dword [esp], 0xffffffff
call sym._exxit
movzx ecx, byte [0x42da8c]
inc dword [esp + 0x40]
mov ebx, dword [0x42dc7c]
cmp dword [esp + 0x40], ebx
jle 0x40275f
test cl, cl
jne 0x402b8a
cmp dword [esp + 0x40], ebx
setg al
test al, al
je 0x4026f0
cmp byte [0x42db1c], 0
je 0x402cb1
mov ebp, dword [esp + 0x60]
mov edx, 0x88888889
mov edi, 1
mov dword [esp + 0x24], edi
dec ebp
mov eax, ebp
imul edx
mov eax, ebp
sar eax, 0x1f
mov dword [esp + 0x30], ebp
add edx, ebp
sar edx, 5
mov ecx, edx
sub ecx, eax
mov esi, ecx
inc esi
dec esi
jl 0x402c99
mov dword [esp + 0x34], edx
mov esi, 0x3c
mov dword [esp + 0x2c], esi
mov edi, 1
cmp edi, ebx
jg 0x402b15
mov ebp, 0x14
xor ebx, ebx
jmp 0x4029b7
mov eax, dword [edx]
inc ebx
mov byte [eax], cl
inc dword [edx]
cmp ebx, 9
jg 0x4029e9
mov edx, dword [0x42dc4c]
mov esi, ebp
mov ecx, dword [0x42dc6c]
mov eax, dword [edx + 4]
add esi, ecx
movsx ecx, byte [esi + ebx - 0x14]
dec eax
test eax, eax
mov dword [edx + 4], eax
jns 0x4029ab
mov dword [esp + 4], edx
inc ebx
mov dword [esp], ecx
call sym.__flsbuf
cmp ebx, 9
jle 0x4029b7
mov dword [esp], 0x4298ec
mov esi, dword [0x42dc4c]
mov edx, 3
mov dword [esp + 8], edx
mov ebx, 1
mov dword [esp + 4], ebx
mov dword [esp + 0xc], esi
call sym._fwrite
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x60]
cmp esi, eax
jle 0x402a1f
mov esi, eax
mov ebx, dword [esp + 0x2c]
sub ebx, 0x3b
cmp ebx, esi
jg 0x402ae9
cmp edi, 1
jle 0x402c19
mov ecx, dword [0x42dabc]
mov edx, dword [ecx]
mov eax, dword [ecx + edi*4 - 4]
movzx edx, byte [edx + ebx - 1]
cmp byte [eax + ebx - 1], dl
je 0x402c3e
mov eax, dword [ecx + edi*4 - 4]
mov edx, dword [0x42dc4c]
movzx ecx, byte [eax + ebx - 1]
mov byte [esp + 0x47], cl
mov eax, dword [edx + 4]
movsx ecx, byte [esp + 0x47]
dec eax
test eax, eax
mov dword [edx + 4], eax
js 0x402c5d
mov eax, dword [edx]
mov byte [eax], cl
inc dword [edx]
mov eax, 0x66666667
mov ecx, ebx
imul ebx
sar ecx, 0x1f
mov eax, edx
sar eax, 2
sub eax, ecx
lea edx, [eax + eax*4]
add edx, edx
cmp ebx, edx
jne 0x402ae0
mov eax, 0x88888889
imul ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
lea edx, [ebx + eax]
sar edx, 5
sub edx, ecx
mov ecx, edx
shl ecx, 4
sub ecx, edx
shl ecx, 2
cmp ebx, ecx
je 0x402ae0
mov edx, dword [0x42dc4c]
mov ecx, dword [edx + 4]
dec ecx
mov dword [edx + 4], ecx
test ecx, ecx
js 0x402c6e
mov eax, dword [edx]
mov byte [eax], 0x20
inc dword [edx]
inc ebx
cmp ebx, esi
jle 0x402a2e
mov edx, dword [0x42dc4c]
mov ebx, dword [edx + 4]
dec ebx
mov dword [edx + 4], ebx
test ebx, ebx
js 0x402c84
mov esi, dword [edx]
mov byte [esi], 0xa
inc dword [edx]
inc edi
add ebp, 0x14
cmp edi, dword [0x42dc7c]
jle 0x4029a7
mov edx, dword [0x42dc4c]
mov ebp, dword [edx + 4]
dec ebp
mov dword [edx + 4], ebp
test ebp, ebp
js 0x402cb9
mov edi, dword [edx]
mov byte [edi], 0xa
inc dword [edx]
inc dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add dword [esp + 0x2c], 0x3c
sar eax, 0x1f
sub edx, eax
mov ecx, edx
inc ecx
cmp ecx, dword [esp + 0x24]
jl 0x402c99
mov ebx, dword [0x42dc7c]
jmp 0x402995
mov ebp, dword [esp + 0x3c]
jmp 0x402796
mov ebx, dword [0x42db9c]
mov dword [esp], ebx
call sym._scan_eoln
jmp 0x4027a0
movzx ecx, byte [0x42da8c]
test cl, cl
je 0x402939
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x3c], edi
cmp edi, ebp
sete al
test al, al
je 0x4026f0
jmp 0x402948
mov ecx, dword [0x42db9c]
mov dword [esp], ecx
call sym._scan_eoln
jmp 0x40273f
mov eax, dword [esp + 0x60]
mov ecx, 0x4298f0
mov edx, 0x4298fa
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._headings
jmp 0x4026e4
mov dword [esp + 8], esi
mov ebp, dword [esp + 0x40]
mov dword [esp + 4], edi
mov dword [esp], str.ERROR:_bad_amino_acid:__c_at_position__ld_of_species__ld_n
mov dword [esp + 0xc], ebp
call sym._printf
cmp byte [esp + 0x47], 0x2e
je 0x402c24
mov dword [esp], 0xffffffff
call sym._exxit
movzx ebx, byte [esp + 0x47]
jmp 0x40286a
mov ecx, dword [0x42dabc]
jmp 0x402a52
mov dword [esp], 0x429940
call sym._puts
mov dword [esp], 0x429978
call sym._puts
jmp 0x402c03
mov byte [esp + 0x47], 0x2e
mov edx, dword [0x42dc4c]
movsx ecx, byte [esp + 0x47]
mov eax, dword [edx + 4]
dec eax
mov dword [edx + 4], eax
test eax, eax
jns 0x402a79
mov dword [esp + 4], edx
mov dword [esp], ecx
call sym.__flsbuf
jmp 0x402a7f
mov dword [esp + 4], edx
inc ebx
mov dword [esp], 0x20
call sym.__flsbuf
jmp 0x402ae1
mov dword [esp + 4], edx
mov dword [esp], 0xa
call sym.__flsbuf
jmp 0x402b05
mov edx, dword [0x42dc4c]
mov ebx, dword [edx + 4]
dec ebx
mov dword [edx + 4], ebx
test ebx, ebx
js 0x402cce
mov esi, dword [edx]
mov byte [esi], 0xa
inc dword [edx]
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], edx
mov dword [esp], 0xa
call sym.__flsbuf
jmp 0x402b31
mov dword [esp + 4], edx
mov dword [esp], 0xa
call sym.__flsbuf
jmp 0x402cb1