408576:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40857c:	50                   	push   %eax
40857d:	6a 0b                	push   $0xb
40857f:	e8 0a a9 00 00       	call   0x412e8e
408584:	85 c0                	test   %eax,%eax
408586:	0f 88 ef 00 00 00    	js     0x40867b
40858c:	a1 80 93 41 00       	mov    0x419380,%eax
408591:	83 f8 40             	cmp    $0x40,%eax
408594:	75 11                	jne    0x4085a7
408596:	b8 e8 2b 40 00       	mov    $0x402be8,%eax
40859b:	b9 98 2b 40 00       	mov    $0x402b98,%ecx
4085a0:	ba 48 2b 40 00       	mov    $0x402b48,%edx
4085a5:	eb 45                	jmp    0x4085ec
4085a7:	83 f8 02             	cmp    $0x2,%eax
4085aa:	74 31                	je     0x4085dd
4085ac:	83 f8 01             	cmp    $0x1,%eax
4085af:	74 2c                	je     0x4085dd
4085b1:	83 f8 08             	cmp    $0x8,%eax
4085b4:	74 16                	je     0x4085cc
4085b6:	83 f8 04             	cmp    $0x4,%eax
4085b9:	74 11                	je     0x4085cc
4085bb:	b8 00 2e 40 00       	mov    $0x402e00,%eax
4085c0:	b9 98 2b 40 00       	mov    $0x402b98,%ecx
4085c5:	ba b0 2d 40 00       	mov    $0x402db0,%edx
4085ca:	eb 20                	jmp    0x4085ec
4085cc:	b8 68 2d 40 00       	mov    $0x402d68,%eax
4085d1:	b9 98 2b 40 00       	mov    $0x402b98,%ecx
4085d6:	ba 18 2d 40 00       	mov    $0x402d18,%edx
4085db:	eb 0f                	jmp    0x4085ec
4085dd:	b8 d0 2c 40 00       	mov    $0x402cd0,%eax
4085e2:	b9 80 2c 40 00       	mov    $0x402c80,%ecx
4085e7:	ba 30 2c 40 00       	mov    $0x402c30,%edx
4085ec:	52                   	push   %edx
4085ed:	51                   	push   %ecx
4085ee:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
4085f4:	51                   	push   %ecx
4085f5:	50                   	push   %eax
4085f6:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
4085fc:	68 04 01 00 00       	push   $0x104
408601:	50                   	push   %eax
408602:	e8 9d 01 00 00       	call   0x4087a4
408607:	83 c4 18             	add    $0x18,%esp
40860a:	85 c0                	test   %eax,%eax
40860c:	78 6d                	js     0x40867b
40860e:	6a 44                	push   $0x44
408610:	5e                   	pop    %esi
408611:	56                   	push   %esi
408612:	8d 85 98 fb ff ff    	lea    -0x468(%ebp),%eax
408618:	57                   	push   %edi
408619:	50                   	push   %eax
40861a:	e8 42 bb 00 00       	call   0x414161
40861f:	83 c4 0c             	add    $0xc,%esp
408622:	89 b5 98 fb ff ff    	mov    %esi,-0x468(%ebp)
408628:	8d 85 dc fb ff ff    	lea    -0x424(%ebp),%eax
40862e:	50                   	push   %eax
40862f:	8d 85 98 fb ff ff    	lea    -0x468(%ebp),%eax
408635:	50                   	push   %eax
408636:	57                   	push   %edi
408637:	57                   	push   %edi
408638:	68 00 00 00 04       	push   $0x4000000
40863d:	6a 01                	push   $0x1
40863f:	e8 30 f5 ff ff       	call   0x407b74
408644:	50                   	push   %eax
408645:	e8 2a f5 ff ff       	call   0x407b74
40864a:	50                   	push   %eax
40864b:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
408651:	50                   	push   %eax
408652:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
408658:	50                   	push   %eax
408659:	ff 15 7c b1 41 00    	call   *0x41b17c
40865f:	85 c0                	test   %eax,%eax
408661:	74 18                	je     0x40867b
408663:	ff b5 e0 fb ff ff    	push   -0x420(%ebp)
408669:	ff 15 54 b1 41 00    	call   *0x41b154
40866f:	ff b5 dc fb ff ff    	push   -0x424(%ebp)
408675:	ff 15 54 b1 41 00    	call   *0x41b154
40867b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40867e:	5f                   	pop    %edi
40867f:	33 cd                	xor    %ebp,%ecx
408681:	5e                   	pop    %esi
408682:	e8 59 b2 00 00       	call   0x4138e0
408687:	c9                   	leave
408688:	c3                   	ret
408689:	8b ff                	mov    %edi,%edi
40868b:	55                   	push   %ebp
40868c:	8b ec                	mov    %esp,%ebp
40868e:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
408694:	a1 18 51 41 00       	mov    0x415118,%eax
408699:	33 c5                	xor    %ebp,%eax
40869b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40869e:	56                   	push   %esi
40869f:	51                   	push   %ecx
4086a0:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4086a6:	33 f6                	xor    %esi,%esi
4086a8:	50                   	push   %eax
4086a9:	51                   	push   %ecx
4086aa:	e8 df a7 00 00       	call   0x412e8e
4086af:	85 c0                	test   %eax,%eax
4086b1:	78 2f                	js     0x4086e2
4086b3:	56                   	push   %esi
4086b4:	68 80 00 00 00       	push   $0x80
4086b9:	6a 03                	push   $0x3
4086bb:	e8 b4 f4 ff ff       	call   0x407b74
4086c0:	50                   	push   %eax
4086c1:	6a 01                	push   $0x1
4086c3:	68 00 00 00 80       	push   $0x80000000
4086c8:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4086ce:	50                   	push   %eax
4086cf:	ff 15 80 b1 41 00    	call   *0x41b180
4086d5:	83 f8 ff             	cmp    $0xffffffff,%eax
4086d8:	74 08                	je     0x4086e2
4086da:	50                   	push   %eax
4086db:	ff 15 54 b1 41 00    	call   *0x41b154
4086e1:	46                   	inc    %esi
4086e2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4086e5:	8b c6                	mov    %esi,%eax
4086e7:	33 cd                	xor    %ebp,%ecx
4086e9:	5e                   	pop    %esi
4086ea:	e8 f1 b1 00 00       	call   0x4138e0
4086ef:	c9                   	leave
4086f0:	c3                   	ret
4086f1:	8b ff                	mov    %edi,%edi
4086f3:	55                   	push   %ebp
4086f4:	8b ec                	mov    %esp,%ebp
4086f6:	6a ff                	push   $0xffffffff
4086f8:	68 67 41 41 00       	push   $0x414167
4086fd:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
408703:	50                   	push   %eax
408704:	a1 18 51 41 00       	mov    0x415118,%eax
408709:	33 c5                	xor    %ebp,%eax
40870b:	50                   	push   %eax
40870c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40870f:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
408715:	c7 01 54 15 40 00    	movl   $0x401554,(%ecx)
40871b:	e8 66 00 00 00       	call   0x408786
408720:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408723:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40872a:	59                   	pop    %ecx
40872b:	c9                   	leave
40872c:	c3                   	ret
40872d:	cc                   	int3
40872e:	cc                   	int3
40872f:	cc                   	int3
408730:	8b ff                	mov    %edi,%edi
408732:	55                   	push   %ebp
408733:	8b ec                	mov    %esp,%ebp
408735:	6a ff                	push   $0xffffffff
408737:	68 90 42 41 00       	push   $0x414290
40873c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
408742:	50                   	push   %eax
408743:	56                   	push   %esi
408744:	a1 18 51 41 00       	mov    0x415118,%eax
408749:	33 c5                	xor    %ebp,%eax
40874b:	50                   	push   %eax
40874c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40874f:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
408755:	8b f1                	mov    %ecx,%esi
408757:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40875b:	c7 06 54 15 40 00    	movl   $0x401554,(%esi)
408761:	e8 20 00 00 00       	call   0x408786
408766:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40876a:	74 08                	je     0x408774
40876c:	56                   	push   %esi
40876d:	ff 15 cc b2 41 00    	call   *0x41b2cc
408773:	59                   	pop    %ecx
408774:	8b c6                	mov    %esi,%eax
408776:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408779:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408780:	59                   	pop    %ecx
408781:	5e                   	pop    %esi
408782:	c9                   	leave
408783:	c2 04 00             	ret    $0x4
408786:	8b 51 04             	mov    0x4(%ecx),%edx
408789:	85 d2                	test   %edx,%edx
40878b:	74 16                	je     0x4087a3
40878d:	83 61 04 00          	andl   $0x0,0x4(%ecx)
408791:	8b 02                	mov    (%edx),%eax
408793:	56                   	push   %esi
408794:	52                   	push   %edx
408795:	8b 70 08             	mov    0x8(%eax),%esi
408798:	8b ce                	mov    %esi,%ecx
40879a:	ff 15 90 b3 41 00    	call   *0x41b390
4087a0:	ff d6                	call   *%esi
4087a2:	5e                   	pop    %esi
4087a3:	c3                   	ret
4087a4:	8b ff                	mov    %edi,%edi
4087a6:	55                   	push   %ebp
4087a7:	8b ec                	mov    %esp,%ebp
4087a9:	8d 45 14             	lea    0x14(%ebp),%eax
4087ac:	50                   	push   %eax
4087ad:	ff 75 10             	push   0x10(%ebp)
4087b0:	6a ff                	push   $0xffffffff
4087b2:	ff 75 0c             	push   0xc(%ebp)
4087b5:	ff 75 08             	push   0x8(%ebp)
4087b8:	ff 15 e4 b2 41 00    	call   *0x41b2e4
4087be:	83 c4 14             	add    $0x14,%esp
4087c1:	83 f8 ff             	cmp    $0xffffffff,%eax
4087c4:	75 07                	jne    0x4087cd
4087c6:	b8 7a 00 07 80       	mov    $0x8007007a,%eax
4087cb:	5d                   	pop    %ebp
4087cc:	c3                   	ret
4087cd:	33 c0                	xor    %eax,%eax
4087cf:	5d                   	pop    %ebp
4087d0:	c3                   	ret
4087d1:	8b ff                	mov    %edi,%edi
4087d3:	56                   	push   %esi
4087d4:	33 f6                	xor    %esi,%esi
4087d6:	66 3b ca             	cmp    %dx,%cx
4087d9:	76 08                	jbe    0x4087e3
4087db:	0f b7 c1             	movzwl %cx,%eax
4087de:	0f b7 ca             	movzwl %dx,%ecx
4087e1:	8b d0                	mov    %eax,%edx
4087e3:	8b c6                	mov    %esi,%eax
4087e5:	66 3b 88 50 2e 40 00 	cmp    0x402e50(%eax),%cx
4087ec:	75 09                	jne    0x4087f7
4087ee:	66 3b 90 52 2e 40 00 	cmp    0x402e52(%eax),%dx
4087f5:	74 0c                	je     0x408803
4087f7:	83 c0 06             	add    $0x6,%eax
4087fa:	3d 06 0c 00 00       	cmp    $0xc06,%eax
4087ff:	72 e4                	jb     0x4087e5
408801:	eb 03                	jmp    0x408806
408803:	33 f6                	xor    %esi,%esi
408805:	46                   	inc    %esi
408806:	8b c6                	mov    %esi,%eax
408808:	5e                   	pop    %esi
408809:	c3                   	ret
40880a:	c7 01 90 15 40 00    	movl   $0x401590,(%ecx)
408810:	c3                   	ret
408811:	cc                   	int3
408812:	cc                   	int3
408813:	cc                   	int3
408814:	cc                   	int3
408815:	cc                   	int3
408816:	cc                   	int3
408817:	cc                   	int3
408818:	cc                   	int3
408819:	cc                   	int3
40881a:	cc                   	int3
40881b:	cc                   	int3
40881c:	cc                   	int3
40881d:	cc                   	int3
40881e:	cc                   	int3
40881f:	cc                   	int3
408820:	6a 00                	push   $0x0
408822:	ff 71 04             	push   0x4(%ecx)
408825:	ff 15 b8 b2 41 00    	call   *0x41b2b8
40882b:	33 c0                	xor    %eax,%eax
40882d:	40                   	inc    %eax
40882e:	c3                   	ret
40882f:	cc                   	int3
408830:	33 c0                	xor    %eax,%eax
408832:	c2 04 00             	ret    $0x4
408835:	cc                   	int3
408836:	cc                   	int3
408837:	cc                   	int3
408838:	cc                   	int3
408839:	cc                   	int3
40883a:	cc                   	int3
40883b:	cc                   	int3
40883c:	cc                   	int3
40883d:	cc                   	int3
40883e:	cc                   	int3
40883f:	cc                   	int3
408840:	33 c0                	xor    %eax,%eax
408842:	c2 08 00             	ret    $0x8
408845:	cc                   	int3
408846:	cc                   	int3
408847:	cc                   	int3
408848:	cc                   	int3
408849:	cc                   	int3
40884a:	cc                   	int3
40884b:	cc                   	int3
40884c:	cc                   	int3
40884d:	cc                   	int3
40884e:	cc                   	int3
40884f:	cc                   	int3
408850:	33 c0                	xor    %eax,%eax
408852:	c2 0c 00             	ret    $0xc
408855:	cc                   	int3
408856:	cc                   	int3
408857:	cc                   	int3
408858:	cc                   	int3
408859:	cc                   	int3
40885a:	cc                   	int3
40885b:	cc                   	int3
40885c:	cc                   	int3
40885d:	cc                   	int3
40885e:	cc                   	int3
40885f:	cc                   	int3
408860:	33 c0                	xor    %eax,%eax
408862:	40                   	inc    %eax
408863:	c2 04 00             	ret    $0x4
408866:	cc                   	int3
408867:	cc                   	int3
408868:	cc                   	int3
408869:	cc                   	int3
40886a:	cc                   	int3
40886b:	cc                   	int3
40886c:	cc                   	int3
40886d:	cc                   	int3
40886e:	cc                   	int3
40886f:	cc                   	int3
408870:	33 c0                	xor    %eax,%eax
408872:	40                   	inc    %eax
408873:	c2 08 00             	ret    $0x8
408876:	cc                   	int3
408877:	cc                   	int3
408878:	cc                   	int3
408879:	cc                   	int3
40887a:	cc                   	int3
40887b:	cc                   	int3
40887c:	cc                   	int3
40887d:	cc                   	int3
40887e:	cc                   	int3
40887f:	cc                   	int3
408880:	8b ff                	mov    %edi,%edi
408882:	55                   	push   %ebp
408883:	8b ec                	mov    %esp,%ebp
408885:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
408889:	56                   	push   %esi
40888a:	8b f1                	mov    %ecx,%esi
40888c:	c7 06 90 15 40 00    	movl   $0x401590,(%esi)
408892:	74 08                	je     0x40889c
408894:	56                   	push   %esi
408895:	ff 15 cc b2 41 00    	call   *0x41b2cc
40889b:	59                   	pop    %ecx
40889c:	8b c6                	mov    %esi,%eax
40889e:	5e                   	pop    %esi
40889f:	5d                   	pop    %ebp
4088a0:	c2 04 00             	ret    $0x4
4088a3:	cc                   	int3
4088a4:	cc                   	int3
4088a5:	cc                   	int3
4088a6:	cc                   	int3
4088a7:	cc                   	int3
4088a8:	cc                   	int3
4088a9:	cc                   	int3
4088aa:	cc                   	int3
4088ab:	cc                   	int3
4088ac:	cc                   	int3
4088ad:	cc                   	int3
4088ae:	cc                   	int3
4088af:	cc                   	int3
4088b0:	8b ff                	mov    %edi,%edi
4088b2:	55                   	push   %ebp
4088b3:	8b ec                	mov    %esp,%ebp
4088b5:	51                   	push   %ecx
4088b6:	53                   	push   %ebx
4088b7:	56                   	push   %esi
4088b8:	57                   	push   %edi