40d3cf:	c3                   	ret
40d3d0:	68 08 01 00 00       	push   $0x108
40d3d5:	e8 d3 3c ff ff       	call   0x4010ad
40d3da:	59                   	pop    %ecx
40d3db:	c3                   	ret
40d3dc:	53                   	push   %ebx
40d3dd:	56                   	push   %esi
40d3de:	57                   	push   %edi
40d3df:	8b da                	mov    %edx,%ebx
40d3e1:	8b f9                	mov    %ecx,%edi
40d3e3:	e8 e8 ff ff ff       	call   0x40d3d0
40d3e8:	8b f0                	mov    %eax,%esi
40d3ea:	85 f6                	test   %esi,%esi
40d3ec:	74 29                	je     0x40d417
40d3ee:	85 ff                	test   %edi,%edi
40d3f0:	74 25                	je     0x40d417
40d3f2:	57                   	push   %edi
40d3f3:	56                   	push   %esi
40d3f4:	ff 15 e0 21 41 00    	call   *0x4121e0
40d3fa:	33 c0                	xor    %eax,%eax
40d3fc:	89 9e 04 01 00 00    	mov    %ebx,0x104(%esi)
40d402:	50                   	push   %eax
40d403:	50                   	push   %eax
40d404:	56                   	push   %esi
40d405:	68 78 d0 40 00       	push   $0x40d078
40d40a:	50                   	push   %eax
40d40b:	50                   	push   %eax
40d40c:	ff 15 8c 20 41 00    	call   *0x41208c
40d412:	33 c0                	xor    %eax,%eax
40d414:	40                   	inc    %eax
40d415:	eb 09                	jmp    0x40d420
40d417:	56                   	push   %esi
40d418:	e8 a4 3c ff ff       	call   0x4010c1
40d41d:	59                   	pop    %ecx
40d41e:	33 c0                	xor    %eax,%eax
40d420:	5f                   	pop    %edi
40d421:	5e                   	pop    %esi
40d422:	5b                   	pop    %ebx
40d423:	c3                   	ret
40d424:	c3                   	ret
40d425:	55                   	push   %ebp
40d426:	8b ec                	mov    %esp,%ebp
40d428:	51                   	push   %ecx
40d429:	56                   	push   %esi
40d42a:	57                   	push   %edi
40d42b:	8b f9                	mov    %ecx,%edi
40d42d:	b9 d0 07 00 00       	mov    $0x7d0,%ecx
40d432:	e8 a4 86 ff ff       	call   0x405adb
40d437:	83 27 00             	andl   $0x0,(%edi)
40d43a:	8b f0                	mov    %eax,%esi
40d43c:	68 e8 03 00 00       	push   $0x3e8
40d441:	56                   	push   %esi
40d442:	6a 00                	push   $0x0
40d444:	ff 15 08 21 41 00    	call   *0x412108
40d44a:	56                   	push   %esi
40d44b:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40d44e:	e8 bf 5f ff ff       	call   0x403412
40d453:	50                   	push   %eax
40d454:	8b cf                	mov    %edi,%ecx
40d456:	e8 09 5e ff ff       	call   0x403264
40d45b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d45e:	e8 ca 85 ff ff       	call   0x405a2d
40d463:	8b c7                	mov    %edi,%eax
40d465:	5f                   	pop    %edi
40d466:	5e                   	pop    %esi
40d467:	c9                   	leave
40d468:	c3                   	ret
40d469:	55                   	push   %ebp
40d46a:	8b ec                	mov    %esp,%ebp
40d46c:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
40d472:	68 a0 42 41 00       	push   $0x4142a0
40d477:	c7 85 e4 fe ff ff 1c 	movl   $0x11c,-0x11c(%ebp)
40d47e:	01 00 00
40d481:	ff 15 b8 21 41 00    	call   *0x4121b8
40d487:	85 c0                	test   %eax,%eax
40d489:	74 19                	je     0x40d4a4
40d48b:	68 ac 42 41 00       	push   $0x4142ac
40d490:	50                   	push   %eax
40d491:	ff 15 b4 21 41 00    	call   *0x4121b4
40d497:	85 c0                	test   %eax,%eax
40d499:	74 14                	je     0x40d4af
40d49b:	8d 8d e4 fe ff ff    	lea    -0x11c(%ebp),%ecx
40d4a1:	51                   	push   %ecx
40d4a2:	ff d0                	call   *%eax
40d4a4:	8a 45 fe             	mov    -0x2(%ebp),%al
40d4a7:	3c 02                	cmp    $0x2,%al
40d4a9:	74 08                	je     0x40d4b3
40d4ab:	3c 03                	cmp    $0x3,%al
40d4ad:	74 04                	je     0x40d4b3
40d4af:	33 c0                	xor    %eax,%eax
40d4b1:	c9                   	leave
40d4b2:	c3                   	ret
40d4b3:	33 c0                	xor    %eax,%eax
40d4b5:	40                   	inc    %eax
40d4b6:	c9                   	leave
40d4b7:	c3                   	ret
40d4b8:	55                   	push   %ebp
40d4b9:	8b ec                	mov    %esp,%ebp
40d4bb:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
40d4c1:	68 a0 42 41 00       	push   $0x4142a0
40d4c6:	c7 85 e4 fe ff ff 1c 	movl   $0x11c,-0x11c(%ebp)
40d4cd:	01 00 00
40d4d0:	ff 15 b8 21 41 00    	call   *0x4121b8
40d4d6:	85 c0                	test   %eax,%eax
40d4d8:	74 19                	je     0x40d4f3
40d4da:	68 ac 42 41 00       	push   $0x4142ac
40d4df:	50                   	push   %eax
40d4e0:	ff 15 b4 21 41 00    	call   *0x4121b4
40d4e6:	85 c0                	test   %eax,%eax
40d4e8:	74 1a                	je     0x40d504
40d4ea:	8d 8d e4 fe ff ff    	lea    -0x11c(%ebp),%ecx
40d4f0:	51                   	push   %ecx
40d4f1:	ff d0                	call   *%eax
40d4f3:	83 bd f4 fe ff ff 02 	cmpl   $0x2,-0x10c(%ebp)
40d4fa:	75 08                	jne    0x40d504
40d4fc:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
40d502:	c9                   	leave
40d503:	c3                   	ret
40d504:	33 c0                	xor    %eax,%eax
40d506:	c9                   	leave
40d507:	c3                   	ret
40d508:	55                   	push   %ebp
40d509:	8b ec                	mov    %esp,%ebp
40d50b:	81 ec 40 02 00 00    	sub    $0x240,%esp
40d511:	53                   	push   %ebx
40d512:	56                   	push   %esi
40d513:	33 db                	xor    %ebx,%ebx
40d515:	c7 45 f0 10 00 00 00 	movl   $0x10,-0x10(%ebp)
40d51c:	68 08 02 00 00       	push   $0x208
40d521:	8d 85 c0 fd ff ff    	lea    -0x240(%ebp),%eax
40d527:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d52a:	53                   	push   %ebx
40d52b:	50                   	push   %eax
40d52c:	8b f1                	mov    %ecx,%esi
40d52e:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40d531:	66 c7 45 f8 00 05    	movw   $0x500,-0x8(%ebp)
40d537:	e8 16 3b ff ff       	call   0x401052
40d53c:	83 c4 0c             	add    $0xc,%esp
40d53f:	c7 45 ec 04 01 00 00 	movl   $0x104,-0x14(%ebp)
40d546:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d549:	50                   	push   %eax
40d54a:	53                   	push   %ebx
40d54b:	53                   	push   %ebx
40d54c:	53                   	push   %ebx
40d54d:	53                   	push   %ebx
40d54e:	53                   	push   %ebx
40d54f:	53                   	push   %ebx
40d550:	68 20 02 00 00       	push   $0x220
40d555:	6a 20                	push   $0x20
40d557:	6a 02                	push   $0x2
40d559:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d55c:	50                   	push   %eax
40d55d:	ff 15 58 20 41 00    	call   *0x412058
40d563:	85 c0                	test   %eax,%eax
40d565:	74 25                	je     0x40d58c
40d567:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d56a:	50                   	push   %eax
40d56b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d56e:	50                   	push   %eax
40d56f:	8d 45 c8             	lea    -0x38(%ebp),%eax
40d572:	50                   	push   %eax
40d573:	8d 45 ec             	lea    -0x14(%ebp),%eax
40d576:	50                   	push   %eax
40d577:	8d 85 c0 fd ff ff    	lea    -0x240(%ebp),%eax
40d57d:	50                   	push   %eax
40d57e:	ff 75 fc             	push   -0x4(%ebp)
40d581:	53                   	push   %ebx
40d582:	ff 15 4c 20 41 00    	call   *0x41204c
40d588:	85 c0                	test   %eax,%eax
40d58a:	75 06                	jne    0x40d592
40d58c:	ff 15 0c 22 41 00    	call   *0x41220c
40d592:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
40d595:	74 09                	je     0x40d5a0
40d597:	ff 75 fc             	push   -0x4(%ebp)
40d59a:	ff 15 50 20 41 00    	call   *0x412050
40d5a0:	8d 85 c0 fd ff ff    	lea    -0x240(%ebp),%eax
40d5a6:	8b ce                	mov    %esi,%ecx
40d5a8:	50                   	push   %eax
40d5a9:	e8 64 5e ff ff       	call   0x403412
40d5ae:	8b c6                	mov    %esi,%eax
40d5b0:	5e                   	pop    %esi
40d5b1:	5b                   	pop    %ebx
40d5b2:	c9                   	leave
40d5b3:	c3                   	ret
40d5b4:	56                   	push   %esi
40d5b5:	8b f1                	mov    %ecx,%esi
40d5b7:	e8 30 13 00 00       	call   0x40e8ec
40d5bc:	85 c0                	test   %eax,%eax
40d5be:	74 17                	je     0x40d5d7
40d5c0:	51                   	push   %ecx
40d5c1:	ba 80 42 41 00       	mov    $0x414280,%edx
40d5c6:	8b c8                	mov    %eax,%ecx
40d5c8:	e8 3a 13 00 00       	call   0x40e907
40d5cd:	59                   	pop    %ecx
40d5ce:	85 c0                	test   %eax,%eax
40d5d0:	74 05                	je     0x40d5d7
40d5d2:	56                   	push   %esi
40d5d3:	ff d0                	call   *%eax
40d5d5:	5e                   	pop    %esi
40d5d6:	c3                   	ret
40d5d7:	33 c0                	xor    %eax,%eax
40d5d9:	5e                   	pop    %esi
40d5da:	c3                   	ret
40d5db:	56                   	push   %esi
40d5dc:	8b f1                	mov    %ecx,%esi
40d5de:	e8 09 13 00 00       	call   0x40e8ec
40d5e3:	85 c0                	test   %eax,%eax
40d5e5:	74 1e                	je     0x40d605
40d5e7:	51                   	push   %ecx
40d5e8:	ba 60 42 41 00       	mov    $0x414260,%edx
40d5ed:	8b c8                	mov    %eax,%ecx
40d5ef:	e8 13 13 00 00       	call   0x40e907
40d5f4:	59                   	pop    %ecx
40d5f5:	85 c0                	test   %eax,%eax
40d5f7:	74 0c                	je     0x40d605
40d5f9:	56                   	push   %esi
40d5fa:	ff d0                	call   *%eax
40d5fc:	85 c0                	test   %eax,%eax
40d5fe:	74 05                	je     0x40d605
40d600:	33 c0                	xor    %eax,%eax
40d602:	40                   	inc    %eax
40d603:	5e                   	pop    %esi
40d604:	c3                   	ret
40d605:	33 c0                	xor    %eax,%eax
40d607:	5e                   	pop    %esi
40d608:	c3                   	ret
40d609:	55                   	push   %ebp
40d60a:	8b ec                	mov    %esp,%ebp
40d60c:	83 ec 34             	sub    $0x34,%esp
40d60f:	53                   	push   %ebx
40d610:	56                   	push   %esi
40d611:	57                   	push   %edi
40d612:	33 c0                	xor    %eax,%eax
40d614:	8d 7d d0             	lea    -0x30(%ebp),%edi
40d617:	ab                   	stos   %eax,%es:(%edi)
40d618:	33 db                	xor    %ebx,%ebx
40d61a:	0f 57 c0             	xorps  %xmm0,%xmm0
40d61d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d620:	8b f2                	mov    %edx,%esi
40d622:	66 0f 13 45 f0       	movlpd %xmm0,-0x10(%ebp)
40d627:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40d62a:	ab                   	stos   %eax,%es:(%edi)
40d62b:	ab                   	stos   %eax,%es:(%edi)
40d62c:	ab                   	stos   %eax,%es:(%edi)
40d62d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d630:	50                   	push   %eax
40d631:	6a 28                	push   $0x28
40d633:	51                   	push   %ecx
40d634:	ff 15 54 20 41 00    	call   *0x412054
40d63a:	85 c0                	test   %eax,%eax
40d63c:	74 4a                	je     0x40d688
40d63e:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d641:	50                   	push   %eax
40d642:	ff 36                	push   (%esi)
40d644:	53                   	push   %ebx
40d645:	ff 15 60 20 41 00    	call   *0x412060
40d64b:	85 c0                	test   %eax,%eax
40d64d:	74 39                	je     0x40d688
40d64f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d652:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d655:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40d658:	33 f6                	xor    %esi,%esi
40d65a:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d65d:	46                   	inc    %esi
40d65e:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d661:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d664:	50                   	push   %eax
40d665:	8d 45 d0             	lea    -0x30(%ebp),%eax
40d668:	89 75 e0             	mov    %esi,-0x20(%ebp)
40d66b:	50                   	push   %eax
40d66c:	6a 10                	push   $0x10
40d66e:	51                   	push   %ecx
40d66f:	53                   	push   %ebx
40d670:	ff 75 fc             	push   -0x4(%ebp)
40d673:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
40d67a:	ff 15 5c 20 41 00    	call   *0x41205c
40d680:	85 c0                	test   %eax,%eax
40d682:	74 04                	je     0x40d688
40d684:	8b c6                	mov    %esi,%eax
40d686:	eb 02                	jmp    0x40d68a
40d688:	33 c0                	xor    %eax,%eax
40d68a:	5f                   	pop    %edi
40d68b:	5e                   	pop    %esi
40d68c:	5b                   	pop    %ebx
40d68d:	c9                   	leave
40d68e:	c3                   	ret
40d68f:	53                   	push   %ebx
40d690:	56                   	push   %esi
40d691:	57                   	push   %edi
40d692:	6a 02                	push   $0x2
40d694:	6a 00                	push   $0x0
40d696:	ff 31                	push   (%ecx)
40d698:	8b fa                	mov    %edx,%edi
40d69a:	ff 15 1c 21 41 00    	call   *0x41211c
40d6a0:	8b f0                	mov    %eax,%esi
40d6a2:	83 fe ff             	cmp    $0xffffffff,%esi
40d6a5:	74 62                	je     0x40d709
40d6a7:	6a 10                	push   $0x10
40d6a9:	33 db                	xor    %ebx,%ebx
40d6ab:	43                   	inc    %ebx
40d6ac:	53                   	push   %ebx
40d6ad:	56                   	push   %esi
40d6ae:	ff 15 10 21 41 00    	call   *0x412110
40d6b4:	85 c0                	test   %eax,%eax
40d6b6:	74 51                	je     0x40d709
40d6b8:	50                   	push   %eax
40d6b9:	56                   	push   %esi
40d6ba:	ff 15 0c 21 41 00    	call   *0x41210c
40d6c0:	85 c0                	test   %eax,%eax
40d6c2:	74 45                	je     0x40d709
40d6c4:	8b 48 14             	mov    0x14(%eax),%ecx
40d6c7:	8b 50 28             	mov    0x28(%eax),%edx
40d6ca:	89 0f                	mov    %ecx,(%edi)
40d6cc:	66 8b 48 1a          	mov    0x1a(%eax),%cx
40d6d0:	66 89 4f 04          	mov    %cx,0x4(%edi)
40d6d4:	66 8b 48 18          	mov    0x18(%eax),%cx
40d6d8:	8b c2                	mov    %edx,%eax
40d6da:	23 c3                	and    %ebx,%eax
40d6dc:	66 89 4f 06          	mov    %cx,0x6(%edi)
40d6e0:	89 47 08             	mov    %eax,0x8(%edi)
40d6e3:	8b ca                	mov    %edx,%ecx
40d6e5:	8b c2                	mov    %edx,%eax
40d6e7:	c1 e9 03             	shr    $0x3,%ecx
40d6ea:	d1 e8                	shr    $1,%eax
40d6ec:	23 cb                	and    %ebx,%ecx
40d6ee:	c1 ea 05             	shr    $0x5,%edx
40d6f1:	23 c3                	and    %ebx,%eax
40d6f3:	23 d3                	and    %ebx,%edx
40d6f5:	89 47 0c             	mov    %eax,0xc(%edi)
40d6f8:	56                   	push   %esi
40d6f9:	89 4f 10             	mov    %ecx,0x10(%edi)
40d6fc:	89 57 14             	mov    %edx,0x14(%edi)
40d6ff:	ff 15 dc 20 41 00    	call   *0x4120dc
40d705:	8b c3                	mov    %ebx,%eax
40d707:	eb 02                	jmp    0x40d70b
40d709:	33 c0                	xor    %eax,%eax
40d70b:	5f                   	pop    %edi
40d70c:	5e                   	pop    %esi
40d70d:	5b                   	pop    %ebx
40d70e:	c3                   	ret
40d70f:	6a 00                	push   $0x0
40d711:	ff 31                	push   (%ecx)
40d713:	6a 00                	push   $0x0
40d715:	ff 15 58 22 41 00    	call   *0x412258
40d71b:	f7 d8                	neg    %eax
40d71d:	1b c0                	sbb    %eax,%eax
40d71f:	40                   	inc    %eax
40d720:	c3                   	ret
40d721:	55                   	push   %ebp
40d722:	8b ec                	mov    %esp,%ebp