Function at 0x407690
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
push ebx
sub esp, 0x30
mov edi, dword [esp + 0x40]
cmp byte [edi + 0x138], 0
jne 0x4076b0
cmp byte [edi + 0xa6], 0
je 0x407a47
mov esi, dword [edi + 4]
cmp byte [esi + 0x138], 0
jne 0x407755
cmp byte [esi + 0xa6], 0
je 0x407a54
cmp byte [esi + 0x138], 0
jne 0x407755
mov ecx, dword [esi + 0x24]
mov ebx, str.___4ld
mov edx, dword [0x42dc7c]
mov dword [esp + 4], ebx
mov eax, dword [0x42dc4c]
sub ecx, edx
mov dword [esp + 8], ecx
mov dword [esp], eax
call sym._fprintf
cmp byte [edi + 0x138], 0
je 0x4077ea
xor ebx, ebx
jmp 0x407720
mov eax, dword [edx]
mov byte [eax], cl
inc dword [edx]
inc ebx
cmp ebx, 9
jg 0x407810
mov eax, dword [edi + 0x24]
mov ecx, dword [0x42dc6c]
lea edx, [eax + eax*4]
shl edx, 2
add edx, ecx
movsx ecx, byte [edx + ebx - 0x14]
mov edx, dword [0x42dc4c]
mov eax, dword [edx + 4]
dec eax
test eax, eax
mov dword [edx + 4], eax
jns 0x407710
mov dword [esp + 4], edx
mov dword [esp], ecx
call sym.__flsbuf
jmp 0x407716
mov dword [esp], 0x20
mov eax, dword [0x42dc4c]
xor ebx, ebx
mov dword [esp + 4], eax
call sym._fputc
jmp 0x40777c
mov eax, dword [edx]
inc ebx
mov byte [eax], cl
inc dword [edx]
cmp ebx, 9
jg 0x4077b5
mov ecx, dword [esi + 0x24]
mov edx, dword [0x42dc6c]
lea eax, [ecx + ecx*4]
shl eax, 2
add eax, edx
mov edx, dword [0x42dc4c]
movsx ecx, byte [eax + ebx - 0x14]
mov eax, dword [edx + 4]
dec eax
mov dword [edx + 4], eax
test eax, eax
jns 0x407770
mov dword [esp + 4], edx
inc ebx
mov dword [esp], ecx
call sym.__flsbuf
cmp ebx, 9
jle 0x40777c
mov dword [esp], 0x429d05
mov ecx, dword [0x42dc4c]
mov edx, 4
mov dword [esp + 8], edx
mov ebx, 1
mov dword [esp + 4], ebx
mov dword [esp + 0xc], ecx
call sym._fwrite
cmp byte [edi + 0x138], 0
jne 0x407708
mov ecx, dword [edi + 0x24]
mov edx, 0x429d0a
mov eax, dword [0x42dc7c]
mov dword [esp + 4], edx
mov ebx, dword [0x42dc4c]
sub ecx, eax
mov dword [esp + 8], ecx
mov dword [esp], ebx
call sym._fprintf
nop
fld qword [esi + 0xc8]
mov edx, str._15.5f
mov ebx, dword [0x42dc4c]
mov dword [esp + 4], edx
fstp qword [esp + 8]
mov dword [esp], ebx
call sym._fprintf
cmp byte [0x42d18c], 0
je 0x407850
cmp byte [0x42d1ac], 0
je 0x407850
cmp byte [edi + 0xa5], 0
je 0x4078e3
mov dword [esp], esi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
mov dword [esp + 0xc], edx
lea ebx, [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
call sym._sigma
fld qword [esp + 0x20]
fcomp qword [esp + 0x28]
fnstsw ax
sahf
ja 0x407913
mov dword [esp], str.___________zero_____infinity_
mov ecx, dword [0x42dc4c]
mov eax, 0x1d
mov dword [esp + 8], eax
mov esi, 1
mov dword [esp + 4], esi
mov dword [esp + 0xc], ecx
call sym._fwrite
fld qword [esp + 0x18]
fcom qword [0x429d60]
fnstsw ax
sahf
ja 0x4079c5
fcomp qword [0x429d68]
fnstsw ax
sahf
jbe 0x4078e3
mov edx, dword [0x42dc4c]
mov esi, dword [edx + 4]
dec esi
mov dword [edx + 4], esi
test esi, esi
js 0x407a79
mov ecx, dword [edx]
mov byte [ecx], 0x2a
inc dword [edx]
mov edx, dword [0x42dc4c]
mov ebx, dword [edx + 4]
dec ebx
mov dword [edx + 4], ebx
test ebx, ebx
js 0x407a64
mov eax, dword [edx]
mov byte [eax], 0xa
inc dword [edx]
cmp byte [edi + 0x138], 0
je 0x4079f8
add esp, 0x30
pop ebx
pop esi
pop edi
ret
mov dword [esp], str.______
mov esi, dword [0x42dc4c]
mov edx, 6
mov dword [esp + 8], edx
mov ebx, 1
mov dword [esp + 4], ebx
mov dword [esp + 0xc], esi
call sym._fwrite
fld qword [esp + 0x28]
fcom qword [0x429d70]
fnstsw ax
sahf
ja 0x407a27
fstp st(0)
mov dword [esp], str._____zero
mov ebx, dword [0x42dc4c]
mov eax, 9
mov dword [esp + 8], eax
mov ecx, 1
mov dword [esp + 4], ecx
mov dword [esp + 0xc], ebx
call sym._fwrite
fld qword [esp + 0x20]
mov ebx, str.__12.5f
mov eax, dword [0x42dc4c]
mov dword [esp + 4], ebx
fstp qword [esp + 8]
mov dword [esp], eax
call sym._fprintf
mov edx, dword [0x42dc4c]
mov ecx, dword [edx + 4]
dec ecx
mov dword [edx + 4], ecx
test ecx, ecx
js 0x407a8e
mov esi, dword [edx]
mov byte [esi], 0x29
fld qword [esp + 0x18]
inc dword [edx]
fcom qword [0x429d60]
fnstsw ax
sahf
jbe 0x4078bc
fstp st(0)
mov dword [esp], 0x429d53
mov ebx, dword [0x42dc4c]
mov ecx, 2
mov dword [esp + 8], ecx
mov edx, 1
mov dword [esp + 4], edx
mov dword [esp + 0xc], ebx
call sym._fwrite
fld qword [esp + 0x18]
jmp 0x4078bc
mov dword [esp], edi
call sym._count_sibs
test eax, eax
mov esi, edi
jle 0x40790c
mov ebx, eax
lea esi, [esi]
mov esi, dword [esi]
mov edi, dword [esi + 4]
mov dword [esp], edi
call sym._describe
dec ebx
jne 0x407a10
add esp, 0x30
pop ebx
pop esi
pop edi
ret
fstp qword [esp + 8]
mov edx, dword [0x42dc4c]
mov esi, str._9.5f
mov dword [esp + 4], esi
mov dword [esp], edx
call sym._fprintf
jmp 0x407978
mov dword [esp], edi
call sym._prot_nuview
jmp 0x4076b0
mov dword [esp], esi
call sym._prot_nuview
mov esi, dword [edi + 4]
jmp 0x4076cd
mov dword [esp + 4], edx
mov dword [esp], 0xa
call sym.__flsbuf
jmp 0x4078ff
mov dword [esp + 4], edx
mov dword [esp], 0x2a
call sym.__flsbuf
jmp 0x4078e3
mov dword [esp + 4], edx
mov dword [esp], 0x29
call sym.__flsbuf
jmp 0x4078a9