40d39a:	33 c5                	xor    %ebp,%eax
40d39c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d39f:	53                   	push   %ebx
40d3a0:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d3a3:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
40d3a9:	56                   	push   %esi
40d3aa:	57                   	push   %edi
40d3ab:	33 ff                	xor    %edi,%edi
40d3ad:	57                   	push   %edi
40d3ae:	50                   	push   %eax
40d3af:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
40d3b5:	89 bd e8 fd ff ff    	mov    %edi,-0x218(%ebp)
40d3bb:	50                   	push   %eax
40d3bc:	6a ff                	push   $0xffffffff
40d3be:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
40d3c4:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40d3ca:	50                   	push   %eax
40d3cb:	57                   	push   %edi
40d3cc:	53                   	push   %ebx
40d3cd:	57                   	push   %edi
40d3ce:	ff 15 1c 63 41 00    	call   *0x41631c
40d3d4:	85 c0                	test   %eax,%eax
40d3d6:	74 1e                	je     0x40d3f6
40d3d8:	57                   	push   %edi
40d3d9:	68 14 39 40 00       	push   $0x403914
40d3de:	68 a4 07 00 00       	push   $0x7a4
40d3e3:	68 d0 34 40 00       	push   $0x4034d0
40d3e8:	51                   	push   %ecx
40d3e9:	e8 e4 3b 00 00       	call   0x410fd2
40d3ee:	6a 0c                	push   $0xc
40d3f0:	5e                   	pop    %esi
40d3f1:	e9 0e 01 00 00       	jmp    0x40d504
40d3f6:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
40d3fc:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
40d402:	57                   	push   %edi
40d403:	53                   	push   %ebx
40d404:	57                   	push   %edi
40d405:	ff 15 20 63 41 00    	call   *0x416320
40d40b:	85 c0                	test   %eax,%eax
40d40d:	74 0d                	je     0x40d41c
40d40f:	57                   	push   %edi
40d410:	68 14 39 40 00       	push   $0x403914
40d415:	68 b5 07 00 00       	push   $0x7b5
40d41a:	eb c7                	jmp    0x40d3e3
40d41c:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40d422:	50                   	push   %eax
40d423:	68 19 00 02 00       	push   $0x20019
40d428:	57                   	push   %edi
40d429:	68 50 39 40 00       	push   $0x403950
40d42e:	68 02 00 00 80       	push   $0x80000002
40d433:	ff 15 04 60 41 00    	call   *0x416004
40d439:	8b f0                	mov    %eax,%esi
40d43b:	57                   	push   %edi
40d43c:	85 f6                	test   %esi,%esi
40d43e:	74 1a                	je     0x40d45a
40d440:	68 14 39 40 00       	push   $0x403914
40d445:	68 c5 07 00 00       	push   $0x7c5
40d44a:	68 d0 34 40 00       	push   $0x4034d0
40d44f:	51                   	push   %ecx
40d450:	e8 7d 3b 00 00       	call   0x410fd2
40d455:	e9 aa 00 00 00       	jmp    0x40d504
40d45a:	57                   	push   %edi
40d45b:	57                   	push   %edi
40d45c:	57                   	push   %edi
40d45d:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
40d463:	50                   	push   %eax
40d464:	57                   	push   %edi
40d465:	57                   	push   %edi
40d466:	57                   	push   %edi
40d467:	57                   	push   %edi
40d468:	57                   	push   %edi
40d469:	57                   	push   %edi
40d46a:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
40d470:	ff 15 14 60 41 00    	call   *0x416014
40d476:	8b f0                	mov    %eax,%esi
40d478:	85 f6                	test   %esi,%esi
40d47a:	74 0d                	je     0x40d489
40d47c:	57                   	push   %edi
40d47d:	68 14 39 40 00       	push   $0x403914
40d482:	68 da 07 00 00       	push   $0x7da
40d487:	eb c1                	jmp    0x40d44a
40d489:	39 bd e0 fd ff ff    	cmp    %edi,-0x220(%ebp)
40d48f:	76 71                	jbe    0x40d502
40d491:	33 c0                	xor    %eax,%eax
40d493:	c7 85 d8 fd ff ff 04 	movl   $0x104,-0x228(%ebp)
40d49a:	01 00 00
40d49d:	50                   	push   %eax
40d49e:	50                   	push   %eax
40d49f:	50                   	push   %eax
40d4a0:	50                   	push   %eax
40d4a1:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40d4a7:	50                   	push   %eax
40d4a8:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
40d4ae:	50                   	push   %eax
40d4af:	57                   	push   %edi
40d4b0:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
40d4b6:	ff 15 70 60 41 00    	call   *0x416070
40d4bc:	85 c0                	test   %eax,%eax
40d4be:	74 19                	je     0x40d4d9
40d4c0:	6a 00                	push   $0x0
40d4c2:	68 14 39 40 00       	push   $0x403914
40d4c7:	68 ee 07 00 00       	push   $0x7ee
40d4cc:	68 d0 34 40 00       	push   $0x4034d0
40d4d1:	51                   	push   %ecx
40d4d2:	e8 fb 3a 00 00       	call   0x410fd2
40d4d7:	eb 20                	jmp    0x40d4f9
40d4d9:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
40d4df:	6a 01                	push   $0x1
40d4e1:	89 85 d4 fd ff ff    	mov    %eax,-0x22c(%ebp)
40d4e7:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40d4ed:	50                   	push   %eax
40d4ee:	6a 03                	push   $0x3
40d4f0:	53                   	push   %ebx
40d4f1:	6a 00                	push   $0x0
40d4f3:	ff 15 0c 63 41 00    	call   *0x41630c
40d4f9:	47                   	inc    %edi
40d4fa:	3b bd e0 fd ff ff    	cmp    -0x220(%ebp),%edi
40d500:	72 8f                	jb     0x40d491
40d502:	33 ff                	xor    %edi,%edi
40d504:	83 bd e8 fd ff ff 00 	cmpl   $0x0,-0x218(%ebp)
40d50b:	74 12                	je     0x40d51f
40d50d:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
40d513:	ff 15 18 60 41 00    	call   *0x416018
40d519:	89 bd e8 fd ff ff    	mov    %edi,-0x218(%ebp)
40d51f:	83 bd e4 fd ff ff 00 	cmpl   $0x0,-0x21c(%ebp)
40d526:	74 0c                	je     0x40d534
40d528:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
40d52e:	ff 15 04 63 41 00    	call   *0x416304
40d534:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40d537:	8b c6                	mov    %esi,%eax
40d539:	5f                   	pop    %edi
40d53a:	5e                   	pop    %esi
40d53b:	33 cd                	xor    %ebp,%ecx
40d53d:	5b                   	pop    %ebx
40d53e:	e8 ad 4a 00 00       	call   0x411ff0
40d543:	c9                   	leave
40d544:	c2 04 00             	ret    $0x4
40d547:	8b ff                	mov    %edi,%edi
40d549:	55                   	push   %ebp
40d54a:	8b ec                	mov    %esp,%ebp
40d54c:	56                   	push   %esi
40d54d:	33 f6                	xor    %esi,%esi
40d54f:	8b c6                	mov    %esi,%eax
40d551:	85 c9                	test   %ecx,%ecx
40d553:	74 31                	je     0x40d586
40d555:	8b c2                	mov    %edx,%eax
40d557:	d1 e8                	shr    $1,%eax
40d559:	8b d0                	mov    %eax,%edx
40d55b:	74 0d                	je     0x40d56a
40d55d:	66 39 31             	cmp    %si,(%ecx)
40d560:	74 08                	je     0x40d56a
40d562:	83 c1 02             	add    $0x2,%ecx
40d565:	83 e8 01             	sub    $0x1,%eax
40d568:	75 f3                	jne    0x40d55d
40d56a:	8b c8                	mov    %eax,%ecx
40d56c:	f7 d9                	neg    %ecx
40d56e:	1b c9                	sbb    %ecx,%ecx
40d570:	2b d0                	sub    %eax,%edx
40d572:	81 e1 a9 ff f8 7f    	and    $0x7ff8ffa9,%ecx
40d578:	81 c1 57 00 07 80    	add    $0x80070057,%ecx
40d57e:	f7 d8                	neg    %eax
40d580:	1b c0                	sbb    %eax,%eax
40d582:	23 c2                	and    %edx,%eax
40d584:	eb 05                	jmp    0x40d58b
40d586:	b9 57 00 07 80       	mov    $0x80070057,%ecx
40d58b:	8b 55 08             	mov    0x8(%ebp),%edx
40d58e:	85 d2                	test   %edx,%edx
40d590:	74 0c                	je     0x40d59e
40d592:	85 c9                	test   %ecx,%ecx
40d594:	78 06                	js     0x40d59c
40d596:	03 c0                	add    %eax,%eax
40d598:	89 02                	mov    %eax,(%edx)
40d59a:	eb 02                	jmp    0x40d59e
40d59c:	89 32                	mov    %esi,(%edx)
40d59e:	8b c1                	mov    %ecx,%eax
40d5a0:	5e                   	pop    %esi
40d5a1:	5d                   	pop    %ebp
40d5a2:	c2 04 00             	ret    $0x4
40d5a5:	8b ff                	mov    %edi,%edi
40d5a7:	55                   	push   %ebp
40d5a8:	8b ec                	mov    %esp,%ebp
40d5aa:	6a ff                	push   $0xffffffff
40d5ac:	68 c0 2e 41 00       	push   $0x412ec0
40d5b1:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40d5b7:	50                   	push   %eax
40d5b8:	56                   	push   %esi
40d5b9:	57                   	push   %edi
40d5ba:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40d5bf:	33 c5                	xor    %ebp,%eax
40d5c1:	50                   	push   %eax
40d5c2:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d5c5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40d5cb:	8b f9                	mov    %ecx,%edi
40d5cd:	8b 4f 08             	mov    0x8(%edi),%ecx
40d5d0:	85 c9                	test   %ecx,%ecx
40d5d2:	74 20                	je     0x40d5f4
40d5d4:	e8 39 06 00 00       	call   0x40dc12
40d5d9:	8b 4f 08             	mov    0x8(%edi),%ecx
40d5dc:	85 c9                	test   %ecx,%ecx
40d5de:	74 14                	je     0x40d5f4
40d5e0:	8b 01                	mov    (%ecx),%eax
40d5e2:	51                   	push   %ecx
40d5e3:	8b 70 08             	mov    0x8(%eax),%esi
40d5e6:	8b ce                	mov    %esi,%ecx
40d5e8:	ff 15 28 63 41 00    	call   *0x416328
40d5ee:	ff d6                	call   *%esi
40d5f0:	83 67 08 00          	andl   $0x0,0x8(%edi)
40d5f4:	ff 77 24             	push   0x24(%edi)
40d5f7:	ff 15 b8 61 41 00    	call   *0x4161b8
40d5fd:	ff 77 10             	push   0x10(%edi)
40d600:	ff 15 b8 61 41 00    	call   *0x4161b8
40d606:	8b 4f 0c             	mov    0xc(%edi),%ecx
40d609:	85 c9                	test   %ecx,%ecx
40d60b:	74 10                	je     0x40d61d
40d60d:	8b 01                	mov    (%ecx),%eax
40d60f:	51                   	push   %ecx
40d610:	8b 70 08             	mov    0x8(%eax),%esi
40d613:	8b ce                	mov    %esi,%ecx
40d615:	ff 15 28 63 41 00    	call   *0x416328
40d61b:	ff d6                	call   *%esi
40d61d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d620:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d627:	59                   	pop    %ecx
40d628:	5f                   	pop    %edi
40d629:	5e                   	pop    %esi
40d62a:	c9                   	leave
40d62b:	c3                   	ret
40d62c:	cc                   	int3
40d62d:	cc                   	int3
40d62e:	cc                   	int3
40d62f:	cc                   	int3
40d630:	8b ff                	mov    %edi,%edi
40d632:	55                   	push   %ebp
40d633:	8b ec                	mov    %esp,%ebp
40d635:	8b 45 08             	mov    0x8(%ebp),%eax
40d638:	8b 48 0c             	mov    0xc(%eax),%ecx
40d63b:	85 c9                	test   %ecx,%ecx
40d63d:	74 1a                	je     0x40d659
40d63f:	8b 01                	mov    (%ecx),%eax
40d641:	56                   	push   %esi
40d642:	ff 75 10             	push   0x10(%ebp)
40d645:	ff 75 0c             	push   0xc(%ebp)
40d648:	8b 70 1c             	mov    0x1c(%eax),%esi
40d64b:	51                   	push   %ecx
40d64c:	8b ce                	mov    %esi,%ecx
40d64e:	ff 15 28 63 41 00    	call   *0x416328
40d654:	ff d6                	call   *%esi
40d656:	5e                   	pop    %esi
40d657:	eb 05                	jmp    0x40d65e
40d659:	b8 03 40 00 80       	mov    $0x80004003,%eax
40d65e:	5d                   	pop    %ebp
40d65f:	c2 0c 00             	ret    $0xc
40d662:	cc                   	int3
40d663:	cc                   	int3
40d664:	cc                   	int3
40d665:	cc                   	int3
40d666:	cc                   	int3
40d667:	cc                   	int3
40d668:	cc                   	int3
40d669:	cc                   	int3
40d66a:	cc                   	int3
40d66b:	cc                   	int3
40d66c:	cc                   	int3
40d66d:	cc                   	int3
40d66e:	cc                   	int3
40d66f:	cc                   	int3
40d670:	8b ff                	mov    %edi,%edi
40d672:	55                   	push   %ebp
40d673:	8b ec                	mov    %esp,%ebp
40d675:	8b 45 08             	mov    0x8(%ebp),%eax
40d678:	8b 48 0c             	mov    0xc(%eax),%ecx
40d67b:	85 c9                	test   %ecx,%ecx
40d67d:	74 17                	je     0x40d696
40d67f:	8b 01                	mov    (%ecx),%eax
40d681:	56                   	push   %esi
40d682:	ff 75 0c             	push   0xc(%ebp)
40d685:	8b 70 18             	mov    0x18(%eax),%esi
40d688:	51                   	push   %ecx
40d689:	8b ce                	mov    %esi,%ecx
40d68b:	ff 15 28 63 41 00    	call   *0x416328
40d691:	ff d6                	call   *%esi
40d693:	5e                   	pop    %esi
40d694:	eb 05                	jmp    0x40d69b
40d696:	b8 03 40 00 80       	mov    $0x80004003,%eax
40d69b:	5d                   	pop    %ebp
40d69c:	c2 08 00             	ret    $0x8
40d69f:	cc                   	int3
40d6a0:	8b ff                	mov    %edi,%edi
40d6a2:	55                   	push   %ebp
40d6a3:	8b ec                	mov    %esp,%ebp
40d6a5:	8b 45 08             	mov    0x8(%ebp),%eax
40d6a8:	8b 48 14             	mov    0x14(%eax),%ecx
40d6ab:	8b 45 0c             	mov    0xc(%ebp),%eax
40d6ae:	89 08                	mov    %ecx,(%eax)
40d6b0:	33 c0                	xor    %eax,%eax
40d6b2:	5d                   	pop    %ebp
40d6b3:	c2 08 00             	ret    $0x8
40d6b6:	cc                   	int3
40d6b7:	cc                   	int3
40d6b8:	cc                   	int3
40d6b9:	cc                   	int3
40d6ba:	cc                   	int3
40d6bb:	cc                   	int3
40d6bc:	cc                   	int3
40d6bd:	cc                   	int3
40d6be:	cc                   	int3
40d6bf:	cc                   	int3
40d6c0:	8b ff                	mov    %edi,%edi
40d6c2:	55                   	push   %ebp
40d6c3:	8b ec                	mov    %esp,%ebp
40d6c5:	8b 45 08             	mov    0x8(%ebp),%eax
40d6c8:	8b 48 18             	mov    0x18(%eax),%ecx
40d6cb:	8b 45 0c             	mov    0xc(%ebp),%eax
40d6ce:	89 08                	mov    %ecx,(%eax)
40d6d0:	33 c0                	xor    %eax,%eax
40d6d2:	5d                   	pop    %ebp
40d6d3:	c2 08 00             	ret    $0x8
40d6d6:	cc                   	int3
40d6d7:	cc                   	int3
40d6d8:	cc                   	int3
40d6d9:	cc                   	int3
40d6da:	cc                   	int3
40d6db:	cc                   	int3
40d6dc:	cc                   	int3
40d6dd:	cc                   	int3
40d6de:	cc                   	int3
40d6df:	cc                   	int3
40d6e0:	8b ff                	mov    %edi,%edi
40d6e2:	55                   	push   %ebp
40d6e3:	8b ec                	mov    %esp,%ebp
40d6e5:	8b 45 08             	mov    0x8(%ebp),%eax
40d6e8:	8b 48 1c             	mov    0x1c(%eax),%ecx
40d6eb:	8b 45 0c             	mov    0xc(%ebp),%eax
40d6ee:	89 08                	mov    %ecx,(%eax)
40d6f0:	33 c0                	xor    %eax,%eax
40d6f2:	5d                   	pop    %ebp
40d6f3:	c2 08 00             	ret    $0x8
40d6f6:	cc                   	int3
40d6f7:	cc                   	int3
40d6f8:	cc                   	int3
40d6f9:	cc                   	int3
40d6fa:	cc                   	int3
40d6fb:	cc                   	int3
40d6fc:	cc                   	int3
40d6fd:	cc                   	int3
40d6fe:	cc                   	int3
40d6ff:	cc                   	int3
40d700:	8b ff                	mov    %edi,%edi
40d702:	55                   	push   %ebp
40d703:	8b ec                	mov    %esp,%ebp