Function at 0x415b80
Capabilities:
Write file on windows

Disassembly:
push ebp
xor ecx, ecx
xor ebp, ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [esp + 0x64]
fld qword [esp + 0x68]
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x70]
mov byte [esp + 0x27], 0
mov esi, dword [esp + 0x60]
mov dword [esp + 0x3c], ebx
mov ebx, dword [edi + 8]
fstp qword [esp + 0x30]
mov dword [esp + 0x2c], edi
fld qword [ebx + 0x38]
fnstcw word [esp + 0x46]
movzx edx, word [esp + 0x46]
mov dword [esp + 0x28], ebx
or dx, 0xc00
mov word [esp + 0x44], dx
fldcw word [esp + 0x44]
fistp dword [esp + 0x40]
fldcw word [esp + 0x46]
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x3c]
je 0x416089
mov dword [esp + 0xc], esi
mov edi, 2
mov eax, 1
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], 0x42a6c5
call sym._fwrite
fnstcw word [esp + 0x46]
movzx ecx, word [esp + 0x46]
or cx, 0xc00
mov word [esp + 0x44], cx
lea esi, [esi]
movzx edx, byte [ebx + 0x138]
test dl, dl
mov byte [esp + 0x1e], dl
jne 0x415cc0
mov byte [esp + 0x1f], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebx]
mov edi, dword [eax + 8]
mov ebp, ecx
cmp edi, ebx
jne 0x415c60
jmp 0x415fcd
cmp edi, ebx
sete al
cmp ecx, ebx
setne dl
or eax, edx
test al, 1
je 0x415c89
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x3c]
cmp dword [eax + 0x9c], edx
jg 0x415c80
cmp dword [eax + 0xa0], edx
jl 0x415c80
mov dword [esp + 0x28], eax
mov byte [esp + 0x1f], 1
cmp byte [esp + 0x1f], 0
mov ecx, dword [ecx]
je 0x415c50
mov ecx, dword [ebp + 4]
cmp ebp, ebx
mov edx, ebx
mov dword [esp + 0x20], ecx
je 0x415ca8
mov eax, dword [ebx]
nop
lea esi, [esi]
mov edx, eax
mov eax, dword [eax]
cmp eax, ebx
jne 0x415ca0
cmp edi, ebx
mov ebp, dword [edx + 4]
jne 0x415cc0
mov ebp, dword [edi + 4]
lea esi, [esi]
lea edi, [edi]
fld qword [ebx + 0x30]
mov edx, dword [esp + 0x28]
cmp byte [esp + 0x1e], 0
fsubr qword [edx + 0x30]
setne byte [esp + 0x1d]
fmul qword [esp + 0x30]
cmp ebx, dword [esp + 0x28]
sete al
fadd dword [0x42a7c8]
or byte [esp + 0x1d], al
fldcw word [esp + 0x44]
fistp dword [esp + 0x40]
fldcw word [esp + 0x46]
mov edi, dword [esp + 0x40]
cmp edi, 2
jg 0x415d10
cmp byte [edx + 0x138], 0
jne 0x415d10
mov edi, 3
lea esi, [esi]
cmp byte [esp + 0x27], 0
je 0x415d1d
mov byte [esp + 0x27], 0
dec edi
movzx eax, byte [esp + 0x1d]
mov ecx, dword [esp + 0x28]
fld qword [ecx + 0x38]
fldcw word [esp + 0x44]
fistp dword [esp + 0x40]
fldcw word [esp + 0x46]
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x3c]
sete dl
xor al, 1
movzx eax, al
test eax, edx
je 0x415e4d
fld qword [ebx + 0x38]
fldcw word [esp + 0x44]
fistp dword [esp + 0x40]
fldcw word [esp + 0x46]
mov ebx, dword [esp + 0x40]
cmp ebx, ecx
je 0x41604d
mov edx, dword [esi + 4]
dec edx
test edx, edx
mov dword [esi + 4], edx
js 0x4160b8
mov eax, dword [esi]
mov byte [eax], 0x2b
inc dword [esi]
mov edx, dword [esp + 0x28]
cmp byte [edx + 0x138], 0
jne 0x415f02
lea eax, [edi - 2]
cmp eax, 1
jl 0x415db9
mov ebx, eax
lea esi, [esi]
mov edi, dword [esi + 4]
dec edi
test edi, edi
mov dword [esi + 4], edi
js 0x41600e
mov eax, dword [esi]
mov byte [eax], 0x2d
inc dword [esi]
dec ebx
jne 0x415da0
mov ebx, dword [esp + 0x28]
mov ecx, dword [0x42dc7c]
mov eax, dword [ebx + 0x24]
sub eax, ecx
cmp eax, 9
jle 0x416066
mov dword [esp + 8], eax
mov eax, str._2ld
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._fprintf
mov byte [esp + 0x27], 1
nop
lea esi, [esi]
fnstcw word [esp + 0x46]
movzx ebx, word [esp + 0x46]
or bx, 0xc00
mov word [esp + 0x44], bx
cmp byte [esp + 0x1d], 0
mov ebx, dword [esp + 0x28]
je 0x415c20
fld qword [ebx + 0x38]
fldcw word [esp + 0x44]
fistp dword [esp + 0x40]
fldcw word [esp + 0x46]
mov ebp, dword [esp + 0x40]
cmp ebp, dword [esp + 0x3c]
je 0x4160d8
mov edi, dword [esi + 4]
dec edi
test edi, edi
mov dword [esi + 4], edi
js 0x416129
mov ebx, dword [esi]
mov byte [ebx], 0xa
inc dword [esi]
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [esp + 0x1e], 0
jne 0x415f3e
fld qword [ebp + 0x38]
fldcw word [esp + 0x44]
fistp dword [esp + 0x40]
fldcw word [esp + 0x46]
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x3c]
jle 0x415f7e
mov edx, dword [esp + 0x20]
fld qword [edx + 0x38]
fldcw word [esp + 0x44]
fistp dword [esp + 0x40]
fldcw word [esp + 0x46]
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x3c]
jge 0x415f7e
fld qword [ebx + 0x38]
fldcw word [esp + 0x44]
fistp dword [esp + 0x40]
fldcw word [esp + 0x46]
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x3c]
je 0x415f71
mov ebx, dword [esi + 4]
dec ebx
test ebx, ebx
mov dword [esi + 4], ebx
js 0x416157
mov edx, dword [esi]
mov byte [edx], 0x7c
inc dword [esi]
cmp edi, 1
jle 0x415df0
lea ebx, [edi - 1]
jmp 0x415ee5
mov eax, dword [esi]
mov byte [eax], 0x20
inc dword [esi]
dec ebx
je 0x415df0
mov edi, dword [esi + 4]
dec edi
test edi, edi
mov dword [esi + 4], edi
jns 0x415ed7
mov dword [esp + 4], esi
mov dword [esp], 0x20
call sym.__flsbuf
jmp 0x415ede
cmp edi, 1
jle 0x415df0
lea ebx, [edi - 1]
mov edx, dword [esi + 4]
dec edx
mov dword [esi + 4], edx
test edx, edx
jmp 0x415f29
mov edx, dword [esi + 4]
dec edx
test edx, edx
mov dword [esi + 4], edx
js 0x416038
mov edi, dword [esi]
mov byte [edi], 0x2d
inc dword [esi]
dec ebx
jne 0x415f20
jmp 0x415df0
test edi, edi
jle 0x415e03
mov ebx, edi
mov edi, dword [esi + 4]
dec edi
mov dword [esi + 4], edi
test edi, edi
jmp 0x415f5c
mov edi, dword [esi + 4]
dec edi
test edi, edi
mov dword [esi + 4], edi
js 0x416023
mov eax, dword [esi]
mov byte [eax], 0x20
inc dword [esi]
dec ebx
jne 0x415f53
jmp 0x415df0
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 8], ebx
je 0x415eb3
test edi, edi
jle 0x415e03
mov ebx, edi
mov ecx, dword [esi + 4]
dec ecx
mov dword [esi + 4], ecx
test ecx, ecx
jmp 0x415f9c
mov ecx, dword [esi + 4]
dec ecx
test ecx, ecx
mov dword [esi + 4], ecx
js 0x416074
mov edx, dword [esi]
mov byte [edx], 0x20
inc dword [esi]
dec ebx
jne 0x415f93
jmp 0x415df0
cmp edi, ebx
sete al
cmp ecx, ebx
setne dl
or eax, edx
test al, 1
je 0x415c89
cmp ebp, ecx
je 0x415c89
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x3c]
cmp dword [eax + 0x9c], edx
jg 0x416000
mov edx, dword [esp + 0x3c]
cmp dword [eax + 0xa0], edx
jl 0x416000
mov dword [esp + 0x28], eax
mov byte [esp + 0x1f], 1
jmp 0x416000
cmp byte [esp + 0x1f], 0
mov ecx, dword [ecx]
je 0x415fb1
jmp 0x415c89
mov dword [esp + 4], esi
mov dword [esp], 0x2d
call sym.__flsbuf
jmp 0x415db6
mov dword [esp + 4], esi
mov dword [esp], 0x20
call sym.__flsbuf
jmp 0x415f69
mov dword [esp + 4], esi
mov dword [esp], 0x2d
call sym.__flsbuf
jmp 0x415f36
mov ecx, dword [esi + 4]
dec ecx
test ecx, ecx
mov dword [esi + 4], ecx
js 0x416142
mov ebx, dword [esi]
mov byte [ebx], 0x2d
jmp 0x415d7c
mov dword [esp + 8], eax
mov eax, str.__ld
jmp 0x415dda
mov dword [esp + 4], esi
mov dword [esp], 0x20
call sym.__flsbuf
jmp 0x415fa9
mov eax, dword [ebx + 0x24]
mov edx, dword [0x42dc7c]
sub eax, edx
cmp eax, 9
jle 0x4160cd
mov dword [esp + 8], eax
mov eax, str.__2ld
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._fprintf
mov byte [esp + 0x27], 1
jmp 0x415c09
mov dword [esp + 4], esi
mov dword [esp], 0x2b
call sym.__flsbuf
jmp 0x415d7e
mov dword [esp + 8], eax
mov eax, 0x42a6b4
jmp 0x4160a2
cmp byte [ebx + 0x138], 0
je 0x415e2f
xor edi, edi
jmp 0x4160f9
mov ecx, dword [esi]
mov byte [ecx], dl
inc dword [esi]
inc edi
cmp edi, 9
jg 0x415e2f
mov ebp, dword [ebx + 0x24]
mov ecx, dword [esi + 4]
mov edx, dword [0x42dc6c]
lea eax, [ebp + ebp*4]
shl eax, 2
dec ecx
add eax, edx
test ecx, ecx
movsx edx, byte [eax + edi - 0x14]
mov dword [esi + 4], ecx
jns 0x4160e9
mov dword [esp + 4], esi
mov dword [esp], edx
call sym.__flsbuf
jmp 0x4160ef
mov dword [esp + 0x64], esi
mov esi, 0xa
mov dword [esp + 0x60], esi
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
jmp sym.__flsbuf
mov dword [esp + 4], esi
mov dword [esp], 0x2d
call sym.__flsbuf
jmp 0x415d7e
mov dword [esp + 4], esi
mov dword [esp], 0x7c
call sym.__flsbuf
jmp 0x415ec9