45600a:	e8 77 72 fb ff       	call   0x40d286
45600f:	99                   	cltd
456010:	f7 ff                	idiv   %edi
456012:	8b 75 0c             	mov    0xc(%ebp),%esi
456015:	8b ce                	mov    %esi,%ecx
456017:	8b fa                	mov    %edx,%edi
456019:	e8 02 cc fb ff       	call   0x412c20
45601e:	89 5e 0c             	mov    %ebx,0xc(%esi)
456021:	89 3e                	mov    %edi,(%esi)
456023:	e9 a2 00 00 00       	jmp    0x4560ca
456028:	8b 7e 04             	mov    0x4(%esi),%edi
45602b:	8b 0f                	mov    (%edi),%ecx
45602d:	e8 7e 74 fb ff       	call   0x40d4b0
456032:	84 c0                	test   %al,%al
456034:	74 55                	je     0x45608b
456036:	8b 4f 04             	mov    0x4(%edi),%ecx
456039:	e8 72 74 fb ff       	call   0x40d4b0
45603e:	84 c0                	test   %al,%al
456040:	74 49                	je     0x45608b
456042:	8b 4f 04             	mov    0x4(%edi),%ecx
456045:	e8 49 6f fb ff       	call   0x40cf93
45604a:	0b c2                	or     %edx,%eax
45604c:	74 3d                	je     0x45608b
45604e:	8b 4e 04             	mov    0x4(%esi),%ecx
456051:	8b 19                	mov    (%ecx),%ebx
456053:	8b 49 04             	mov    0x4(%ecx),%ecx
456056:	e8 38 6f fb ff       	call   0x40cf93
45605b:	8b cb                	mov    %ebx,%ecx
45605d:	8b f8                	mov    %eax,%edi
45605f:	8b f2                	mov    %edx,%esi
456061:	e8 2d 6f fb ff       	call   0x40cf93
456066:	56                   	push   %esi
456067:	57                   	push   %edi
456068:	52                   	push   %edx
456069:	50                   	push   %eax
45606a:	e8 f1 c3 fd ff       	call   0x432460
45606f:	8b 7d 0c             	mov    0xc(%ebp),%edi
456072:	8b cf                	mov    %edi,%ecx
456074:	8b f0                	mov    %eax,%esi
456076:	8b da                	mov    %edx,%ebx
456078:	e8 a3 cb fb ff       	call   0x412c20
45607d:	c7 47 0c 02 00 00 00 	movl   $0x2,0xc(%edi)
456084:	89 37                	mov    %esi,(%edi)
456086:	89 5f 04             	mov    %ebx,0x4(%edi)
456089:	eb 3f                	jmp    0x4560ca
45608b:	8b 46 04             	mov    0x4(%esi),%eax
45608e:	8b 48 04             	mov    0x4(%eax),%ecx
456091:	8b 30                	mov    (%eax),%esi
456093:	e8 38 cc fb ff       	call   0x412cd0
456098:	51                   	push   %ecx
456099:	51                   	push   %ecx
45609a:	8b ce                	mov    %esi,%ecx
45609c:	dd 1c 24             	fstpl  (%esp)
45609f:	e8 2c cc fb ff       	call   0x412cd0
4560a4:	51                   	push   %ecx
4560a5:	51                   	push   %ecx
4560a6:	dd 1c 24             	fstpl  (%esp)
4560a9:	e8 b2 e8 fc ff       	call   0x424960
4560ae:	8b 75 0c             	mov    0xc(%ebp),%esi
4560b1:	dd 5d f8             	fstpl  -0x8(%ebp)
4560b4:	83 c4 10             	add    $0x10,%esp
4560b7:	8b ce                	mov    %esi,%ecx
4560b9:	e8 62 cb fb ff       	call   0x412c20
4560be:	dd 45 f8             	fldl   -0x8(%ebp)
4560c1:	dd 1e                	fstpl  (%esi)
4560c3:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4560ca:	5f                   	pop    %edi
4560cb:	5e                   	pop    %esi
4560cc:	33 c0                	xor    %eax,%eax
4560ce:	5b                   	pop    %ebx
4560cf:	c9                   	leave
4560d0:	c2 08 00             	ret    $0x8
4560d3:	55                   	push   %ebp
4560d4:	8b ec                	mov    %esp,%ebp
4560d6:	8b 45 08             	mov    0x8(%ebp),%eax
4560d9:	56                   	push   %esi
4560da:	8b 40 04             	mov    0x4(%eax),%eax
4560dd:	57                   	push   %edi
4560de:	8b 08                	mov    (%eax),%ecx
4560e0:	e8 92 54 ff ff       	call   0x44b577
4560e5:	8b 75 0c             	mov    0xc(%ebp),%esi
4560e8:	8b ce                	mov    %esi,%ecx
4560ea:	8b f8                	mov    %eax,%edi
4560ec:	e8 2f cb fb ff       	call   0x412c20
4560f1:	89 3e                	mov    %edi,(%esi)
4560f3:	5f                   	pop    %edi
4560f4:	c7 46 0c 07 00 00 00 	movl   $0x7,0xc(%esi)
4560fb:	33 c0                	xor    %eax,%eax
4560fd:	5e                   	pop    %esi
4560fe:	5d                   	pop    %ebp
4560ff:	c2 08 00             	ret    $0x8
456102:	55                   	push   %ebp
456103:	8b ec                	mov    %esp,%ebp
456105:	83 ec 14             	sub    $0x14,%esp
456108:	53                   	push   %ebx
456109:	56                   	push   %esi
45610a:	8b 75 08             	mov    0x8(%ebp),%esi
45610d:	57                   	push   %edi
45610e:	83 7e 08 03          	cmpl   $0x3,0x8(%esi)
456112:	8b d9                	mov    %ecx,%ebx
456114:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
456118:	75 13                	jne    0x45612d
45611a:	8b 46 04             	mov    0x4(%esi),%eax
45611d:	8b 48 08             	mov    0x8(%eax),%ecx
456120:	e8 61 71 fb ff       	call   0x40d286
456125:	83 f8 01             	cmp    $0x1,%eax
456128:	75 03                	jne    0x45612d
45612a:	88 45 ff             	mov    %al,-0x1(%ebp)
45612d:	8b 7d 0c             	mov    0xc(%ebp),%edi
456130:	8b cf                	mov    %edi,%ecx
456132:	e8 e9 ca fb ff       	call   0x412c20
456137:	83 27 00             	andl   $0x0,(%edi)
45613a:	33 c9                	xor    %ecx,%ecx
45613c:	41                   	inc    %ecx
45613d:	89 4f 0c             	mov    %ecx,0xc(%edi)
456140:	8b 46 08             	mov    0x8(%esi),%eax
456143:	85 c0                	test   %eax,%eax
456145:	0f 84 21 01 00 00    	je     0x45626c
45614b:	3b c1                	cmp    %ecx,%eax
45614d:	0f 84 ea 00 00 00    	je     0x45623d
456153:	83 c0 fe             	add    $0xfffffffe,%eax
456156:	3b c1                	cmp    %ecx,%eax
456158:	0f 87 29 01 00 00    	ja     0x456287
45615e:	8b 46 04             	mov    0x4(%esi),%eax
456161:	6a 05                	push   $0x5
456163:	8b 08                	mov    (%eax),%ecx
456165:	e8 7a 74 fb ff       	call   0x40d5e4
45616a:	84 c0                	test   %al,%al
45616c:	0f 85 b9 00 00 00    	jne    0x45622b
456172:	8b 46 04             	mov    0x4(%esi),%eax
456175:	6a 05                	push   $0x5
456177:	8b 40 04             	mov    0x4(%eax),%eax
45617a:	8b c8                	mov    %eax,%ecx
45617c:	89 45 0c             	mov    %eax,0xc(%ebp)
45617f:	e8 60 74 fb ff       	call   0x40d5e4
456184:	84 c0                	test   %al,%al
456186:	0f 85 9f 00 00 00    	jne    0x45622b
45618c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45618f:	38 45 ff             	cmp    %al,-0x1(%ebp)
456192:	74 56                	je     0x4561ea
456194:	e8 ed 70 fb ff       	call   0x40d286
456199:	8b 4d 08             	mov    0x8(%ebp),%ecx
45619c:	8b f0                	mov    %eax,%esi
45619e:	8b 49 04             	mov    0x4(%ecx),%ecx
4561a1:	8b 09                	mov    (%ecx),%ecx
4561a3:	e8 de 70 fb ff       	call   0x40d286
4561a8:	8b c8                	mov    %eax,%ecx
4561aa:	8b c6                	mov    %esi,%eax
4561ac:	2b c1                	sub    %ecx,%eax
4561ae:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4561b1:	89 45 08             	mov    %eax,0x8(%ebp)
4561b4:	3b ce                	cmp    %esi,%ecx
4561b6:	7d 73                	jge    0x45622b
4561b8:	85 c0                	test   %eax,%eax
4561ba:	7e 6f                	jle    0x45622b
4561bc:	3d ff ff ff 07       	cmp    $0x7ffffff,%eax
4561c1:	7d 04                	jge    0x4561c7
4561c3:	40                   	inc    %eax
4561c4:	89 45 08             	mov    %eax,0x8(%ebp)
4561c7:	e8 1c 54 ff ff       	call   0x44b5e8
4561cc:	99                   	cltd
4561cd:	f7 7d 08             	idivl  0x8(%ebp)
4561d0:	8b 75 0c             	mov    0xc(%ebp),%esi
4561d3:	8b cf                	mov    %edi,%ecx
4561d5:	03 f2                	add    %edx,%esi
4561d7:	e8 44 ca fb ff       	call   0x412c20
4561dc:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
4561e3:	89 37                	mov    %esi,(%edi)
4561e5:	e9 9d 00 00 00       	jmp    0x456287
4561ea:	e8 e1 ca fb ff       	call   0x412cd0
4561ef:	dd 5d f4             	fstpl  -0xc(%ebp)
4561f2:	8b 46 04             	mov    0x4(%esi),%eax
4561f5:	8b 08                	mov    (%eax),%ecx
4561f7:	e8 d4 ca fb ff       	call   0x412cd0
4561fc:	dd 55 ec             	fstl   -0x14(%ebp)
4561ff:	dc 5d f4             	fcompl -0xc(%ebp)
456202:	df e0                	fnstsw %ax
456204:	f6 c4 01             	test   $0x1,%ah
456207:	74 22                	je     0x45622b
456209:	e8 1f 54 ff ff       	call   0x44b62d
45620e:	dd 45 f4             	fldl   -0xc(%ebp)
456211:	dd 45 ec             	fldl   -0x14(%ebp)
456214:	8b cf                	mov    %edi,%ecx
456216:	dc e9                	fsubr  %st,%st(1)
456218:	d9 ca                	fxch   %st(2)
45621a:	de c9                	fmulp  %st,%st(1)
45621c:	de c1                	faddp  %st,%st(1)
45621e:	dd 5d ec             	fstpl  -0x14(%ebp)
456221:	e8 fa c9 fb ff       	call   0x412c20
456226:	dd 45 ec             	fldl   -0x14(%ebp)
456229:	eb 53                	jmp    0x45627e
45622b:	8b 03                	mov    (%ebx),%eax
45622d:	6a 00                	push   $0x0
45622f:	8b 48 04             	mov    0x4(%eax),%ecx
456232:	6a 01                	push   $0x1
456234:	03 cb                	add    %ebx,%ecx
456236:	e8 11 6d ff ff       	call   0x44cf4c
45623b:	eb 4a                	jmp    0x456287
45623d:	8b 46 04             	mov    0x4(%esi),%eax
456240:	8b 08                	mov    (%eax),%ecx
456242:	e8 89 ca fb ff       	call   0x412cd0
456247:	dd 55 ec             	fstl   -0x14(%ebp)
45624a:	d9 ee                	fldz
45624c:	de d9                	fcompp
45624e:	df e0                	fnstsw %ax
456250:	f6 c4 01             	test   $0x1,%ah
456253:	74 d6                	je     0x45622b
456255:	e8 d3 53 ff ff       	call   0x44b62d
45625a:	dc 4d ec             	fmull  -0x14(%ebp)
45625d:	8b cf                	mov    %edi,%ecx
45625f:	dd 5d ec             	fstpl  -0x14(%ebp)
456262:	e8 b9 c9 fb ff       	call   0x412c20
456267:	dd 45 ec             	fldl   -0x14(%ebp)
45626a:	eb 12                	jmp    0x45627e
45626c:	e8 bc 53 ff ff       	call   0x44b62d
456271:	dd 5d ec             	fstpl  -0x14(%ebp)
456274:	8b cf                	mov    %edi,%ecx
456276:	e8 a5 c9 fb ff       	call   0x412c20
45627b:	dd 45 ec             	fldl   -0x14(%ebp)
45627e:	dd 1f                	fstpl  (%edi)
456280:	c7 47 0c 03 00 00 00 	movl   $0x3,0xc(%edi)
456287:	5f                   	pop    %edi
456288:	5e                   	pop    %esi
456289:	33 c0                	xor    %eax,%eax
45628b:	5b                   	pop    %ebx
45628c:	c9                   	leave
45628d:	c2 08 00             	ret    $0x8
456290:	55                   	push   %ebp
456291:	8b ec                	mov    %esp,%ebp
456293:	8b 45 08             	mov    0x8(%ebp),%eax
456296:	8b 40 04             	mov    0x4(%eax),%eax
456299:	8b 08                	mov    (%eax),%ecx
45629b:	e8 e6 6f fb ff       	call   0x40d286
4562a0:	8b c8                	mov    %eax,%ecx
4562a2:	e8 e9 53 ff ff       	call   0x44b690
4562a7:	33 c0                	xor    %eax,%eax
4562a9:	5d                   	pop    %ebp
4562aa:	c2 08 00             	ret    $0x8
4562ad:	55                   	push   %ebp
4562ae:	8b ec                	mov    %esp,%ebp
4562b0:	51                   	push   %ecx
4562b1:	51                   	push   %ecx
4562b2:	8b 45 08             	mov    0x8(%ebp),%eax
4562b5:	56                   	push   %esi
4562b6:	8b 40 04             	mov    0x4(%eax),%eax
4562b9:	8b 08                	mov    (%eax),%ecx
4562bb:	e8 10 ca fb ff       	call   0x412cd0
4562c0:	51                   	push   %ecx
4562c1:	51                   	push   %ecx
4562c2:	dd 1c 24             	fstpl  (%esp)
4562c5:	e8 da e6 fc ff       	call   0x4249a4
4562ca:	8b 75 0c             	mov    0xc(%ebp),%esi
4562cd:	dd 5d f8             	fstpl  -0x8(%ebp)
4562d0:	83 c4 08             	add    $0x8,%esp
4562d3:	8b ce                	mov    %esi,%ecx
4562d5:	e8 46 c9 fb ff       	call   0x412c20
4562da:	dd 45 f8             	fldl   -0x8(%ebp)
4562dd:	dd 1e                	fstpl  (%esi)
4562df:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4562e6:	33 c0                	xor    %eax,%eax
4562e8:	5e                   	pop    %esi
4562e9:	c9                   	leave
4562ea:	c2 08 00             	ret    $0x8
4562ed:	55                   	push   %ebp
4562ee:	8b ec                	mov    %esp,%ebp
4562f0:	8b 45 08             	mov    0x8(%ebp),%eax
4562f3:	56                   	push   %esi
4562f4:	8b 40 04             	mov    0x4(%eax),%eax
4562f7:	8b 30                	mov    (%eax),%esi
4562f9:	8b ce                	mov    %esi,%ecx
4562fb:	e8 6c 30 fb ff       	call   0x40936c
456300:	ff 76 08             	push   0x8(%esi)
456303:	8b 4d 0c             	mov    0xc(%ebp),%ecx
456306:	e8 5d 08 fb ff       	call   0x406b68
45630b:	33 c0                	xor    %eax,%eax
45630d:	5e                   	pop    %esi
45630e:	5d                   	pop    %ebp
45630f:	c2 08 00             	ret    $0x8
456312:	55                   	push   %ebp
456313:	8b ec                	mov    %esp,%ebp
456315:	51                   	push   %ecx
456316:	51                   	push   %ecx
456317:	8b 45 08             	mov    0x8(%ebp),%eax
45631a:	56                   	push   %esi
45631b:	8b 40 04             	mov    0x4(%eax),%eax
45631e:	8b 08                	mov    (%eax),%ecx
456320:	e8 ab c9 fb ff       	call   0x412cd0
456325:	51                   	push   %ecx
456326:	51                   	push   %ecx
456327:	dd 1c 24             	fstpl  (%esp)
45632a:	e8 a1 e2 fc ff       	call   0x4245d0
45632f:	8b 75 0c             	mov    0xc(%ebp),%esi
456332:	dd 5d f8             	fstpl  -0x8(%ebp)
456335:	83 c4 08             	add    $0x8,%esp
456338:	8b ce                	mov    %esi,%ecx
45633a:	e8 e1 c8 fb ff       	call   0x412c20
45633f:	dd 45 f8             	fldl   -0x8(%ebp)
456342:	dd 1e                	fstpl  (%esi)
456344:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
45634b:	33 c0                	xor    %eax,%eax
45634d:	5e                   	pop    %esi
45634e:	c9                   	leave
45634f:	c2 08 00             	ret    $0x8
456352:	55                   	push   %ebp
456353:	8b ec                	mov    %esp,%ebp
456355:	8b 45 14             	mov    0x14(%ebp),%eax
456358:	53                   	push   %ebx
456359:	33 d2                	xor    %edx,%edx
45635b:	33 db                	xor    %ebx,%ebx
45635d:	56                   	push   %esi
45635e:	8b 75 08             	mov    0x8(%ebp),%esi
456361:	43                   	inc    %ebx
456362:	89 16                	mov    %edx,(%esi)
456364:	89 56 08             	mov    %edx,0x8(%esi)
456367:	89 5e 0c             	mov    %ebx,0xc(%esi)
45636a:	2b c2                	sub    %edx,%eax
45636c:	74 2d                	je     0x45639b
45636e:	8b ce                	mov    %esi,%ecx
456370:	48                   	dec    %eax
456371:	74 19                	je     0x45638c
456373:	e8 a8 c8 fb ff       	call   0x412c20
456378:	8b 45 0c             	mov    0xc(%ebp),%eax
45637b:	89 06                	mov    %eax,(%esi)
45637d:	8b 45 10             	mov    0x10(%ebp),%eax
456380:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
456387:	89 46 04             	mov    %eax,0x4(%esi)
45638a:	eb 51                	jmp    0x4563dd
45638c:	e8 8f c8 fb ff       	call   0x412c20
456391:	8b 45 0c             	mov    0xc(%ebp),%eax
456394:	89 5e 0c             	mov    %ebx,0xc(%esi)
456397:	89 06                	mov    %eax,(%esi)
456399:	eb 42                	jmp    0x4563dd
45639b:	8b 5d 10             	mov    0x10(%ebp),%ebx
45639e:	57                   	push   %edi
45639f:	8b 7d 0c             	mov    0xc(%ebp),%edi
4563a2:	8b cf                	mov    %edi,%ecx
4563a4:	81 c1 00 00 00 80    	add    $0x80000000,%ecx
4563aa:	8b c3                	mov    %ebx,%eax
4563ac:	13 c2                	adc    %edx,%eax
4563ae:	3b c2                	cmp    %edx,%eax
4563b0:	77 17                	ja     0x4563c9
4563b2:	72 05                	jb     0x4563b9
4563b4:	83 f9 ff             	cmp    $0xffffffff,%ecx
4563b7:	77 10                	ja     0x4563c9
4563b9:	8b ce                	mov    %esi,%ecx
4563bb:	e8 60 c8 fb ff       	call   0x412c20
4563c0:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4563c7:	eb 11                	jmp    0x4563da
4563c9:	8b ce                	mov    %esi,%ecx
4563cb:	e8 50 c8 fb ff       	call   0x412c20