408608:	f7 d8                	neg    %eax
40860a:	1b c0                	sbb    %eax,%eax
40860c:	83 c0 f5             	add    $0xfffffff5,%eax
40860f:	50                   	push   %eax
408610:	ff 15 28 d1 40 00    	call   *0x40d128
408616:	8b f8                	mov    %eax,%edi
408618:	83 ff ff             	cmp    $0xffffffff,%edi
40861b:	74 17                	je     0x408634
40861d:	57                   	push   %edi
40861e:	ff 15 2c d1 40 00    	call   *0x40d12c
408624:	85 c0                	test   %eax,%eax
408626:	74 0c                	je     0x408634
408628:	25 ff 00 00 00       	and    $0xff,%eax
40862d:	89 3e                	mov    %edi,(%esi)
40862f:	83 f8 02             	cmp    $0x2,%eax
408632:	75 06                	jne    0x40863a
408634:	80 4e 04 40          	orb    $0x40,0x4(%esi)
408638:	eb 0f                	jmp    0x408649
40863a:	83 f8 03             	cmp    $0x3,%eax
40863d:	75 0a                	jne    0x408649
40863f:	80 4e 04 08          	orb    $0x8,0x4(%esi)
408643:	eb 04                	jmp    0x408649
408645:	80 4e 04 80          	orb    $0x80,0x4(%esi)
408649:	43                   	inc    %ebx
40864a:	83 fb 03             	cmp    $0x3,%ebx
40864d:	7c 97                	jl     0x4085e6
40864f:	ff 35 c0 1e 41 00    	push   0x411ec0
408655:	ff 15 24 d1 40 00    	call   *0x40d124
40865b:	5f                   	pop    %edi
40865c:	5e                   	pop    %esi
40865d:	5b                   	pop    %ebx
40865e:	c9                   	leave
40865f:	c3                   	ret
408660:	56                   	push   %esi
408661:	e8 66 e9 ff ff       	call   0x406fcc
408666:	ff 15 38 d1 40 00    	call   *0x40d138
40866c:	83 f8 ff             	cmp    $0xffffffff,%eax
40866f:	a3 2c 0e 41 00       	mov    %eax,0x410e2c
408674:	74 3a                	je     0x4086b0
408676:	6a 74                	push   $0x74
408678:	6a 01                	push   $0x1
40867a:	e8 e5 03 00 00       	call   0x408a64
40867f:	8b f0                	mov    %eax,%esi
408681:	59                   	pop    %ecx
408682:	85 f6                	test   %esi,%esi
408684:	59                   	pop    %ecx
408685:	74 29                	je     0x4086b0
408687:	56                   	push   %esi
408688:	ff 35 2c 0e 41 00    	push   0x410e2c
40868e:	ff 15 34 d1 40 00    	call   *0x40d134
408694:	85 c0                	test   %eax,%eax
408696:	74 18                	je     0x4086b0
408698:	56                   	push   %esi
408699:	e8 16 00 00 00       	call   0x4086b4
40869e:	59                   	pop    %ecx
40869f:	ff 15 30 d1 40 00    	call   *0x40d130
4086a5:	83 4e 04 ff          	orl    $0xffffffff,0x4(%esi)
4086a9:	6a 01                	push   $0x1
4086ab:	89 06                	mov    %eax,(%esi)
4086ad:	58                   	pop    %eax
4086ae:	5e                   	pop    %esi
4086af:	c3                   	ret
4086b0:	33 c0                	xor    %eax,%eax
4086b2:	5e                   	pop    %esi
4086b3:	c3                   	ret
4086b4:	8b 44 24 04          	mov    0x4(%esp),%eax
4086b8:	c7 40 50 80 0d 41 00 	movl   $0x410d80,0x50(%eax)
4086bf:	c7 40 14 01 00 00 00 	movl   $0x1,0x14(%eax)
4086c6:	c3                   	ret
4086c7:	56                   	push   %esi
4086c8:	57                   	push   %edi
4086c9:	ff 15 9c d0 40 00    	call   *0x40d09c
4086cf:	ff 35 2c 0e 41 00    	push   0x410e2c
4086d5:	8b f8                	mov    %eax,%edi
4086d7:	ff 15 90 d0 40 00    	call   *0x40d090
4086dd:	8b f0                	mov    %eax,%esi
4086df:	85 f6                	test   %esi,%esi
4086e1:	75 3f                	jne    0x408722
4086e3:	6a 74                	push   $0x74
4086e5:	6a 01                	push   $0x1
4086e7:	e8 78 03 00 00       	call   0x408a64
4086ec:	8b f0                	mov    %eax,%esi
4086ee:	59                   	pop    %ecx
4086ef:	85 f6                	test   %esi,%esi
4086f1:	59                   	pop    %ecx
4086f2:	74 26                	je     0x40871a
4086f4:	56                   	push   %esi
4086f5:	ff 35 2c 0e 41 00    	push   0x410e2c
4086fb:	ff 15 34 d1 40 00    	call   *0x40d134
408701:	85 c0                	test   %eax,%eax
408703:	74 15                	je     0x40871a
408705:	56                   	push   %esi
408706:	e8 a9 ff ff ff       	call   0x4086b4
40870b:	59                   	pop    %ecx
40870c:	ff 15 30 d1 40 00    	call   *0x40d130
408712:	83 4e 04 ff          	orl    $0xffffffff,0x4(%esi)
408716:	89 06                	mov    %eax,(%esi)
408718:	eb 08                	jmp    0x408722
40871a:	6a 10                	push   $0x10
40871c:	e8 5b d0 ff ff       	call   0x40577c
408721:	59                   	pop    %ecx
408722:	57                   	push   %edi
408723:	ff 15 3c d1 40 00    	call   *0x40d13c
408729:	8b c6                	mov    %esi,%eax
40872b:	5f                   	pop    %edi
40872c:	5e                   	pop    %esi
40872d:	c3                   	ret
40872e:	33 c0                	xor    %eax,%eax
408730:	6a 00                	push   $0x0
408732:	39 44 24 08          	cmp    %eax,0x8(%esp)
408736:	68 00 10 00 00       	push   $0x1000
40873b:	0f 94 c0             	sete   %al
40873e:	50                   	push   %eax
40873f:	ff 15 88 d0 40 00    	call   *0x40d088
408745:	85 c0                	test   %eax,%eax
408747:	a3 a0 1d 41 00       	mov    %eax,0x411da0
40874c:	74 15                	je     0x408763
40874e:	e8 f1 1b 00 00       	call   0x40a344
408753:	85 c0                	test   %eax,%eax
408755:	75 0f                	jne    0x408766
408757:	ff 35 a0 1d 41 00    	push   0x411da0
40875d:	ff 15 8c d0 40 00    	call   *0x40d08c
408763:	33 c0                	xor    %eax,%eax
408765:	c3                   	ret
408766:	6a 01                	push   $0x1
408768:	58                   	pop    %eax
408769:	c3                   	ret
40876a:	cc                   	int3
40876b:	cc                   	int3
40876c:	56                   	push   %esi
40876d:	43                   	inc    %ebx
40876e:	32 30                	xor    (%eax),%dh
408770:	58                   	pop    %eax
408771:	43                   	inc    %ebx
408772:	30 30                	xor    %dh,(%eax)
408774:	55                   	push   %ebp
408775:	8b ec                	mov    %esp,%ebp
408777:	83 ec 08             	sub    $0x8,%esp
40877a:	53                   	push   %ebx
40877b:	56                   	push   %esi
40877c:	57                   	push   %edi
40877d:	55                   	push   %ebp
40877e:	fc                   	cld
40877f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
408782:	8b 45 08             	mov    0x8(%ebp),%eax
408785:	f7 40 04 06 00 00 00 	testl  $0x6,0x4(%eax)
40878c:	0f 85 82 00 00 00    	jne    0x408814
408792:	89 45 f8             	mov    %eax,-0x8(%ebp)
408795:	8b 45 10             	mov    0x10(%ebp),%eax
408798:	89 45 fc             	mov    %eax,-0x4(%ebp)
40879b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40879e:	89 43 fc             	mov    %eax,-0x4(%ebx)
4087a1:	8b 73 0c             	mov    0xc(%ebx),%esi
4087a4:	8b 7b 08             	mov    0x8(%ebx),%edi
4087a7:	83 fe ff             	cmp    $0xffffffff,%esi
4087aa:	74 61                	je     0x40880d
4087ac:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
4087af:	83 7c 8f 04 00       	cmpl   $0x0,0x4(%edi,%ecx,4)
4087b4:	74 45                	je     0x4087fb
4087b6:	56                   	push   %esi
4087b7:	55                   	push   %ebp
4087b8:	8d 6b 10             	lea    0x10(%ebx),%ebp
4087bb:	ff 54 8f 04          	call   *0x4(%edi,%ecx,4)
4087bf:	5d                   	pop    %ebp
4087c0:	5e                   	pop    %esi
4087c1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4087c4:	0b c0                	or     %eax,%eax
4087c6:	74 33                	je     0x4087fb
4087c8:	78 3c                	js     0x408806
4087ca:	8b 7b 08             	mov    0x8(%ebx),%edi
4087cd:	53                   	push   %ebx
4087ce:	e8 7d d4 ff ff       	call   0x405c50
4087d3:	83 c4 04             	add    $0x4,%esp
4087d6:	8d 6b 10             	lea    0x10(%ebx),%ebp
4087d9:	56                   	push   %esi
4087da:	53                   	push   %ebx
4087db:	e8 b2 d4 ff ff       	call   0x405c92
4087e0:	83 c4 08             	add    $0x8,%esp
4087e3:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
4087e6:	6a 01                	push   $0x1
4087e8:	8b 44 8f 08          	mov    0x8(%edi,%ecx,4),%eax
4087ec:	e8 35 d5 ff ff       	call   0x405d26
4087f1:	8b 04 8f             	mov    (%edi,%ecx,4),%eax
4087f4:	89 43 0c             	mov    %eax,0xc(%ebx)
4087f7:	ff 54 8f 08          	call   *0x8(%edi,%ecx,4)
4087fb:	8b 7b 08             	mov    0x8(%ebx),%edi
4087fe:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
408801:	8b 34 8f             	mov    (%edi,%ecx,4),%esi
408804:	eb a1                	jmp    0x4087a7
408806:	b8 00 00 00 00       	mov    $0x0,%eax
40880b:	eb 1c                	jmp    0x408829
40880d:	b8 01 00 00 00       	mov    $0x1,%eax
408812:	eb 15                	jmp    0x408829
408814:	55                   	push   %ebp
408815:	8d 6b 10             	lea    0x10(%ebx),%ebp
408818:	6a ff                	push   $0xffffffff
40881a:	53                   	push   %ebx
40881b:	e8 72 d4 ff ff       	call   0x405c92
408820:	83 c4 08             	add    $0x8,%esp
408823:	5d                   	pop    %ebp
408824:	b8 01 00 00 00       	mov    $0x1,%eax
408829:	5d                   	pop    %ebp
40882a:	5f                   	pop    %edi
40882b:	5e                   	pop    %esi
40882c:	5b                   	pop    %ebx
40882d:	8b e5                	mov    %ebp,%esp
40882f:	5d                   	pop    %ebp
408830:	c3                   	ret
408831:	55                   	push   %ebp
408832:	8b 4c 24 08          	mov    0x8(%esp),%ecx
408836:	8b 29                	mov    (%ecx),%ebp
408838:	8b 41 1c             	mov    0x1c(%ecx),%eax
40883b:	50                   	push   %eax
40883c:	8b 41 18             	mov    0x18(%ecx),%eax
40883f:	50                   	push   %eax
408840:	e8 4d d4 ff ff       	call   0x405c92
408845:	83 c4 08             	add    $0x8,%esp
408848:	5d                   	pop    %ebp
408849:	c2 04 00             	ret    $0x4
40884c:	a1 ec 17 41 00       	mov    0x4117ec,%eax
408851:	83 f8 01             	cmp    $0x1,%eax
408854:	74 0d                	je     0x408863
408856:	85 c0                	test   %eax,%eax
408858:	75 2a                	jne    0x408884
40885a:	83 3d 64 05 41 00 01 	cmpl   $0x1,0x410564
408861:	75 21                	jne    0x408884
408863:	68 fc 00 00 00       	push   $0xfc
408868:	e8 18 00 00 00       	call   0x408885
40886d:	a1 d8 19 41 00       	mov    0x4119d8,%eax
408872:	59                   	pop    %ecx
408873:	85 c0                	test   %eax,%eax
408875:	74 02                	je     0x408879
408877:	ff d0                	call   *%eax
408879:	68 ff 00 00 00       	push   $0xff
40887e:	e8 02 00 00 00       	call   0x408885
408883:	59                   	pop    %ecx
408884:	c3                   	ret
408885:	55                   	push   %ebp
408886:	8b ec                	mov    %esp,%ebp
408888:	81 ec a4 01 00 00    	sub    $0x1a4,%esp
40888e:	8b 55 08             	mov    0x8(%ebp),%edx
408891:	33 c9                	xor    %ecx,%ecx
408893:	b8 38 0e 41 00       	mov    $0x410e38,%eax
408898:	3b 10                	cmp    (%eax),%edx
40889a:	74 0b                	je     0x4088a7
40889c:	83 c0 08             	add    $0x8,%eax
40889f:	41                   	inc    %ecx
4088a0:	3d c8 0e 41 00       	cmp    $0x410ec8,%eax
4088a5:	7c f1                	jl     0x408898
4088a7:	56                   	push   %esi
4088a8:	8b f1                	mov    %ecx,%esi
4088aa:	c1 e6 03             	shl    $0x3,%esi
4088ad:	3b 96 38 0e 41 00    	cmp    0x410e38(%esi),%edx
4088b3:	0f 85 1c 01 00 00    	jne    0x4089d5
4088b9:	a1 ec 17 41 00       	mov    0x4117ec,%eax
4088be:	83 f8 01             	cmp    $0x1,%eax
4088c1:	0f 84 e8 00 00 00    	je     0x4089af
4088c7:	85 c0                	test   %eax,%eax
4088c9:	75 0d                	jne    0x4088d8
4088cb:	83 3d 64 05 41 00 01 	cmpl   $0x1,0x410564
4088d2:	0f 84 d7 00 00 00    	je     0x4089af
4088d8:	81 fa fc 00 00 00    	cmp    $0xfc,%edx
4088de:	0f 84 f1 00 00 00    	je     0x4089d5
4088e4:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
4088ea:	68 04 01 00 00       	push   $0x104
4088ef:	50                   	push   %eax
4088f0:	6a 00                	push   $0x0
4088f2:	ff 15 0c d1 40 00    	call   *0x40d10c
4088f8:	85 c0                	test   %eax,%eax
4088fa:	75 13                	jne    0x40890f
4088fc:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
408902:	68 94 d7 40 00       	push   $0x40d794
408907:	50                   	push   %eax
408908:	e8 e3 18 00 00       	call   0x40a1f0
40890d:	59                   	pop    %ecx
40890e:	59                   	pop    %ecx
40890f:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
408915:	57                   	push   %edi
408916:	50                   	push   %eax
408917:	8d bd 5c fe ff ff    	lea    -0x1a4(%ebp),%edi
40891d:	e8 de e0 ff ff       	call   0x406a00
408922:	40                   	inc    %eax
408923:	59                   	pop    %ecx
408924:	83 f8 3c             	cmp    $0x3c,%eax
408927:	76 29                	jbe    0x408952
408929:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
40892f:	50                   	push   %eax
408930:	e8 cb e0 ff ff       	call   0x406a00
408935:	8b f8                	mov    %eax,%edi
408937:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
40893d:	83 e8 3b             	sub    $0x3b,%eax
408940:	6a 03                	push   $0x3
408942:	03 f8                	add    %eax,%edi
408944:	68 90 d7 40 00       	push   $0x40d790
408949:	57                   	push   %edi
40894a:	e8 41 25 00 00       	call   0x40ae90
40894f:	83 c4 10             	add    $0x10,%esp
408952:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
408958:	68 74 d7 40 00       	push   $0x40d774
40895d:	50                   	push   %eax
40895e:	e8 8d 18 00 00       	call   0x40a1f0
408963:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
408969:	57                   	push   %edi
40896a:	50                   	push   %eax
40896b:	e8 90 18 00 00       	call   0x40a200
408970:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
408976:	68 70 d7 40 00       	push   $0x40d770
40897b:	50                   	push   %eax
40897c:	e8 7f 18 00 00       	call   0x40a200
408981:	ff b6 3c 0e 41 00    	push   0x410e3c(%esi)
408987:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
40898d:	50                   	push   %eax
40898e:	e8 6d 18 00 00       	call   0x40a200
408993:	68 10 20 01 00       	push   $0x12010
408998:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
40899e:	68 48 d7 40 00       	push   $0x40d748
4089a3:	50                   	push   %eax
4089a4:	e8 4b 2d 00 00       	call   0x40b6f4
4089a9:	83 c4 2c             	add    $0x2c,%esp
4089ac:	5f                   	pop    %edi
4089ad:	eb 26                	jmp    0x4089d5
4089af:	8d 45 08             	lea    0x8(%ebp),%eax
4089b2:	8d b6 3c 0e 41 00    	lea    0x410e3c(%esi),%esi
4089b8:	6a 00                	push   $0x0
4089ba:	50                   	push   %eax
4089bb:	ff 36                	push   (%esi)
4089bd:	e8 3e e0 ff ff       	call   0x406a00
4089c2:	59                   	pop    %ecx
4089c3:	50                   	push   %eax
4089c4:	ff 36                	push   (%esi)
4089c6:	6a f4                	push   $0xfffffff4
4089c8:	ff 15 28 d1 40 00    	call   *0x40d128
4089ce:	50                   	push   %eax
4089cf:	ff 15 80 d0 40 00    	call   *0x40d080
4089d5:	5e                   	pop    %esi
4089d6:	c9                   	leave
4089d7:	c3                   	ret
4089d8:	cc                   	int3
4089d9:	cc                   	int3
4089da:	cc                   	int3
4089db:	cc                   	int3
4089dc:	cc                   	int3
4089dd:	cc                   	int3
4089de:	cc                   	int3
4089df:	cc                   	int3
4089e0:	8b 54 24 04          	mov    0x4(%esp),%edx
4089e4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4089e8:	f7 c2 03 00 00 00    	test   $0x3,%edx
4089ee:	75 3c                	jne    0x408a2c
4089f0:	8b 02                	mov    (%edx),%eax