40c36a:	6a 0c                	push   $0xc
40c36c:	e8 36 c1 ff ff       	call   0x4084a7
40c371:	59                   	pop    %ecx
40c372:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c379:	8b 7e 6c             	mov    0x6c(%esi),%edi
40c37c:	85 ff                	test   %edi,%edi
40c37e:	74 23                	je     0x40c3a3
40c380:	57                   	push   %edi
40c381:	e8 05 f6 ff ff       	call   0x40b98b
40c386:	59                   	pop    %ecx
40c387:	3b 3d 44 0f 42 00    	cmp    0x420f44,%edi
40c38d:	74 14                	je     0x40c3a3
40c38f:	81 ff 48 0f 42 00    	cmp    $0x420f48,%edi
40c395:	74 0c                	je     0x40c3a3
40c397:	83 3f 00             	cmpl   $0x0,(%edi)
40c39a:	75 07                	jne    0x40c3a3
40c39c:	57                   	push   %edi
40c39d:	e8 8f f4 ff ff       	call   0x40b831
40c3a2:	59                   	pop    %ecx
40c3a3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c3aa:	e8 1e 00 00 00       	call   0x40c3cd
40c3af:	56                   	push   %esi
40c3b0:	e8 63 8d ff ff       	call   0x405118
40c3b5:	59                   	pop    %ecx
40c3b6:	e8 3a ea ff ff       	call   0x40adf5
40c3bb:	c2 04 00             	ret    $0x4
40c3be:	8b 75 08             	mov    0x8(%ebp),%esi
40c3c1:	6a 0d                	push   $0xd
40c3c3:	e8 43 c2 ff ff       	call   0x40860b
40c3c8:	59                   	pop    %ecx
40c3c9:	c3                   	ret
40c3ca:	8b 75 08             	mov    0x8(%ebp),%esi
40c3cd:	6a 0c                	push   $0xc
40c3cf:	e8 37 c2 ff ff       	call   0x40860b
40c3d4:	59                   	pop    %ecx
40c3d5:	c3                   	ret
40c3d6:	56                   	push   %esi
40c3d7:	e8 12 00 00 00       	call   0x40c3ee
40c3dc:	8b f0                	mov    %eax,%esi
40c3de:	85 f6                	test   %esi,%esi
40c3e0:	75 08                	jne    0x40c3ea
40c3e2:	6a 10                	push   $0x10
40c3e4:	e8 e2 e6 ff ff       	call   0x40aacb
40c3e9:	59                   	pop    %ecx
40c3ea:	8b c6                	mov    %esi,%eax
40c3ec:	5e                   	pop    %esi
40c3ed:	c3                   	ret
40c3ee:	56                   	push   %esi
40c3ef:	57                   	push   %edi
40c3f0:	ff 15 18 90 41 00    	call   *0x419018
40c3f6:	ff 35 d8 0d 42 00    	push   0x420dd8
40c3fc:	8b f8                	mov    %eax,%edi
40c3fe:	e8 f3 35 00 00       	call   0x40f9f6
40c403:	8b f0                	mov    %eax,%esi
40c405:	59                   	pop    %ecx
40c406:	85 f6                	test   %esi,%esi
40c408:	75 47                	jne    0x40c451
40c40a:	68 b8 03 00 00       	push   $0x3b8
40c40f:	6a 01                	push   $0x1
40c411:	e8 42 c6 ff ff       	call   0x408a58
40c416:	8b f0                	mov    %eax,%esi
40c418:	59                   	pop    %ecx
40c419:	59                   	pop    %ecx
40c41a:	85 f6                	test   %esi,%esi
40c41c:	74 33                	je     0x40c451
40c41e:	56                   	push   %esi
40c41f:	ff 35 d8 0d 42 00    	push   0x420dd8
40c425:	e8 da 35 00 00       	call   0x40fa04
40c42a:	59                   	pop    %ecx
40c42b:	59                   	pop    %ecx
40c42c:	85 c0                	test   %eax,%eax
40c42e:	74 18                	je     0x40c448
40c430:	6a 00                	push   $0x0
40c432:	56                   	push   %esi
40c433:	e8 25 00 00 00       	call   0x40c45d
40c438:	59                   	pop    %ecx
40c439:	59                   	pop    %ecx
40c43a:	ff 15 cc 90 41 00    	call   *0x4190cc
40c440:	83 4e 04 ff          	orl    $0xffffffff,0x4(%esi)
40c444:	89 06                	mov    %eax,(%esi)
40c446:	eb 09                	jmp    0x40c451
40c448:	56                   	push   %esi
40c449:	e8 ca 8c ff ff       	call   0x405118
40c44e:	59                   	pop    %ecx
40c44f:	33 f6                	xor    %esi,%esi
40c451:	57                   	push   %edi
40c452:	ff 15 c8 90 41 00    	call   *0x4190c8
40c458:	5f                   	pop    %edi
40c459:	8b c6                	mov    %esi,%eax
40c45b:	5e                   	pop    %esi
40c45c:	c3                   	ret
40c45d:	6a 08                	push   $0x8
40c45f:	68 78 e5 41 00       	push   $0x41e578
40c464:	e8 47 e9 ff ff       	call   0x40adb0
40c469:	8b 75 08             	mov    0x8(%ebp),%esi
40c46c:	c7 46 5c 68 bb 41 00 	movl   $0x41bb68,0x5c(%esi)
40c473:	83 66 08 00          	andl   $0x0,0x8(%esi)
40c477:	33 ff                	xor    %edi,%edi
40c479:	47                   	inc    %edi
40c47a:	89 7e 14             	mov    %edi,0x14(%esi)
40c47d:	89 7e 70             	mov    %edi,0x70(%esi)
40c480:	6a 43                	push   $0x43
40c482:	58                   	pop    %eax
40c483:	66 89 86 b8 00 00 00 	mov    %ax,0xb8(%esi)
40c48a:	66 89 86 be 01 00 00 	mov    %ax,0x1be(%esi)
40c491:	c7 46 68 b8 0b 42 00 	movl   $0x420bb8,0x68(%esi)
40c498:	6a 0d                	push   $0xd
40c49a:	e8 08 c0 ff ff       	call   0x4084a7
40c49f:	59                   	pop    %ecx
40c4a0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c4a4:	ff 76 68             	push   0x68(%esi)
40c4a7:	ff 15 50 90 41 00    	call   *0x419050
40c4ad:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c4b4:	e8 3e 00 00 00       	call   0x40c4f7
40c4b9:	6a 0c                	push   $0xc
40c4bb:	e8 e7 bf ff ff       	call   0x4084a7
40c4c0:	59                   	pop    %ecx
40c4c1:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c4c4:	8b 45 0c             	mov    0xc(%ebp),%eax
40c4c7:	89 46 6c             	mov    %eax,0x6c(%esi)
40c4ca:	85 c0                	test   %eax,%eax
40c4cc:	75 08                	jne    0x40c4d6
40c4ce:	a1 44 0f 42 00       	mov    0x420f44,%eax
40c4d3:	89 46 6c             	mov    %eax,0x6c(%esi)
40c4d6:	ff 76 6c             	push   0x6c(%esi)
40c4d9:	e8 c3 f2 ff ff       	call   0x40b7a1
40c4de:	59                   	pop    %ecx
40c4df:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c4e6:	e8 15 00 00 00       	call   0x40c500
40c4eb:	e8 05 e9 ff ff       	call   0x40adf5
40c4f0:	c3                   	ret
40c4f1:	33 ff                	xor    %edi,%edi
40c4f3:	47                   	inc    %edi
40c4f4:	8b 75 08             	mov    0x8(%ebp),%esi
40c4f7:	6a 0d                	push   $0xd
40c4f9:	e8 0d c1 ff ff       	call   0x40860b
40c4fe:	59                   	pop    %ecx
40c4ff:	c3                   	ret
40c500:	6a 0c                	push   $0xc
40c502:	e8 04 c1 ff ff       	call   0x40860b
40c507:	59                   	pop    %ecx
40c508:	c3                   	ret
40c509:	e8 9c e6 ff ff       	call   0x40abaa
40c50e:	e8 c3 c0 ff ff       	call   0x4085d6
40c513:	85 c0                	test   %eax,%eax
40c515:	75 08                	jne    0x40c51f
40c517:	e8 63 00 00 00       	call   0x40c57f
40c51c:	33 c0                	xor    %eax,%eax
40c51e:	c3                   	ret
40c51f:	68 9f c2 40 00       	push   $0x40c29f
40c524:	e8 b1 34 00 00       	call   0x40f9da
40c529:	59                   	pop    %ecx
40c52a:	a3 d8 0d 42 00       	mov    %eax,0x420dd8
40c52f:	83 f8 ff             	cmp    $0xffffffff,%eax
40c532:	74 e3                	je     0x40c517
40c534:	56                   	push   %esi
40c535:	68 b8 03 00 00       	push   $0x3b8
40c53a:	6a 01                	push   $0x1
40c53c:	e8 17 c5 ff ff       	call   0x408a58
40c541:	8b f0                	mov    %eax,%esi
40c543:	59                   	pop    %ecx
40c544:	59                   	pop    %ecx
40c545:	85 f6                	test   %esi,%esi
40c547:	74 2d                	je     0x40c576
40c549:	56                   	push   %esi
40c54a:	ff 35 d8 0d 42 00    	push   0x420dd8
40c550:	e8 af 34 00 00       	call   0x40fa04
40c555:	59                   	pop    %ecx
40c556:	59                   	pop    %ecx
40c557:	85 c0                	test   %eax,%eax
40c559:	74 1b                	je     0x40c576
40c55b:	6a 00                	push   $0x0
40c55d:	56                   	push   %esi
40c55e:	e8 fa fe ff ff       	call   0x40c45d
40c563:	59                   	pop    %ecx
40c564:	59                   	pop    %ecx
40c565:	ff 15 cc 90 41 00    	call   *0x4190cc
40c56b:	83 4e 04 ff          	orl    $0xffffffff,0x4(%esi)
40c56f:	89 06                	mov    %eax,(%esi)
40c571:	33 c0                	xor    %eax,%eax
40c573:	40                   	inc    %eax
40c574:	5e                   	pop    %esi
40c575:	c3                   	ret
40c576:	e8 04 00 00 00       	call   0x40c57f
40c57b:	33 c0                	xor    %eax,%eax
40c57d:	5e                   	pop    %esi
40c57e:	c3                   	ret
40c57f:	a1 d8 0d 42 00       	mov    0x420dd8,%eax
40c584:	83 f8 ff             	cmp    $0xffffffff,%eax
40c587:	74 0e                	je     0x40c597
40c589:	50                   	push   %eax
40c58a:	e8 59 34 00 00       	call   0x40f9e8
40c58f:	83 0d d8 0d 42 00 ff 	orl    $0xffffffff,0x420dd8
40c596:	59                   	pop    %ecx
40c597:	e9 3f bf ff ff       	jmp    0x4084db
40c59c:	6a 08                	push   $0x8
40c59e:	68 d8 e5 41 00       	push   $0x41e5d8
40c5a3:	e8 08 e8 ff ff       	call   0x40adb0
40c5a8:	be 48 0f 42 00       	mov    $0x420f48,%esi
40c5ad:	39 35 44 0f 42 00    	cmp    %esi,0x420f44
40c5b3:	74 2a                	je     0x40c5df
40c5b5:	6a 0c                	push   $0xc
40c5b7:	e8 eb be ff ff       	call   0x4084a7
40c5bc:	59                   	pop    %ecx
40c5bd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c5c1:	56                   	push   %esi
40c5c2:	68 44 0f 42 00       	push   $0x420f44
40c5c7:	e8 d6 f4 ff ff       	call   0x40baa2
40c5cc:	59                   	pop    %ecx
40c5cd:	59                   	pop    %ecx
40c5ce:	a3 44 0f 42 00       	mov    %eax,0x420f44
40c5d3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c5da:	e8 06 00 00 00       	call   0x40c5e5
40c5df:	e8 11 e8 ff ff       	call   0x40adf5
40c5e4:	c3                   	ret
40c5e5:	6a 0c                	push   $0xc
40c5e7:	e8 1f c0 ff ff       	call   0x40860b
40c5ec:	59                   	pop    %ecx
40c5ed:	c3                   	ret
40c5ee:	55                   	push   %ebp
40c5ef:	8b ec                	mov    %esp,%ebp
40c5f1:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40c5f5:	75 04                	jne    0x40c5fb
40c5f7:	33 c0                	xor    %eax,%eax
40c5f9:	5d                   	pop    %ebp
40c5fa:	c3                   	ret
40c5fb:	53                   	push   %ebx
40c5fc:	6a 55                	push   $0x55
40c5fe:	ff 75 08             	push   0x8(%ebp)
40c601:	e8 b8 4c 00 00       	call   0x4112be
40c606:	8b d8                	mov    %eax,%ebx
40c608:	59                   	pop    %ecx
40c609:	59                   	pop    %ecx
40c60a:	83 fb 55             	cmp    $0x55,%ebx
40c60d:	72 04                	jb     0x40c613
40c60f:	33 c0                	xor    %eax,%eax
40c611:	eb 16                	jmp    0x40c629
40c613:	8d 04 5d 02 00 00 00 	lea    0x2(,%ebx,2),%eax
40c61a:	57                   	push   %edi
40c61b:	50                   	push   %eax
40c61c:	e8 81 c4 ff ff       	call   0x408aa2
40c621:	8b f8                	mov    %eax,%edi
40c623:	59                   	pop    %ecx
40c624:	85 ff                	test   %edi,%edi
40c626:	75 04                	jne    0x40c62c
40c628:	5f                   	pop    %edi
40c629:	5b                   	pop    %ebx
40c62a:	5d                   	pop    %ebp
40c62b:	c3                   	ret
40c62c:	8d 43 01             	lea    0x1(%ebx),%eax
40c62f:	50                   	push   %eax
40c630:	ff 75 08             	push   0x8(%ebp)
40c633:	50                   	push   %eax
40c634:	57                   	push   %edi
40c635:	e8 84 53 00 00       	call   0x4119be
40c63a:	83 c4 10             	add    $0x10,%esp
40c63d:	85 c0                	test   %eax,%eax
40c63f:	75 04                	jne    0x40c645
40c641:	8b c7                	mov    %edi,%eax
40c643:	eb e3                	jmp    0x40c628
40c645:	33 c0                	xor    %eax,%eax
40c647:	50                   	push   %eax
40c648:	50                   	push   %eax
40c649:	50                   	push   %eax
40c64a:	50                   	push   %eax
40c64b:	50                   	push   %eax
40c64c:	e8 b4 ef ff ff       	call   0x40b605
40c651:	cc                   	int3
40c652:	55                   	push   %ebp
40c653:	8b ec                	mov    %esp,%ebp
40c655:	56                   	push   %esi
40c656:	57                   	push   %edi
40c657:	8b 7d 10             	mov    0x10(%ebp),%edi
40c65a:	57                   	push   %edi
40c65b:	ff 75 0c             	push   0xc(%ebp)
40c65e:	ff 75 08             	push   0x8(%ebp)
40c661:	e8 72 34 00 00       	call   0x40fad8
40c666:	83 c4 0c             	add    $0xc,%esp
40c669:	33 f6                	xor    %esi,%esi
40c66b:	85 c0                	test   %eax,%eax
40c66d:	75 46                	jne    0x40c6b5
40c66f:	8d 87 80 00 00 00    	lea    0x80(%edi),%eax
40c675:	66 39 30             	cmp    %si,(%eax)
40c678:	74 16                	je     0x40c690
40c67a:	50                   	push   %eax
40c67b:	68 5c bb 41 00       	push   $0x41bb5c
40c680:	6a 02                	push   $0x2
40c682:	ff 75 0c             	push   0xc(%ebp)
40c685:	ff 75 08             	push   0x8(%ebp)
40c688:	e8 6c 04 00 00       	call   0x40caf9
40c68d:	83 c4 14             	add    $0x14,%esp
40c690:	81 c7 00 01 00 00    	add    $0x100,%edi
40c696:	66 39 37             	cmp    %si,(%edi)
40c699:	74 16                	je     0x40c6b1
40c69b:	57                   	push   %edi
40c69c:	68 60 bb 41 00       	push   $0x41bb60
40c6a1:	6a 02                	push   $0x2
40c6a3:	ff 75 0c             	push   0xc(%ebp)
40c6a6:	ff 75 08             	push   0x8(%ebp)
40c6a9:	e8 4b 04 00 00       	call   0x40caf9
40c6ae:	83 c4 14             	add    $0x14,%esp
40c6b1:	5f                   	pop    %edi
40c6b2:	5e                   	pop    %esi
40c6b3:	5d                   	pop    %ebp
40c6b4:	c3                   	ret
40c6b5:	56                   	push   %esi
40c6b6:	56                   	push   %esi
40c6b7:	56                   	push   %esi
40c6b8:	56                   	push   %esi
40c6b9:	56                   	push   %esi
40c6ba:	e8 46 ef ff ff       	call   0x40b605
40c6bf:	cc                   	int3
40c6c0:	55                   	push   %ebp
40c6c1:	8b ec                	mov    %esp,%ebp
40c6c3:	51                   	push   %ecx
40c6c4:	53                   	push   %ebx
40c6c5:	56                   	push   %esi
40c6c6:	57                   	push   %edi
40c6c7:	8b 7d 08             	mov    0x8(%ebp),%edi
40c6ca:	68 ca 01 00 00       	push   $0x1ca
40c6cf:	33 db                	xor    %ebx,%ebx
40c6d1:	53                   	push   %ebx
40c6d2:	57                   	push   %edi
40c6d3:	e8 68 a8 ff ff       	call   0x406f40
40c6d8:	8b 75 0c             	mov    0xc(%ebp),%esi
40c6db:	83 c4 0c             	add    $0xc,%esp
40c6de:	0f b7 06             	movzwl (%esi),%eax
40c6e1:	66 85 c0             	test   %ax,%ax
40c6e4:	75 07                	jne    0x40c6ed
40c6e6:	33 c0                	xor    %eax,%eax
40c6e8:	e9 ed 00 00 00       	jmp    0x40c7da
40c6ed:	6a 2e                	push   $0x2e
40c6ef:	59                   	pop    %ecx
40c6f0:	66 3b c1             	cmp    %cx,%ax
40c6f3:	75 2d                	jne    0x40c722
40c6f5:	8d 46 02             	lea    0x2(%esi),%eax
40c6f8:	66 39 18             	cmp    %bx,(%eax)
40c6fb:	74 25                	je     0x40c722
40c6fd:	6a 0f                	push   $0xf
40c6ff:	50                   	push   %eax
40c700:	8d 87 00 01 00 00    	lea    0x100(%edi),%eax
40c706:	6a 10                	push   $0x10
40c708:	50                   	push   %eax
40c709:	e8 b0 52 00 00       	call   0x4119be
40c70e:	83 c4 10             	add    $0x10,%esp
40c711:	85 c0                	test   %eax,%eax
40c713:	0f 85 c6 00 00 00    	jne    0x40c7df
40c719:	66 89 87 1e 01 00 00 	mov    %ax,0x11e(%edi)
40c720:	eb c4                	jmp    0x40c6e6
40c722:	89 5d 0c             	mov    %ebx,0xc(%ebp)