Function at 0x4096a0
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
call sym._prot_inittable
cmp byte [0x42d18c], 0
jne 0x409d99
mov eax, 1
cmp eax, dword [0x42dc7c]
jg 0x4096d9
mov edx, dword [0x42d5cc]
mov dword [edx + eax*4 - 4], eax
inc eax
cmp eax, dword [0x42dc7c]
jle 0x4096cc
cmp byte [0x42d5bc], 0
jne 0x40a57a
cmp byte [0x42d78c], 0
jne 0x40a545
movzx ebx, byte [0x42d38c]
mov ebp, 3
mov byte [0x42d3bc], 0
mov ecx, dword [0x42d5cc]
mov dword [0x42d25c], ebp
mov edx, dword [0x42d0dc]
mov byte [0x42d68c], bl
mov esi, dword [ecx + 4]
mov eax, dword [edx + esi*4 - 4]
mov dword [esp + 4], eax
mov edi, dword [ecx]
mov ebp, dword [edx + edi*4 - 4]
mov dword [esp], ebp
call sym._hookup
mov edx, dword [0x42d5cc]
fld1
mov ebp, dword [0x42d0dc]
mov ebx, dword [edx]
mov ecx, dword [edx + 4]
mov esi, dword [ebp + ebx*4 - 4]
mov edi, dword [ebp + ecx*4 - 4]
mov ecx, dword [edx + 8]
mov eax, dword [esi + 4]
fst qword [esi + 0xc8]
mov esi, dword [0x42d25c]
mov ebx, dword [edi + 4]
fst qword [eax + 0xc8]
mov eax, dword [0x42dc7c]
fst qword [edi + 0xc8]
fstp qword [ebx + 0xc8]
add eax, esi
mov ebx, dword [ebp + eax*4 - 0xc]
mov dword [esp + 4], ebx
mov edi, dword [ebp + ecx*4 - 4]
mov dword [esp], edi
call sym._hookup
fld qword [0x42a150]
xor edx, edx
mov esi, dword [ebx + 4]
mov ebp, dword [0x42d5cc]
mov edi, dword [0x42d0dc]
fst qword [ebx + 0xc8]
fstp qword [esi + 0xc8]
mov dword [esp + 8], edx
mov eax, dword [ebp]
mov ecx, dword [edi + eax*4 - 4]
mov dword [esp + 4], ecx
mov esi, dword [ebp + 8]
mov ebx, dword [edi + esi*4 - 4]
mov edi, 4
mov edx, dword [ebx + 4]
mov dword [esp], edx
call sym._insert_
mov edx, dword [0x42d5cc]
mov esi, dword [0x42d0dc]
mov eax, dword [edx]
mov dword [0x42d25c], edi
mov ecx, dword [esi + eax*4 - 4]
mov ebp, dword [ecx + 4]
mov ecx, dword [0x42dc7c]
mov dword [0x42d0e4], ebp
cmp ecx, 3
jle 0x409b14
mov eax, dword [0x42d25c]
mov edx, dword [edx + eax*4 - 4]
add eax, ecx
mov ebx, dword [esi + eax*4 - 0xc]
mov dword [esp + 4], ebx
mov ecx, dword [esi + edx*4 - 4]
mov dword [esp], ecx
call sym._hookup
fld qword [0x42a150]
mov edi, dword [ebx + 4]
cmp byte [0x42d68c], 0
fst qword [ebx + 0xc8]
fstp qword [edi + 0xc8]
fld1
fstp qword [0x42d43c]
jne 0x409ae6
mov edi, dword [0x42d0e4]
mov ebx, 1
mov esi, dword [0x42d25c]
mov dword [esp + 8], ebx
mov ebp, dword [0x42d5cc]
mov eax, dword [0x42d0dc]
mov dword [esp + 4], edi
mov edx, dword [ebp + esi*4 - 4]
mov ecx, dword [eax + edx*4 - 4]
mov ebx, dword [ecx + 4]
mov dword [esp], ebx
call sym._addtraverse
cmp byte [0x42d68c], 0
je 0x409a05
mov dword [esp], 0x42d89c
mov edx, dword [0x42d75c]
mov ecx, 0x42d0dc
mov dword [esp + 4], ecx
mov eax, dword [0x42d08c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call sym._promlcopy
cmp byte [0x42d78c], 0
jne 0x409aba
movzx edx, byte [0x42d26c]
test dl, dl
je 0x409950
mov ecx, dword [0x42dc7c]
cmp dword [0x42d25c], ecx
jne 0x409950
jmp 0x409bba
test dl, dl
je 0x409910
mov ecx, dword [0x42dc7c]
cmp dword [0x42d25c], ecx
je 0x40a680
lea esi, [esi]
lea edi, [edi]
mov edx, dword [0x42d0e4]
mov ebp, dword [edx + 4]
mov dword [esp], edx
mov dword [esp + 4], ebp
call sym._rearrange
cmp byte [0x42d26c], 0
je 0x40993c
mov edi, dword [0x42dc7c]
cmp dword [0x42d25c], edi
je 0x4099a0
cmp byte [0x42d16c], 0
je 0x4099d9
movzx edx, byte [0x42d26c]
mov byte [0x42d16c], 0
test dl, dl
je 0x409910
mov esi, dword [0x42dc7c]
cmp dword [0x42d25c], esi
jne 0x4098f0
cmp byte [0x42d78c], 0
je 0x4098f0
mov dword [esp], 0x4298ec
call sym._printf
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp], eax
call sym._fflush
movzx edx, byte [0x42d26c]
jmp 0x4098f0
cmp byte [0x42d78c], 0
je 0x40993c
mov esi, dword [sym.imp.msvcrt.dll__iob]
mov ebx, dword [esi + 0x24]
dec ebx
mov dword [esi + 0x24], ebx
test ebx, ebx
js 0x40a68a
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ecx, dword [eax + 0x20]
mov byte [ecx], 0xa
inc dword [eax + 0x20]
cmp byte [0x42d16c], 0
jne 0x409949
mov ebp, dword [0x42d25c]
mov ecx, dword [0x42dc7c]
inc ebp
mov dword [0x42d25c], ebp
cmp ebp, ecx
jg 0x409b14
mov esi, dword [0x42d0dc]
mov edx, dword [0x42d5cc]
jmp 0x40980d
mov edx, dword [0x42d17c]
mov esi, 1
mov ecx, dword [0x42d25c]
mov dword [esp + 8], esi
mov eax, dword [0x42d5cc]
mov edi, dword [0x42d0dc]
mov dword [esp + 4], edx
mov ebx, dword [eax + ecx*4 - 4]
mov ebp, dword [edi + ebx*4 - 4]
mov ebx, 3
mov esi, dword [ebp + 4]
mov dword [esp], esi
call sym._insert_
mov byte [0x42d68c], 1
nop
lea esi, [esi]
mov ecx, dword [0x42d0e4]
mov dword [esp], ecx
call sym._smooth
mov edi, dword [0x42d0e4]
mov ebp, dword [edi + 4]
mov dword [esp], ebp
call sym._smooth
dec ebx
jns 0x409a50
mov byte [0x42d68c], 0
mov edx, dword [0x42d75c]
mov ebx, 0x42d89c
mov dword [esp + 4], ebx
mov eax, dword [0x42d08c]
mov dword [esp], 0x42d0dc
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call sym._promlcopy
fld qword [0x42d0ec]
cmp byte [0x42d78c], 0
fstp qword [0x42d43c]
je 0x4098cf
mov esi, dword [0x42d25c]
mov ebp, 1
mov edi, dword [0x42d5cc]
mov dword [esp + 4], ebp
dec esi
mov dword [esp + 8], edi
mov dword [esp], esi
call sym._writename
call sym._phyFillScreenColor
jmp 0x4098cf
mov dword [esp], 0x42d0dc
mov edi, dword [0x42d75c]
mov esi, 0x42d6ac
mov dword [esp + 4], esi
mov ebp, dword [0x42d08c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebp
call sym._promlcopy
jmp 0x409856
cmp byte [0x42d26c], 0
je 0x409b2a
cmp byte [0x42d78c], 0
jne 0x40a602
mov dword [esp], 0x42d0dc
mov ebx, dword [0x42d75c]
mov ebp, 0x42d89c
mov dword [esp + 4], ebp
mov edi, dword [0x42d08c]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
call sym._promlcopy
mov edx, dword [0x42d4bc]
cmp edx, 1
jle 0x409c3a
mov ecx, dword [0x42d10c]
cmp ecx, 1
je 0x409c0b
fld qword [0x42d7ec]
fcomp qword [0x42d8ac]
fnstsw ax
sahf
jb 0x409c0b
cmp ecx, edx
je 0x409c48
cmp byte [0x42d18c], 0
jne 0x40a500
call sym._prot_freetable
mov ebx, dword [0x42d4bc]
cmp dword [0x42d10c], ebx
jge 0x40a106
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [0x42d78c], 0
je 0x409950
mov dword [esp], 0x42a030
call sym._puts
mov dword [esp], 0x42a04c
call sym._printf
mov esi, dword [0x42dc7c]
mov ecx, dword [0x42d08c]
mov eax, esi
cmp esi, ecx
jl 0x40a59a
mov dword [esp], 0x42a050
call sym._puts
call sym._phyFillScreenColor
jmp 0x409949
mov dword [esp], 0x42d89c
mov edx, dword [0x42d75c]
mov esi, 0x42d7dc
mov dword [esp + 4], esi
mov ecx, dword [0x42d08c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
call sym._promlcopy
mov edx, dword [0x42d4bc]
mov ecx, dword [0x42d10c]
cmp ecx, edx
jne 0x409b8e
dec ecx
jg 0x40a651
mov esi, dword [0x42daec]
xor edx, edx
mov ecx, dword [0x42d0dc]
cmp edx, dword [0x42d08c]
mov eax, dword [ecx + esi*4 - 4]
mov esi, dword [eax + 4]
mov dword [0x42d0e4], esi
jl 0x409cb4
jmp 0x409cd5
mov ebp, dword [ecx + edx*4]
mov byte [ebp + 0xa6], 0
mov esi, dword [0x42d0dc]
mov eax, dword [esi + edx*4]
mov ebx, dword [eax]
mov byte [ebx + 0xa6], 0
mov edi, dword [0x42d0dc]
mov ebp, dword [edi + edx*4]
inc edx
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov byte [eax + 0xa6], 0
cmp edx, dword [0x42d08c]
jge 0x409ccf
mov ecx, dword [0x42d0dc]
cmp edx, dword [0x42dc7c]
jge 0x409c74
mov eax, dword [ecx + edx*4]
inc edx
mov byte [eax + 0xa6], 0
cmp edx, dword [0x42d08c]
jl 0x409cae
mov esi, dword [0x42d0e4]
mov byte [esi + 0xa6], 0
mov eax, dword [esi + 4]
mov byte [eax + 0xa6], 0
cmp byte [0x42d18c], 0
je 0x409d09
cmp byte [0x42d1ac], 0
je 0x40a6fd
cmp byte [esi + 0xa5], 0
jne 0x40a6fd
cmp byte [esi + 0x138], 0
jne 0x409d27
mov ebx, dword [esi]
jmp 0x409d23
mov edx, dword [ebx + 4]
mov dword [esp], edx
call sym._inittravtree
mov ebx, dword [ebx]
cmp ebx, esi
jne 0x409d16
mov byte [0x42d3bc], 1
mov ebx, 0xf
mov byte [0x42d68c], 1
mov ecx, dword [0x42d0e4]
mov dword [esp], ecx
call sym._smooth
dec ebx
jns 0x409d3a
mov edi, dword [0x42d0e4]
mov ebx, 1
mov dword [esp + 4], ebx
mov dword [esp], edi
call sym._prot_evaluate
fstp qword [0x42d3ac]
call sym._proml_printree
call sym._summarize
cmp byte [0x42da3c], 0
je 0x409b8e
mov eax, dword [0x42d0e4]
xor esi, esi
mov dword [0x42da4c], esi
mov dword [esp], eax
call sym._dnaml_treeout
jmp 0x409b8e
mov dword [esp], 0x42dc2c
mov edx, dword [0x42d39c]
mov ecx, 0x42d53c
mov dword [esp + 0x14], ecx
mov eax, 0x42a052
mov ebp, 0x42a054
mov dword [esp + 0xc], eax
mov edi, str.intree
mov dword [esp + 0x10], edx
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
call sym._openfile
mov dword [esp], 0x42dc2c
call sym._countsemic
mov dword [0x42d07c], eax
cmp eax, 0x64
jg 0x40a641
mov dword [0x42d90c], eax
cmp eax, 2
jg 0x40a78f
mov eax, dword [0x42d90c]
xor esi, esi
shl eax, 3
mov dword [esp], eax
call sym._mymalloc
mov dword [0x42d09c], eax
mov ebp, dword [0x42d90c]
shl ebp, 2
mov dword [esp], ebp
call sym._mymalloc
cmp esi, dword [0x42d90c]
mov ebx, eax
mov dword [0x42d2fc], eax
jl 0x409e3a
jmp 0x409e57
mov ebx, dword [0x42d2fc]
mov edx, dword [0x42dadc]
shl edx, 3
mov dword [esp], edx
call sym._mymalloc
mov dword [ebx + esi*4], eax
inc esi
cmp esi, dword [0x42d90c]
jl 0x409e34
cmp byte [0x42daac], 0
jne 0x40a714
mov esi, dword [0x42d07c]
mov ebx, 1
mov dword [0x42da6c], ebx
test esi, esi
jle 0x40a054
lea ebp, [esp + 0x56]
lea edi, [esp + 0x50]
mov byte [0x42d4fc], 1
xor esi, esi
mov ecx, dword [0x42d08c]
mov dword [esp + 0x58], esi
xor edx, edx
mov esi, 0x42d4fc
mov dword [esp + 0x28], edx
mov edx, dword [0x42d0dc]
mov eax, sym._initpromlnode
mov dword [esp + 0x1c], esi
mov esi, dword [0x42dc2c]
mov ebx, 0x42d65c
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x58]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x57]
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov byte [esp + 0x57], 1
mov byte [esp + 0x56], 0
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], esi
call sym._treeread
mov ecx, dword [0x42d08c]
mov edx, dword [0x42d0dc]
mov eax, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._proml_unroot
cmp byte [esp + 0x56], 0
je 0x409f36
mov ebx, dword [0x42d07c]
cmp dword [0x42da6c], ebx
jle 0x40a6a8
cmp byte [0x42db0c], 0
mov edx, dword [0x42d0dc]
mov ecx, dword [edx]
mov esi, dword [ecx + 4]
mov dword [0x42d0e4], esi
je 0x409f63
mov esi, dword [0x42daec]
mov ebx, dword [edx + esi*4 - 4]
mov esi, dword [ebx + 4]
mov dword [0x42d0e4], esi
mov byte [esi + 0xa6], 0
mov eax, dword [esi + 4]
mov byte [eax + 0xa6], 0
cmp byte [0x42d18c], 0
je 0x409fa1
cmp byte [0x42d1ac], 0
je 0x409f8f
cmp byte [esi + 0xa5], 0
je 0x409fa1
fld qword [0x42a150]
fst qword [esi + 0xc8]
fstp qword [eax + 0xc8]
cmp byte [esi + 0x138], 0
jne 0x409fc1
mov ebx, dword [esi]
jmp 0x409fbd
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sym._inittravtree
mov ebx, dword [ebx]
cmp ebx, esi
jne 0x409fb0
mov byte [0x42d3bc], 1
mov ebx, 0xf
mov byte [0x42d68c], 1
lea esi, [esi]
lea edi, [edi]
mov edx, dword [0x42d0e4]
mov dword [esp], edx
call sym._smooth
dec ebx
jns 0x409fe0
mov ecx, dword [0x42d0e4]
mov ebx, 1
mov dword [esp + 4], ebx
mov dword [esp], ecx
call sym._prot_evaluate
fstp qword [0x42d3ac]
call sym._proml_printree
call sym._summarize
cmp byte [0x42da3c], 0
jne 0x40a824
mov edx, dword [0x42da6c]
mov ecx, dword [0x42d07c]
cmp edx, ecx
jl 0x40a7dd
mov ebx, dword [esp + 0x58]
mov dword [0x42d08c], ebx
lea esi, [edx + 1]
cmp esi, ecx
mov dword [0x42da6c], esi
jle 0x409e85
mov eax, dword [0x42dc2c]
test eax, eax
jne 0x40a7b2
mov edx, dword [0x42dc4c]
xor ebp, ebp
mov dword [0x42dc2c], ebp
mov edi, dword [edx + 4]
dec edi
mov dword [edx + 4], edi
test edi, edi
js 0x40a83e
mov ecx, dword [edx]
mov byte [ecx], 0xa
inc dword [edx]
cmp byte [0x42d0bc], 0
jne 0x409b8e
mov edx, dword [0x42d07c]
cmp edx, 1
jle 0x409b8e
cmp dword [0x42d4cc], 1
jle 0x409b8e
fld qword [0x42d74c]
mov eax, 0x42d8ec
xor ebx, ebx
mov dword [esp + 0x24], eax
mov esi, dword [0x42dadc]
mov ecx, dword [0x42d29c]
mov dword [esp + 8], ebx
mov ebp, dword [0x42d2fc]
mov edi, dword [0x42d09c]
mov dword [esp + 0x20], ecx
mov eax, dword [0x42d7bc]
dec esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edi
fstp qword [esp + 0x10]
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov dword [esp], edx
call sym._standev2
jmp 0x409b8e
mov esi, dword [0x42d2ac]
xor ebx, ebx
mov dword [esp], esi
call sym._free
mov eax, dword [0x42d4ec]
mov dword [esp], eax
call sym._free
cmp ebx, dword [0x42dadc]
jge 0x40a145
mov edx, dword [0x42d13c]
mov ebp, dword [edx + ebx*4]
inc ebx
mov dword [esp], ebp
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a12b
mov ecx, dword [0x42d13c]
xor ebx, ebx
mov dword [esp], ecx
call sym._free
cmp ebx, dword [0x42dadc]
jge 0x40a176
mov eax, dword [0x42d11c]
mov edi, dword [eax + ebx*4]
inc ebx
mov dword [esp], edi
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a15d
mov ebx, dword [0x42d11c]
mov dword [esp], ebx
xor ebx, ebx
call sym._free
cmp ebx, dword [0x42dadc]
jge 0x40a1a9
mov ebp, dword [0x42d67c]
mov esi, dword [ebp + ebx*4]
inc ebx
mov dword [esp], esi
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a18e
mov ecx, dword [0x42d67c]
xor esi, esi
mov dword [esp], ecx
call sym._free
mov eax, dword [0x42dc7c]
mov edx, dword [0x42d08c]
mov ebp, dword [0x42d0dc]
cmp esi, eax
mov dword [esp + 0x4c], edx
jge 0x40a21a
xor ebx, ebx
cmp ebx, dword [0x42dadc]
jge 0x40a1fe
lea esi, [esi]
mov edx, dword [ebp + esi*4]
mov eax, dword [edx + 0xb8]
mov edi, dword [eax + ebx*4]
inc ebx
mov dword [esp], edi
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a1e0
mov ecx, dword [ebp + esi*4]
inc esi
mov ebx, dword [ecx + 0xb8]
mov dword [esp], ebx
call sym._free
mov eax, dword [0x42dc7c]
cmp esi, eax
jl 0x40a1d2
mov edi, eax
cmp edi, dword [esp + 0x4c]
jge 0x40a277
mov eax, dword [ebp + edi*4]
test eax, eax
je 0x40a270
mov esi, eax
lea esi, [esi]
xor ebx, ebx
cmp ebx, dword [0x42dadc]
jge 0x40a25a
lea esi, [esi]
mov edx, dword [esi + 0xb8]
mov eax, dword [edx + ebx*4]
inc ebx
mov dword [esp], eax
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a240
mov ebx, dword [esi + 0xb8]
mov dword [esp], ebx
call sym._free
mov esi, dword [esi]
cmp dword [ebp + edi*4], esi
jne 0x40a230
inc edi
cmp edi, dword [esp + 0x4c]
jl 0x40a222
cmp byte [0x42d18c], 0
jne 0x40a4b7
mov esi, dword [0x42d08c]
mov eax, dword [0x42dc7c]
mov ebp, dword [0x42d89c]
mov dword [esp + 0x48], esi
xor esi, esi
cmp esi, eax
jge 0x40a2e3
xor ebx, ebx
cmp ebx, dword [0x42dadc]
jge 0x40a2c7
mov eax, dword [ebp + esi*4]
mov ecx, dword [eax + 0xb8]
mov edi, dword [ecx + ebx*4]
inc ebx
mov dword [esp], edi
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a2a9
mov ebx, dword [ebp + esi*4]
inc esi
mov edx, dword [ebx + 0xb8]
mov dword [esp], edx
call sym._free
mov eax, dword [0x42dc7c]
cmp esi, eax
jl 0x40a29f
cmp eax, dword [esp + 0x48]
mov edi, eax
jge 0x40a33c
mov eax, dword [ebp + edi*4]
test eax, eax
je 0x40a330
mov esi, eax
xor ebx, ebx
cmp ebx, dword [0x42dadc]
jge 0x40a31a
nop
mov eax, dword [esi + 0xb8]
mov ecx, dword [eax + ebx*4]
inc ebx
mov dword [esp], ecx
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a300
mov edx, dword [esi + 0xb8]
mov dword [esp], edx
call sym._free
mov esi, dword [esi]
cmp dword [ebp + edi*4], esi
jne 0x40a2f5
inc edi
cmp edi, dword [esp + 0x48]
jl 0x40a2eb
mov eax, dword [0x42dc7c]
mov ebp, dword [0x42d08c]
xor esi, esi
cmp esi, eax
mov dword [esp + 0x44], ebp
mov ebp, dword [0x42d6ac]
jge 0x40a396
xor ebx, ebx
cmp ebx, dword [0x42dadc]
jge 0x40a37a
mov eax, dword [ebp + esi*4]
mov ecx, dword [eax + 0xb8]
mov edi, dword [ecx + ebx*4]
inc ebx
mov dword [esp], edi
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a35c
mov edx, dword [ebp + esi*4]
inc esi
mov ebx, dword [edx + 0xb8]
mov dword [esp], ebx
call sym._free
mov eax, dword [0x42dc7c]
cmp esi, eax
jl 0x40a352
mov edi, eax
cmp edi, dword [esp + 0x44]
jge 0x40a3f7
mov eax, dword [ebp + edi*4]
test eax, eax
je 0x40a3f0
mov esi, eax
xor ebx, ebx
cmp ebx, dword [0x42dadc]
jge 0x40a3da
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esi + 0xb8]
mov ecx, dword [eax + ebx*4]
inc ebx
mov dword [esp], ecx
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a3c0
mov ebx, dword [esi + 0xb8]
mov dword [esp], ebx
call sym._free
mov esi, dword [esi]
cmp dword [ebp + edi*4], esi
jne 0x40a3a8
inc edi
cmp edi, dword [esp + 0x44]
jl 0x40a39e
cmp dword [0x42d4bc], 1
jle 0x40a4b7
mov esi, dword [0x42d08c]
mov eax, dword [0x42dc7c]
mov ebp, dword [0x42d7dc]
mov dword [esp + 0x40], esi
xor esi, esi
cmp esi, eax
jge 0x40a463
xor ebx, ebx
cmp ebx, dword [0x42dadc]
jge 0x40a447
mov ecx, dword [ebp + esi*4]
mov edx, dword [ecx + 0xb8]
mov edi, dword [edx + ebx*4]
inc ebx
mov dword [esp], edi
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a429
mov ebx, dword [ebp + esi*4]
inc esi
mov eax, dword [ebx + 0xb8]
mov dword [esp], eax
call sym._free
mov eax, dword [0x42dc7c]
cmp esi, eax
jl 0x40a41f
mov edi, eax
cmp edi, dword [esp + 0x40]
jge 0x40a4b7
mov eax, dword [ebp + edi*4]
test eax, eax
je 0x40a4b0
mov esi, eax
xor ebx, ebx
cmp ebx, dword [0x42dadc]
jge 0x40a49a
nop
mov ecx, dword [esi + 0xb8]
mov edx, dword [ecx + ebx*4]
inc ebx
mov dword [esp], edx
call sym._free
cmp ebx, dword [0x42dadc]
jl 0x40a480
mov eax, dword [esi + 0xb8]
mov dword [esp], eax
call sym._free
mov esi, dword [esi]
cmp dword [ebp + edi*4], esi
jne 0x40a475
inc edi
cmp edi, dword [esp + 0x40]
jl 0x40a46b
cmp byte [0x42d78c], 0
je 0x409bb2
mov dword [esp], str._nOutput_written_to_file___s__n
mov ebp, 0x42d1cc
mov dword [esp + 4], ebp
call sym._printf
cmp byte [0x42da3c], 0
je 0x409bb2
mov dword [esp], str._nTree_also_written_onto_file___s__n
mov esi, 0x42d31c
mov dword [esp + 4], esi
call sym._printf
jmp 0x409bb2
mov ebp, dword [0x42d09c]
xor ebx, ebx
mov dword [esp], ebp
call sym._free
cmp ebx, dword [0x42d90c]
jge 0x40a532
mov ecx, dword [0x42d2fc]
mov edx, dword [ecx + ebx*4]
inc ebx
mov dword [esp], edx
call sym._free
cmp ebx, dword [0x42d90c]
jl 0x40a518
mov edi, dword [0x42d2fc]
mov dword [esp], edi
call sym._free
jmp 0x409b9b
mov dword [esp], str._nAdding_species:
call sym._puts
mov dword [esp], 0
mov esi, dword [0x42d5cc]
mov ebx, 3
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call sym._writename
call sym._phyFillScreenColor
jmp 0x4096f3
mov dword [esp], 0x42d8ec
mov edx, dword [0x42d5cc]
mov dword [esp + 4], edx
call sym._randumize
jmp 0x4096e6
mov eax, dword [0x42dc7c]
mov ebp, esi
mov ebx, 0x38e38e39
sub ebp, eax
mov eax, ecx
mov edi, ecx
sar edi, 0x1f
imul ebx
mov eax, ebp
sar edx, 4
sub edx, edi
inc edx
mov ebx, edx
cdq
idiv ebx
test edx, edx
jne 0x40a5e7
mov edx, dword [sym.imp.msvcrt.dll__iob]
mov ecx, dword [edx + 0x24]
dec ecx
mov dword [edx + 0x24], ecx
test ecx, ecx
js 0x40a7bf
mov ebp, dword [sym.imp.msvcrt.dll__iob]
mov edi, dword [ebp + 0x20]
mov byte [edi], 0x2d
inc dword [ebp + 0x20]
mov ecx, dword [0x42d08c]
inc esi
cmp esi, ecx
jl 0x40a595
mov dword [esp], 0x42a050
call sym._puts
call sym._phyFillScreenColor
jmp 0x409949
mov ebx, dword [sym.imp.msvcrt.dll__iob]
mov edi, dword [ebx + 0x24]
dec edi
mov dword [ebx + 0x24], edi
test edi, edi
js 0x40a853
mov esi, dword [sym.imp.msvcrt.dll__iob]
mov eax, dword [esi + 0x20]
mov byte [eax], 0xa
inc dword [esi + 0x20]
mov edx, dword [sym.imp.msvcrt.dll__iob]
add edx, 0x20
mov dword [esp], edx
call sym._fflush
call sym._phyFillScreenColor
jmp 0x409b2a
mov esi, 0x64
mov dword [0x42d90c], esi
jmp 0x409df2
mov dword [esp], 0x42d7dc
mov ebx, dword [0x42d75c]
mov ebp, 0x42d0dc
mov dword [esp + 4], ebp
mov edi, dword [0x42d08c]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
call sym._promlcopy
jmp 0x409c4f
call sym._globrearrange
jmp 0x409925
mov dword [esp], 0xa
mov edx, dword [sym.imp.msvcrt.dll__iob]
add edx, 0x20
mov dword [esp + 4], edx
call sym.__flsbuf
jmp 0x40993c
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str.ERROR:_trees_missing_at_end_of_file.
call sym._puts
mov dword [esp], str._tExpected_number_of_trees:_t_t_ld_n
mov edx, dword [0x42d07c]
mov dword [esp + 4], edx
call sym._printf
mov dword [esp], str._tNumber_of_trees_actually_in_file:_t_ld._n_n
mov eax, dword [0x42da6c]
dec eax
mov dword [esp + 4], eax
call sym._printf
mov dword [esp], 0xffffffff
call sym._exxit
jmp 0x409f36
fld qword [0x42a150]
fst qword [esi + 0xc8]
fstp qword [eax + 0xc8]
jmp 0x409d09
mov dword [esp], str.User_defined_tree
mov ebx, dword [0x42dc4c]
mov ecx, 1
mov dword [esp + 4], ecx
mov esi, 0x11
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
call sym._fwrite
cmp dword [0x42d07c], 1
jle 0x40a762
mov edx, dword [0x42dc4c]
mov edi, dword [edx + 4]
dec edi
mov dword [edx + 4], edi
test edi, edi
js 0x40a871
mov ebp, dword [edx]
mov byte [ebp], 0x73
inc dword [edx]
mov dword [esp], 0x42a148
mov ecx, dword [0x42dc4c]
mov edx, 3
mov dword [esp + 8], edx
mov eax, 1
mov dword [esp + 4], eax
mov dword [esp + 0xc], ecx
call sym._fwrite
jmp 0x409e64
mov dword [esp], 0x42d2dc
mov edi, 0x42d8ec
mov ebx, 0x42d88c
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
call sym._initseed
jmp 0x409dfb
mov dword [esp], eax
call sym._fclose
jmp 0x40a061
mov dword [esp], 0x2d
mov ebx, dword [sym.imp.msvcrt.dll__iob]
add ebx, 0x20
mov dword [esp + 4], ebx
call sym.__flsbuf
jmp 0x40a5e1
mov eax, dword [0x42d0dc]
mov esi, dword [esp + 0x58]
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._prot_freex_notip
mov edx, dword [0x42d0e4]
mov ecx, 0x42d65c
mov ebx, dword [0x42d0dc]
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 8], ebx
call sym._gdispose
mov ecx, dword [0x42d07c]
mov edx, dword [0x42da6c]
jmp 0x40a043
mov esi, dword [0x42d0e4]
xor eax, eax
mov dword [0x42da4c], eax
mov dword [esp], esi
call sym._dnaml_treeout
jmp 0x40a025
mov dword [esp + 4], edx
mov dword [esp], 0xa
call sym.__flsbuf
jmp 0x40a085
mov dword [esp], 0xa
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x20
mov dword [esp + 4], ecx
call sym.__flsbuf
jmp 0x40a626
mov dword [esp + 4], edx
mov dword [esp], 0x73
call sym.__flsbuf
jmp 0x40a762