40d319:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
40d31d:	0f 97 c3             	seta   %bl
40d320:	e8 57 93 ff ff       	call   0x40667c
40d325:	3b 47 24             	cmp    0x24(%edi),%eax
40d328:	74 40                	je     0x40d36a
40d32a:	84 db                	test   %bl,%bl
40d32c:	75 3c                	jne    0x40d36a
40d32e:	8b c7                	mov    %edi,%eax
40d330:	e8 af fe ff ff       	call   0x40d1e4
40d335:	eb 27                	jmp    0x40d35e
40d337:	8d 47 0c             	lea    0xc(%edi),%eax
40d33a:	e8 21 fc ff ff       	call   0x40cf60
40d33f:	8b f0                	mov    %eax,%esi
40d341:	81 fe ff ff 00 00    	cmp    $0xffff,%esi
40d347:	75 07                	jne    0x40d350
40d349:	8b c7                	mov    %edi,%eax
40d34b:	e8 88 fe ff ff       	call   0x40d1d8
40d350:	6a 00                	push   $0x0
40d352:	e8 a1 fa ff ff       	call   0x40cdf8
40d357:	8b c7                	mov    %edi,%eax
40d359:	e8 86 fe ff ff       	call   0x40d1e4
40d35e:	8d 47 0c             	lea    0xc(%edi),%eax
40d361:	e8 06 fc ff ff       	call   0x40cf6c
40d366:	85 c0                	test   %eax,%eax
40d368:	7e cd                	jle    0x40d337
40d36a:	5a                   	pop    %edx
40d36b:	5f                   	pop    %edi
40d36c:	5e                   	pop    %esi
40d36d:	5b                   	pop    %ebx
40d36e:	c3                   	ret
40d36f:	90                   	nop
40d370:	53                   	push   %ebx
40d371:	51                   	push   %ecx
40d372:	8b d8                	mov    %eax,%ebx
40d374:	8b d4                	mov    %esp,%edx
40d376:	8b 43 20             	mov    0x20(%ebx),%eax
40d379:	e8 8e fc ff ff       	call   0x40d00c
40d37e:	8b 04 24             	mov    (%esp),%eax
40d381:	ff 48 0c             	decl   0xc(%eax)
40d384:	8b 04 24             	mov    (%esp),%eax
40d387:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40d38b:	75 48                	jne    0x40d3d5
40d38d:	8b d4                	mov    %esp,%edx
40d38f:	8b 43 20             	mov    0x20(%ebx),%eax
40d392:	e8 09 fd ff ff       	call   0x40d0a0
40d397:	e8 e0 92 ff ff       	call   0x40667c
40d39c:	3b 43 24             	cmp    0x24(%ebx),%eax
40d39f:	74 34                	je     0x40d3d5
40d3a1:	8d 43 0c             	lea    0xc(%ebx),%eax
40d3a4:	e8 b7 fb ff ff       	call   0x40cf60
40d3a9:	8b c8                	mov    %eax,%ecx
40d3ab:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
40d3b1:	75 09                	jne    0x40d3bc
40d3b3:	8b c3                	mov    %ebx,%eax
40d3b5:	e8 1e fe ff ff       	call   0x40d1d8
40d3ba:	eb 19                	jmp    0x40d3d5
40d3bc:	85 c9                	test   %ecx,%ecx
40d3be:	7f 15                	jg     0x40d3d5
40d3c0:	8b c1                	mov    %ecx,%eax
40d3c2:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40d3c7:	99                   	cltd
40d3c8:	f7 f9                	idiv   %ecx
40d3ca:	85 d2                	test   %edx,%edx
40d3cc:	75 07                	jne    0x40d3d5
40d3ce:	8b c3                	mov    %ebx,%eax
40d3d0:	e8 03 fe ff ff       	call   0x40d1d8
40d3d5:	5a                   	pop    %edx
40d3d6:	5b                   	pop    %ebx
40d3d7:	c3                   	ret
40d3d8:	8b 10                	mov    (%eax),%edx
40d3da:	33 c9                	xor    %ecx,%ecx
40d3dc:	89 08                	mov    %ecx,(%eax)
40d3de:	8b c2                	mov    %edx,%eax
40d3e0:	e8 17 64 ff ff       	call   0x4037fc
40d3e5:	c3                   	ret
40d3e6:	8b c0                	mov    %eax,%eax
40d3e8:	53                   	push   %ebx
40d3e9:	56                   	push   %esi
40d3ea:	57                   	push   %edi
40d3eb:	8b f9                	mov    %ecx,%edi
40d3ed:	8b f2                	mov    %edx,%esi
40d3ef:	8b d8                	mov    %eax,%ebx
40d3f1:	85 db                	test   %ebx,%ebx
40d3f3:	74 0b                	je     0x40d400
40d3f5:	57                   	push   %edi
40d3f6:	56                   	push   %esi
40d3f7:	53                   	push   %ebx
40d3f8:	8b 03                	mov    (%ebx),%eax
40d3fa:	ff 10                	call   *(%eax)
40d3fc:	85 c0                	test   %eax,%eax
40d3fe:	74 04                	je     0x40d404
40d400:	33 c0                	xor    %eax,%eax
40d402:	eb 02                	jmp    0x40d406
40d404:	b0 01                	mov    $0x1,%al
40d406:	5f                   	pop    %edi
40d407:	5e                   	pop    %esi
40d408:	5b                   	pop    %ebx
40d409:	c3                   	ret
40d40a:	8b c0                	mov    %eax,%eax
40d40c:	55                   	push   %ebp
40d40d:	8b ec                	mov    %esp,%ebp
40d40f:	6a 00                	push   $0x0
40d411:	53                   	push   %ebx
40d412:	56                   	push   %esi
40d413:	57                   	push   %edi
40d414:	8b f9                	mov    %ecx,%edi
40d416:	8b f2                	mov    %edx,%esi
40d418:	8b d8                	mov    %eax,%ebx
40d41a:	33 c0                	xor    %eax,%eax
40d41c:	55                   	push   %ebp
40d41d:	68 83 d4 40 00       	push   $0x40d483
40d422:	64 ff 30             	push   %fs:(%eax)
40d425:	64 89 20             	mov    %esp,%fs:(%eax)
40d428:	85 db                	test   %ebx,%ebx
40d42a:	74 39                	je     0x40d465
40d42c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d42f:	e8 44 88 ff ff       	call   0x405c78
40d434:	8b c8                	mov    %eax,%ecx
40d436:	ba 94 d4 40 00       	mov    $0x40d494,%edx
40d43b:	8b c3                	mov    %ebx,%eax
40d43d:	e8 6e 64 ff ff       	call   0x4038b0
40d442:	84 c0                	test   %al,%al
40d444:	74 10                	je     0x40d456
40d446:	8b cf                	mov    %edi,%ecx
40d448:	8b d6                	mov    %esi,%edx
40d44a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d44d:	e8 96 ff ff ff       	call   0x40d3e8
40d452:	84 c0                	test   %al,%al
40d454:	75 13                	jne    0x40d469
40d456:	8b cf                	mov    %edi,%ecx
40d458:	8b d6                	mov    %esi,%edx
40d45a:	8b c3                	mov    %ebx,%eax
40d45c:	e8 4f 64 ff ff       	call   0x4038b0
40d461:	84 c0                	test   %al,%al
40d463:	75 04                	jne    0x40d469
40d465:	33 c0                	xor    %eax,%eax
40d467:	eb 02                	jmp    0x40d46b
40d469:	b0 01                	mov    $0x1,%al
40d46b:	8b d8                	mov    %eax,%ebx
40d46d:	33 c0                	xor    %eax,%eax
40d46f:	5a                   	pop    %edx
40d470:	59                   	pop    %ecx
40d471:	59                   	pop    %ecx
40d472:	64 89 10             	mov    %edx,%fs:(%eax)
40d475:	68 8a d4 40 00       	push   $0x40d48a
40d47a:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d47d:	e8 f6 87 ff ff       	call   0x405c78
40d482:	c3                   	ret
40d483:	e9 c4 6a ff ff       	jmp    0x403f4c
40d488:	eb f0                	jmp    0x40d47a
40d48a:	8b c3                	mov    %ebx,%eax
40d48c:	5f                   	pop    %edi
40d48d:	5e                   	pop    %esi
40d48e:	5b                   	pop    %ebx
40d48f:	59                   	pop    %ecx
40d490:	5d                   	pop    %ebp
40d491:	c3                   	ret
40d49a:	00 00                	add    %al,(%eax)
40d49c:	c0 00 00             	rolb   $0x0,(%eax)
40d49f:	00 00                	add    %al,(%eax)
40d4a1:	00 00                	add    %al,(%eax)
40d4a3:	46                   	inc    %esi
40d4a4:	55                   	push   %ebp
40d4a5:	8b ec                	mov    %esp,%ebp
40d4a7:	83 c4 f4             	add    $0xfffffff4,%esp
40d4aa:	53                   	push   %ebx
40d4ab:	8b d8                	mov    %eax,%ebx
40d4ad:	52                   	push   %edx
40d4ae:	e8 e1 92 ff ff       	call   0x406794
40d4b3:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d4b6:	33 c0                	xor    %eax,%eax
40d4b8:	55                   	push   %ebp
40d4b9:	68 16 d5 40 00       	push   $0x40d516
40d4be:	64 ff 30             	push   %fs:(%eax)
40d4c1:	64 89 20             	mov    %esp,%fs:(%eax)
40d4c4:	d9 7d fe             	fnstcw -0x2(%ebp)
40d4c7:	33 c0                	xor    %eax,%eax
40d4c9:	55                   	push   %ebp
40d4ca:	68 f8 d4 40 00       	push   $0x40d4f8
40d4cf:	64 ff 30             	push   %fs:(%eax)
40d4d2:	64 89 20             	mov    %esp,%fs:(%eax)
40d4d5:	8b c3                	mov    %ebx,%eax
40d4d7:	e8 54 75 ff ff       	call   0x404a30
40d4dc:	50                   	push   %eax
40d4dd:	e8 7a 92 ff ff       	call   0x40675c
40d4e2:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d4e5:	33 c0                	xor    %eax,%eax
40d4e7:	5a                   	pop    %edx
40d4e8:	59                   	pop    %ecx
40d4e9:	59                   	pop    %ecx
40d4ea:	64 89 10             	mov    %edx,%fs:(%eax)
40d4ed:	68 ff d4 40 00       	push   $0x40d4ff
40d4f2:	db e2                	fnclex
40d4f4:	d9 6d fe             	fldcw  -0x2(%ebp)
40d4f7:	c3                   	ret
40d4f8:	e9 4f 6a ff ff       	jmp    0x403f4c
40d4fd:	eb f3                	jmp    0x40d4f2
40d4ff:	33 c0                	xor    %eax,%eax
40d501:	5a                   	pop    %edx
40d502:	59                   	pop    %ecx
40d503:	59                   	pop    %ecx
40d504:	64 89 10             	mov    %edx,%fs:(%eax)
40d507:	68 1d d5 40 00       	push   $0x40d51d
40d50c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d50f:	50                   	push   %eax
40d510:	e8 7f 92 ff ff       	call   0x406794
40d515:	c3                   	ret
40d516:	e9 31 6a ff ff       	jmp    0x403f4c
40d51b:	eb ef                	jmp    0x40d50c
40d51d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d520:	5b                   	pop    %ebx
40d521:	8b e5                	mov    %ebp,%esp
40d523:	5d                   	pop    %ebp
40d524:	c3                   	ret
40d525:	8d 40 00             	lea    0x0(%eax),%eax
40d528:	1d 00 00 00 30       	sbb    $0x30000000,%eax
40d52d:	53                   	push   %ebx
40d52e:	45                   	inc    %ebp
40d52f:	00 f8                	add    %bh,%al
40d531:	0b 46 00             	or     0x0(%esi),%eax
40d534:	28 53 45             	sub    %dl,0x45(%ebx)
40d537:	00 30                	add    %dh,(%eax)
40d539:	0b 46 00             	or     0x0(%esi),%eax
40d53c:	20 53 45             	and    %dl,0x45(%ebx)
40d53f:	00 cc                	add    %cl,%ah
40d541:	09 46 00             	or     %eax,0x0(%esi)
40d544:	18 53 45             	sbb    %dl,0x45(%ebx)
40d547:	00 38                	add    %bh,(%eax)
40d549:	0c 46                	or     $0x46,%al
40d54b:	00 10                	add    %dl,(%eax)
40d54d:	53                   	push   %ebx
40d54e:	45                   	inc    %ebp
40d54f:	00 68 0c             	add    %ch,0xc(%eax)
40d552:	46                   	inc    %esi
40d553:	00 08                	add    %cl,(%eax)
40d555:	53                   	push   %ebx
40d556:	45                   	inc    %ebp
40d557:	00 6c 0a 46          	add    %ch,0x46(%edx,%ecx,1)
40d55b:	00 00                	add    %al,(%eax)
40d55d:	53                   	push   %ebx
40d55e:	45                   	inc    %ebp
40d55f:	00 1c 0b             	add    %bl,(%ebx,%ecx,1)
40d562:	46                   	inc    %esi
40d563:	00 f8                	add    %bh,%al
40d565:	52                   	push   %edx
40d566:	45                   	inc    %ebp
40d567:	00 94 09 46 00 f0 52 	add    %dl,0x52f00046(%ecx,%ecx,1)
40d56e:	45                   	inc    %ebp
40d56f:	00 60 0b             	add    %ah,0xb(%eax)
40d572:	46                   	inc    %esi
40d573:	00 e8                	add    %ch,%al
40d575:	52                   	push   %edx
40d576:	45                   	inc    %ebp
40d577:	00 a0 0b 46 00 e0    	add    %ah,-0x1fffb9f5(%eax)
40d57d:	52                   	push   %edx
40d57e:	45                   	inc    %ebp
40d57f:	00 ec                	add    %ch,%ah
40d581:	0a 46 00             	or     0x0(%esi),%al
40d584:	d8 52 45             	fcoms  0x45(%edx)
40d587:	00 f8                	add    %bh,%al
40d589:	0a 46 00             	or     0x0(%esi),%al
40d58c:	d0 52 45             	rclb   $1,0x45(%edx)
40d58f:	00 c8                	add    %cl,%al
40d591:	0c 46                	or     $0x46,%al
40d593:	00 c8                	add    %cl,%al
40d595:	52                   	push   %edx
40d596:	45                   	inc    %ebp
40d597:	00 f4                	add    %dh,%ah
40d599:	0a 46 00             	or     0x0(%esi),%al
40d59c:	c0 52 45 00          	rclb   $0x0,0x45(%edx)
40d5a0:	30 0d 46 00 b8 52    	xor    %cl,0x52b80046
40d5a6:	45                   	inc    %ebp
40d5a7:	00 d4                	add    %dl,%ah
40d5a9:	0b 46 00             	or     0x0(%esi),%eax
40d5ac:	b0 52                	mov    $0x52,%al
40d5ae:	45                   	inc    %ebp
40d5af:	00 b8 0b 46 00 a8    	add    %bh,-0x57ffb9f5(%eax)
40d5b5:	52                   	push   %edx
40d5b6:	45                   	inc    %ebp
40d5b7:	00 44 0d 46          	add    %al,0x46(%ebp,%ecx,1)
40d5bb:	00 a0 52 45 00 00    	add    %ah,0x4552(%eax)
40d5c1:	0d 46 00 98 52       	or     $0x52980046,%eax
40d5c6:	45                   	inc    %ebp
40d5c7:	00 08                	add    %cl,(%eax)
40d5c9:	0b 46 00             	or     0x0(%esi),%eax
40d5cc:	90                   	nop
40d5cd:	52                   	push   %edx
40d5ce:	45                   	inc    %ebp
40d5cf:	00 d4                	add    %dl,%ah
40d5d1:	0c 46                	or     $0x46,%al
40d5d3:	00 88 52 45 00 e0    	add    %cl,-0x1fffbaae(%eax)
40d5d9:	0c 46                	or     $0x46,%al
40d5db:	00 80 52 45 00 58    	add    %al,0x58004552(%eax)
40d5e1:	0a 46 00             	or     0x0(%esi),%al
40d5e4:	78 52                	js     0x40d638
40d5e6:	45                   	inc    %ebp
40d5e7:	00 1c 0a             	add    %bl,(%edx,%ecx,1)
40d5ea:	46                   	inc    %esi
40d5eb:	00 70 52             	add    %dh,0x52(%eax)
40d5ee:	45                   	inc    %ebp
40d5ef:	00 b4 0b 46 00 68 52 	add    %dh,0x52680046(%ebx,%ecx,1)
40d5f6:	45                   	inc    %ebp
40d5f7:	00 30                	add    %dh,(%eax)
40d5f9:	0c 46                	or     $0x46,%al
40d5fb:	00 60 52             	add    %ah,0x52(%eax)
40d5fe:	45                   	inc    %ebp
40d5ff:	00 a0 09 46 00 58    	add    %ah,0x58004609(%eax)
40d605:	52                   	push   %edx
40d606:	45                   	inc    %ebp
40d607:	00 c4                	add    %al,%ah
40d609:	0c 46                	or     $0x46,%al
40d60b:	00 50 52             	add    %dl,0x52(%eax)
40d60e:	45                   	inc    %ebp
40d60f:	00 04 0b             	add    %al,(%ebx,%ecx,1)
40d612:	46                   	inc    %esi
40d613:	00 28                	add    %ch,(%eax)
40d615:	00 00                	add    %al,(%eax)
40d617:	00 48 52             	add    %cl,0x52(%eax)
40d61a:	45                   	inc    %ebp
40d61b:	00 ac 0c 46 00 00 00 	add    %ch,0x46(%esp,%ecx,1)
40d622:	00 00                	add    %al,(%eax)
40d624:	44                   	inc    %esp
40d625:	52                   	push   %edx
40d626:	45                   	inc    %ebp
40d627:	00 d8                	add    %bl,%al
40d629:	09 46 00             	or     %eax,0x0(%esi)
40d62c:	00 00                	add    %al,(%eax)
40d62e:	00 00                	add    %al,(%eax)
40d630:	40                   	inc    %eax
40d631:	52                   	push   %edx
40d632:	45                   	inc    %ebp
40d633:	00 28                	add    %ch,(%eax)
40d635:	0c 46                	or     $0x46,%al
40d637:	00 00                	add    %al,(%eax)
40d639:	00 00                	add    %al,(%eax)
40d63b:	00 3c 52             	add    %bh,(%edx,%edx,2)
40d63e:	45                   	inc    %ebp
40d63f:	00 ac 09 46 00 00 00 	add    %ch,0x46(%ecx,%ecx,1)
40d646:	00 00                	add    %al,(%eax)
40d648:	38 52 45             	cmp    %dl,0x45(%edx)
40d64b:	00 34 0a             	add    %dh,(%edx,%ecx,1)
40d64e:	46                   	inc    %esi
40d64f:	00 00                	add    %al,(%eax)
40d651:	00 00                	add    %al,(%eax)
40d653:	00 34 52             	add    %dh,(%edx,%edx,2)
40d656:	45                   	inc    %ebp
40d657:	00 2c 0a             	add    %ch,(%edx,%ecx,1)
40d65a:	46                   	inc    %esi
40d65b:	00 00                	add    %al,(%eax)
40d65d:	00 00                	add    %al,(%eax)