Function at 0x403a60
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [0x42dc7c]
shl ebx, 2
mov dword [esp], ebx
call sym._mymalloc
mov dword [0x42d5ac], eax
mov ecx, dword [0x42d75c]
shl ecx, 2
mov dword [esp], ecx
call sym._mymalloc
xor edx, edx
mov edi, eax
xor eax, eax
mov dword [esp + 0x48], edx
mov edx, dword [0x42d75c]
cmp eax, edx
jge 0x403b22
mov eax, dword [0x42d28c]
shl eax, 2
xor ebp, ebp
mov dword [esp], eax
call sym._mymalloc
mov esi, dword [esp + 0x48]
mov ebx, eax
mov dword [edi + esi*4], eax
mov eax, dword [0x42d28c]
cmp ebp, eax
jge 0x403b12
mov dword [esp], 0x50
call sym._mymalloc
mov dword [ebx + ebp*4], eax
xor esi, esi
nop
lea esi, [esi]
mov edx, dword [esp + 0x48]
mov ecx, dword [edi + edx*4]
mov ebx, dword [ecx + ebp*4]
mov dword [esp], 0xa0
call sym._mymalloc
mov dword [ebx + esi*4], eax
inc esi
cmp esi, 0x13
jle 0x403ae0
mov eax, dword [0x42d28c]
inc ebp
cmp ebp, eax
jge 0x403b12
mov eax, dword [esp + 0x48]
mov ebx, dword [edi + eax*4]
jmp 0x403aca
inc dword [esp + 0x48]
mov edx, dword [0x42d75c]
cmp dword [esp + 0x48], edx
jl 0x403aab
inc dword [0x42d81c]
xor eax, eax
mov esi, dword [0x42d5ac]
xor ebp, ebp
mov dword [esi + eax*4], edi
lea edi, [edx*4]
mov dword [esp], edi
call sym._mymalloc
mov dword [esp + 0x44], ebp
mov ecx, dword [0x42d75c]
mov edi, eax
cmp dword [esp + 0x44], ecx
jge 0x403bd2
mov eax, dword [0x42d28c]
shl eax, 2
xor ebp, ebp
mov dword [esp], eax
call sym._mymalloc
mov ecx, dword [esp + 0x44]
mov ebx, eax
mov dword [edi + ecx*4], eax
mov eax, dword [0x42d28c]
cmp ebp, eax
jge 0x403bc2
mov dword [esp], 0x50
call sym._mymalloc
mov dword [ebx + ebp*4], eax
xor esi, esi
nop
lea esi, [esi]
mov ecx, dword [esp + 0x44]
mov eax, dword [edi + ecx*4]
mov ebx, dword [eax + ebp*4]
mov dword [esp], 0xa0
call sym._mymalloc
mov dword [ebx + esi*4], eax
inc esi
cmp esi, 0x13
jle 0x403b90
mov eax, dword [0x42d28c]
inc ebp
cmp ebp, eax
jge 0x403bc2
mov edx, dword [esp + 0x44]
mov ebx, dword [edi + edx*4]
jmp 0x403b7a
inc dword [esp + 0x44]
mov ecx, dword [0x42d75c]
cmp dword [esp + 0x44], ecx
jl 0x403b5b
inc dword [0x42d81c]
mov edx, 1
mov esi, dword [0x42d5ac]
lea ebp, [ecx*4]
mov dword [esi + edx*4], edi
mov dword [esp], ebp
xor ebp, ebp
call sym._mymalloc
mov dword [0x42d51c], eax
mov edx, dword [0x42d75c]
mov ebx, eax
cmp ebp, edx
jge 0x403c7e
mov eax, dword [0x42d28c]
shl eax, 2
xor edi, edi
mov dword [esp], eax
call sym._mymalloc
mov dword [ebx + ebp*4], eax
mov eax, dword [0x42d28c]
cmp edi, eax
jge 0x403c6b
mov eax, dword [0x42d51c]
xor esi, esi
mov ebx, dword [eax + ebp*4]
mov dword [esp], 0x50
call sym._mymalloc
mov dword [ebx + edi*4], eax
nop
mov edx, dword [0x42d51c]
mov ecx, dword [edx + ebp*4]
mov ebx, dword [ecx + edi*4]
mov dword [esp], 0xa0
call sym._mymalloc
mov dword [ebx + esi*4], eax
inc esi
cmp esi, 0x13
jle 0x403c40
inc edi
mov eax, dword [0x42d28c]
cmp edi, eax
jl 0x403c26
mov edx, dword [0x42d75c]
inc ebp
cmp ebp, edx
jge 0x403c7e
mov ebx, dword [0x42d51c]
jmp 0x403c0d
lea edi, [edx*4]
xor ebp, ebp
mov dword [esp], edi
call sym._mymalloc
mov dword [0x42d50c], eax
mov edx, dword [0x42d75c]
mov ebx, eax
cmp ebp, edx
jge 0x403d1e
mov eax, dword [0x42d28c]
shl eax, 2
xor edi, edi
mov dword [esp], eax
call sym._mymalloc
mov dword [ebx + ebp*4], eax
mov eax, dword [0x42d28c]
cmp edi, eax
jge 0x403d0b
mov eax, dword [0x42d50c]
mov esi, dword [eax + ebp*4]
mov dword [esp], 0x50
call sym._mymalloc
mov dword [esi + edi*4], eax
xor esi, esi
mov esi, esi
lea edi, [edi]
mov edx, dword [0x42d50c]
mov ecx, dword [edx + ebp*4]
mov ebx, dword [ecx + edi*4]
mov dword [esp], 0xa0
call sym._mymalloc
mov dword [ebx + esi*4], eax
inc esi
cmp esi, 0x13
jle 0x403ce0
inc edi
mov eax, dword [0x42d28c]
cmp edi, eax
jl 0x403cbe
mov edx, dword [0x42d75c]
inc ebp
cmp ebp, edx
jge 0x403d1e
mov ebx, dword [0x42d50c]
jmp 0x403ca5
lea ebp, [edx*4]
xor edi, edi
mov dword [esp], ebp
call sym._mymalloc
mov dword [0x42d8cc], eax
mov ebx, dword [0x42d75c]
mov esi, eax
cmp edi, ebx
jl 0x403d48
jmp 0x403db0
mov esi, dword [0x42d8cc]
mov eax, dword [0x42d28c]
shl eax, 3
mov dword [esp], eax
call sym._mymalloc
mov dword [esi + edi*4], eax
mov ebx, dword [0x42d75c]
inc edi
cmp edi, ebx
jl 0x403d42
xor ecx, ecx
cmp ecx, ebx
jge 0x403db0
mov edi, dword [0x42d8cc]
mov esi, dword [0x42d2cc]
mov ebp, dword [0x42d28c]
mov dword [esp + 0x30], edi
mov edi, dword [0x42d87c]
mov dword [esp + 0x2c], esi
xor eax, eax
cmp eax, ebp
jge 0x403dab
mov esi, dword [esp + 0x30]
mov edx, dword [esi + ecx*4]
mov esi, dword [esp + 0x2c]
fld qword [esi + eax*8]
fmul qword [edi + ecx*8]
fstp qword [edx + eax*8]
inc eax
cmp eax, ebp
jl 0x403d99
inc ecx
cmp ecx, ebx
jl 0x403d8c
xor edx, edx
mov ecx, dword [0x42dadc]
fldz
mov dword [esp + 0x24], edx
cmp dword [esp + 0x24], ecx
mov dword [esp + 0x40], ecx
jge 0x403e34
mov esi, dword [0x42d29c]
mov eax, dword [0x42dafc]
mov ebp, dword [0x42da5c]
mov dword [esp + 0x3c], esi
mov edi, dword [0x42d8cc]
mov esi, dword [0x42d27c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ebp
xor edx, edx
cmp edx, ebx
jge 0x403e26
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
fild dword [ecx + ebp*4]
mov ecx, dword [eax + ebp*4]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + ecx*4 - 4]
fld st(0)
mov eax, dword [edi + edx*4]
fmul qword [esi + edx*8]
inc edx
cmp edx, ebx
fmul qword [eax + ecx*8 - 8]
faddp st(2)
jl 0x403e11
fstp st(0)
inc dword [esp + 0x24]
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x24], edx
jl 0x403df1
fild dword [0x42d7ac]
xor esi, esi
cmp esi, ebx
fld1
fxch st(2)
fdivrp st(1)
jge 0x403e73
mov ecx, dword [0x42d28c]
mov edi, dword [0x42d8cc]
xor eax, eax
cmp eax, ecx
jge 0x403e6e
fld st(1)
mov edx, dword [edi + esi*4]
fdiv st(1)
fld qword [edx + eax*8]
fmul st(1)
fstp qword [edx + eax*8]
inc eax
cmp eax, ecx
jl 0x403e5f
fstp st(0)
inc esi
cmp esi, ebx
jl 0x403e52
fstp st(0)
fstp st(0)
cmp dword [0x42d10c], 1
jle 0x403e88
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [0x42d0ac], 0
je 0x403eea
mov dword [esp], str._nDiscrete_approximation_to_gamma_distributed_rates_n
mov ecx, dword [0x42dc4c]
mov ebp, 0x33
mov dword [esp + 8], ebp
mov esi, 1
mov edi, str._Coefficient_of_variation_of_rates___f___alpha___f__n
mov dword [esp + 4], esi
mov dword [esp + 0xc], ecx
call sym._fwrite
fld qword [0x42d52c]
mov dword [esp + 4], edi
mov ebx, dword [0x42dc4c]
fstp qword [esp + 0x10]
fld qword [0x42d91c]
mov dword [esp], ebx
fstp qword [esp + 8]
call sym._fprintf
mov ebx, dword [0x42d75c]
dec ebx
jg 0x403f38
mov eax, dword [0x42d28c]
cmp eax, 1
jg 0x403ff3
cmp dword [0x42d75c], 1
jle 0x403fe1
mov dword [esp], 0x429b0f
mov esi, dword [0x42dc4c]
mov edi, 2
mov dword [esp + 8], edi
mov edx, 1
mov dword [esp + 4], edx
mov dword [esp + 0xc], esi
call sym._fwrite
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], str._nStates_in_HMM___Rate_of_change____Probability_n_n
mov ebx, dword [0x42dc4c]
mov edx, 0x30
mov dword [esp + 8], edx
mov eax, 1
mov dword [esp + 4], eax
mov dword [esp + 0xc], ebx
call sym._fwrite
xor edx, edx
cmp edx, dword [0x42d75c]
jge 0x4040b9
mov ecx, dword [0x42d27c]
fld qword [ecx + edx*8]
fcom qword [0x429c00]
fnstsw ax
sahf
jb 0x404093
fstp st(0)
fld qword [ecx + edx*8]
fcom qword [0x429c08]
fnstsw ax
sahf
jb 0x404078
fstp st(0)
fld qword [ecx + edx*8]
fcom qword [0x429c10]
fnstsw ax
sahf
jae 0x404059
fstp qword [esp + 0x14]
mov ecx, dword [0x42d87c]
mov eax, str._9ld_16.3f_18.4f_n
lea ebx, [edx + 1]
fld qword [ecx + edx*8]
mov dword [esp + 8], ebx
fstp qword [esp + 0xc]
mov dword [esp + 4], eax
mov edx, dword [0x42dc4c]
mov dword [esp], edx
call sym._fprintf
mov edx, ebx
jmp 0x403f62
sar eax, 1
test eax, eax
jne 0x403f08
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], str._nSite_category___Rate_of_change_n_n
mov esi, dword [0x42dc4c]
mov edx, 1
mov dword [esp + 4], edx
mov edi, 0x21
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
call sym._fwrite
xor edx, edx
mov eax, dword [0x42d28c]
cmp edx, eax
jge 0x403efb
mov ecx, dword [0x42d2cc]
lea ebx, [edx + 1]
mov eax, str._9ld_16.3f_n
mov ebp, dword [0x42dc4c]
fld qword [ecx + edx*8]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], ebp
fstp qword [esp + 0xc]
call sym._fprintf
mov edx, ebx
jmp 0x40401d
fstp st(0)
fld qword [ecx + edx*8]
mov eax, str._9ld_16.3f_17.3f_n
mov ebx, dword [0x42d87c]
fstp qword [esp + 0x14]
fld qword [ebx + edx*8]
lea ebx, [edx + 1]
jmp 0x403fc3
fstp qword [esp + 0x14]
mov ebp, dword [0x42d87c]
mov eax, str._9ld_16.3f_19.5f_n
lea ebx, [edx + 1]
fld qword [ebp + edx*8]
jmp 0x403fc3
fstp qword [esp + 0x14]
mov esi, dword [0x42d87c]
mov edi, str._9ld_16.3f_20.6f_n
lea ebx, [edx + 1]
fld qword [esi + edx*8]
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
fstp qword [esp + 0xc]
jmp 0x403fcf
mov edx, dword [0x42dc4c]
mov edi, dword [edx + 4]
dec edi
mov dword [edx + 4], edi
test edi, edi
js 0x4040f7
mov esi, dword [edx]
mov byte [esi], 0xa
inc dword [edx]
cmp byte [0x42d0bc], 0
jne 0x40411e
mov edx, dword [0x42dc4c]
mov ecx, dword [edx + 4]
dec ecx
mov dword [edx + 4], ecx
test ecx, ecx
js 0x404109
mov ebx, dword [edx]
mov byte [ebx], 0xa
inc dword [edx]
jmp 0x403eed
mov dword [esp + 4], edx
mov dword [esp], 0xa
call sym.__flsbuf
jmp 0x4040d1
mov dword [esp + 4], edx
mov dword [esp], 0xa
call sym.__flsbuf
jmp 0x403eed
fld1
mov ebp, dword [0x42dc4c]
mov eax, str.Expected_length_of_a_patch_of_sites_having_the_same_rate___8.3f_n
fdiv qword [0x42d7cc]
mov dword [esp + 4], eax
mov dword [esp], ebp
fstp qword [esp + 8]
call sym._fprintf
jmp 0x4040da