Function at 0x40c160
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x6c
fld qword [esp + 0x80]
fstp qword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
lea eax, [ecx - 0x80000000]
mov dword [esp + 0x2c], edi
or eax, edi
je 0x40c260
mov eax, ecx
or eax, dword [esp + 0x2c]
je 0x40c240
fld qword [esp + 0x20]
fchs
fld qword [esp + 0x20]
fldz
fcompi st(1)
fld st(0)
fcmovnbe st(0), st(2)
fstp st(2)
fld qword [0x424570]
fxch st(2)
fcomi st(2)
fstp st(2)
jb 0x40c1d0
fld dword [0x424554]
fcompi st(2)
fstp st(1)
ja 0x40c370
fstp st(0)
jmp 0x40c1d4
fstp st(0)
fstp st(0)
mov eax, ecx
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
shr eax, 0x1f
mov dword [esp + 0x30], eax
mov eax, ecx
shr ecx, 0x14
and ecx, 0x7ff
and eax, 0xfffff
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x20]
mov dword [esp + 0x34], eax
cmp edi, 0x7ff
je 0x40c3d0
mov ecx, dword [esp + 0x2c]
or ecx, edi
or ecx, eax
jne 0x40c280
cmp byte [esp + 0x30], 0
jne 0x40c4d0
mov dword [ebx], str.0e00
mov dword [ebx + 4], 5
mov dword [ebx + 8], 1
jmp 0x40c254
mov dword [ebx], 0x423bff
mov dword [ebx + 4], 3
mov dword [ebx + 8], 1
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebx], str._0.0
mov eax, ebx
mov dword [ebx + 4], 4
mov dword [ebx + 8], 1
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, edi
mov ecx, 0x34
mov edi, ebp
add esi, 0xfffffc01
adc edi, 0xffffffff
cmp ecx, esi
mov ecx, 0
sbb ecx, edi
jb 0x40c2fb
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
or eax, 0x100000
mov dword [esp + 0x3c], eax
mov eax, 0x34
mov edi, dword [esp + 0x3c]
sub eax, esi
mov esi, dword [esp + 0x38]
mov ecx, eax
xor eax, eax
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
cmovne esi, edi
cmovne edi, eax
xor ebp, ebp
mov eax, esi
mov edx, edi
shl eax, cl
shld edx, esi, cl
test cl, 0x20
mov ecx, dword [esp + 0x38]
cmovne edx, eax
cmovne eax, ebp
mov ebp, dword [esp + 0x3c]
xor ecx, eax
xor ebp, edx
or ebp, ecx
je 0x40c420
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov dword [esp], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2c]
call sym._strconv__f64_to_decimal
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x11
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc], eax
mov eax, ebx
call sym._strconv__Dec64_get_string_64
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x44]
fstp qword [esp]
mov edx, 0x12
call sym._strconv__f64_to_str
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
lea eax, [esp + 0x50]
call sym._strconv__fxx_to_str_l_parse
cmp esi, 0xfa1d05ee
je 0x40c4f0
mov eax, dword [esp + 0x50]
mov dword [ebx], eax
mov eax, dword [esp + 0x54]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x58]
mov dword [ebx + 8], eax
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
or eax, dword [esp + 0x2c]
je 0x40c3ef
mov dword [ebx], 0x423eba
mov dword [ebx + 4], 3
mov dword [ebx + 8], 1
jmp 0x40c254
cmp byte [esp + 0x30], 0
je 0x40c4b0
mov dword [ebx], str._inf
mov dword [ebx + 4], 4
mov dword [ebx + 8], 1
jmp 0x40c254
mov dword [esp + 8], 0xa
xor ebp, ebp
mov dword [esp + 0xc], 0
mov dword [esp], esi
mov dword [esp + 4], edi
call dbg.__umoddi3
or edx, eax
jne 0x40c493
lea esi, [esi]
lea esi, [esi]
mov dword [esp], esi
add ebp, 1
mov dword [esp + 4], edi
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0
call dbg.__udivdi3
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0
mov esi, eax
mov edi, edx
mov dword [esp], eax
mov dword [esp + 4], edx
call dbg.__umoddi3
or edx, eax
je 0x40c450
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], ebp
jmp 0x40c31b
mov dword [ebx], str.inf
mov dword [ebx + 4], 4
mov dword [ebx + 8], 1
jmp 0x40c254
mov dword [ebx], str._0e00
mov dword [ebx + 4], 6
mov dword [ebx + 8], 1
jmp 0x40c254
mov dword [esp], 1
mov edi, str.double_string.free___detected_n
mov esi, 0x1e
call dword [0x422888]
mov ebp, eax
lea esi, [esi]
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 4], 1
call sym._fwrite
sub esi, eax
add edi, eax
test esi, esi
jg 0x40c510
jmp 0x40c3ad