40d62f:	68 f8 e5 41 00       	push   $0x41e5f8
40d634:	e8 77 d7 ff ff       	call   0x40adb0
40d639:	6a 0b                	push   $0xb
40d63b:	e8 67 ae ff ff       	call   0x4084a7
40d640:	59                   	pop    %ecx
40d641:	33 db                	xor    %ebx,%ebx
40d643:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d646:	39 1d 20 2a 42 00    	cmp    %ebx,0x422a20
40d64c:	74 1e                	je     0x40d66c
40d64e:	6a fe                	push   $0xfffffffe
40d650:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d653:	50                   	push   %eax
40d654:	68 90 08 42 00       	push   $0x420890
40d659:	e8 a2 41 00 00       	call   0x411800
40d65e:	83 c4 0c             	add    $0xc,%esp
40d661:	33 c0                	xor    %eax,%eax
40d663:	40                   	inc    %eax
40d664:	e8 8c d7 ff ff       	call   0x40adf5
40d669:	c2 0c 00             	ret    $0xc
40d66c:	6a 40                	push   $0x40
40d66e:	6a 20                	push   $0x20
40d670:	5f                   	pop    %edi
40d671:	57                   	push   %edi
40d672:	e8 e1 b3 ff ff       	call   0x408a58
40d677:	59                   	pop    %ecx
40d678:	59                   	pop    %ecx
40d679:	8b c8                	mov    %eax,%ecx
40d67b:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40d67e:	85 c9                	test   %ecx,%ecx
40d680:	75 17                	jne    0x40d699
40d682:	6a fe                	push   $0xfffffffe
40d684:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d687:	50                   	push   %eax
40d688:	68 90 08 42 00       	push   $0x420890
40d68d:	e8 6e 41 00 00       	call   0x411800
40d692:	83 c4 0c             	add    $0xc,%esp
40d695:	33 c0                	xor    %eax,%eax
40d697:	eb cb                	jmp    0x40d664
40d699:	a3 20 2a 42 00       	mov    %eax,0x422a20
40d69e:	89 3d 14 2a 42 00    	mov    %edi,0x422a14
40d6a4:	05 00 08 00 00       	add    $0x800,%eax
40d6a9:	3b c8                	cmp    %eax,%ecx
40d6ab:	73 31                	jae    0x40d6de
40d6ad:	66 c7 41 04 00 0a    	movw   $0xa00,0x4(%ecx)
40d6b3:	83 09 ff             	orl    $0xffffffff,(%ecx)
40d6b6:	89 59 08             	mov    %ebx,0x8(%ecx)
40d6b9:	80 61 24 80          	andb   $0x80,0x24(%ecx)
40d6bd:	8a 41 24             	mov    0x24(%ecx),%al
40d6c0:	24 7f                	and    $0x7f,%al
40d6c2:	88 41 24             	mov    %al,0x24(%ecx)
40d6c5:	66 c7 41 25 0a 0a    	movw   $0xa0a,0x25(%ecx)
40d6cb:	89 59 38             	mov    %ebx,0x38(%ecx)
40d6ce:	88 59 34             	mov    %bl,0x34(%ecx)
40d6d1:	83 c1 40             	add    $0x40,%ecx
40d6d4:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40d6d7:	a1 20 2a 42 00       	mov    0x422a20,%eax
40d6dc:	eb c6                	jmp    0x40d6a4
40d6de:	8d 45 8c             	lea    -0x74(%ebp),%eax
40d6e1:	50                   	push   %eax
40d6e2:	ff 15 d8 90 41 00    	call   *0x4190d8
40d6e8:	66 83 7d be 00       	cmpw   $0x0,-0x42(%ebp)
40d6ed:	0f 84 29 01 00 00    	je     0x40d81c
40d6f3:	8b 45 c0             	mov    -0x40(%ebp),%eax
40d6f6:	85 c0                	test   %eax,%eax
40d6f8:	0f 84 1e 01 00 00    	je     0x40d81c
40d6fe:	8b 08                	mov    (%eax),%ecx
40d700:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40d703:	83 c0 04             	add    $0x4,%eax
40d706:	89 45 d8             	mov    %eax,-0x28(%ebp)
40d709:	03 c1                	add    %ecx,%eax
40d70b:	89 45 e0             	mov    %eax,-0x20(%ebp)
40d70e:	b8 00 08 00 00       	mov    $0x800,%eax
40d713:	3b c8                	cmp    %eax,%ecx
40d715:	7c 05                	jl     0x40d71c
40d717:	8b c8                	mov    %eax,%ecx
40d719:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40d71c:	33 f6                	xor    %esi,%esi
40d71e:	46                   	inc    %esi
40d71f:	89 75 d0             	mov    %esi,-0x30(%ebp)
40d722:	39 0d 14 2a 42 00    	cmp    %ecx,0x422a14
40d728:	7d 20                	jge    0x40d74a
40d72a:	6a 40                	push   $0x40
40d72c:	57                   	push   %edi
40d72d:	e8 26 b3 ff ff       	call   0x408a58
40d732:	59                   	pop    %ecx
40d733:	59                   	pop    %ecx
40d734:	8b c8                	mov    %eax,%ecx
40d736:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40d739:	85 c9                	test   %ecx,%ecx
40d73b:	0f 85 8e 00 00 00    	jne    0x40d7cf
40d741:	8b 0d 14 2a 42 00    	mov    0x422a14,%ecx
40d747:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40d74a:	8b fb                	mov    %ebx,%edi
40d74c:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40d74f:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d752:	8b 55 e0             	mov    -0x20(%ebp),%edx
40d755:	3b f9                	cmp    %ecx,%edi
40d757:	0f 8d bf 00 00 00    	jge    0x40d81c
40d75d:	8b 32                	mov    (%edx),%esi
40d75f:	83 fe ff             	cmp    $0xffffffff,%esi
40d762:	74 58                	je     0x40d7bc
40d764:	83 fe fe             	cmp    $0xfffffffe,%esi
40d767:	74 53                	je     0x40d7bc
40d769:	8a 00                	mov    (%eax),%al
40d76b:	a8 01                	test   $0x1,%al
40d76d:	74 4d                	je     0x40d7bc
40d76f:	a8 08                	test   $0x8,%al
40d771:	75 0e                	jne    0x40d781
40d773:	56                   	push   %esi
40d774:	ff 15 d0 90 41 00    	call   *0x4190d0
40d77a:	8b 55 e0             	mov    -0x20(%ebp),%edx
40d77d:	85 c0                	test   %eax,%eax
40d77f:	74 38                	je     0x40d7b9
40d781:	8b c7                	mov    %edi,%eax
40d783:	c1 f8 05             	sar    $0x5,%eax
40d786:	8b f7                	mov    %edi,%esi
40d788:	83 e6 1f             	and    $0x1f,%esi
40d78b:	c1 e6 06             	shl    $0x6,%esi
40d78e:	03 34 85 20 2a 42 00 	add    0x422a20(,%eax,4),%esi
40d795:	89 75 dc             	mov    %esi,-0x24(%ebp)
40d798:	8b 02                	mov    (%edx),%eax
40d79a:	89 06                	mov    %eax,(%esi)
40d79c:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d79f:	8a 00                	mov    (%eax),%al
40d7a1:	88 46 04             	mov    %al,0x4(%esi)
40d7a4:	68 a0 0f 00 00       	push   $0xfa0
40d7a9:	8d 46 0c             	lea    0xc(%esi),%eax
40d7ac:	50                   	push   %eax
40d7ad:	ff 15 94 90 41 00    	call   *0x419094
40d7b3:	ff 46 08             	incl   0x8(%esi)
40d7b6:	8b 55 e0             	mov    -0x20(%ebp),%edx
40d7b9:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40d7bc:	47                   	inc    %edi
40d7bd:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40d7c0:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d7c3:	40                   	inc    %eax
40d7c4:	89 45 d8             	mov    %eax,-0x28(%ebp)
40d7c7:	83 c2 04             	add    $0x4,%edx
40d7ca:	89 55 e0             	mov    %edx,-0x20(%ebp)
40d7cd:	eb 86                	jmp    0x40d755
40d7cf:	89 0c b5 20 2a 42 00 	mov    %ecx,0x422a20(,%esi,4)
40d7d6:	01 3d 14 2a 42 00    	add    %edi,0x422a14
40d7dc:	8b 04 b5 20 2a 42 00 	mov    0x422a20(,%esi,4),%eax
40d7e3:	05 00 08 00 00       	add    $0x800,%eax
40d7e8:	3b c8                	cmp    %eax,%ecx
40d7ea:	73 24                	jae    0x40d810
40d7ec:	66 c7 41 04 00 0a    	movw   $0xa00,0x4(%ecx)
40d7f2:	83 09 ff             	orl    $0xffffffff,(%ecx)
40d7f5:	89 59 08             	mov    %ebx,0x8(%ecx)
40d7f8:	80 61 24 80          	andb   $0x80,0x24(%ecx)
40d7fc:	66 c7 41 25 0a 0a    	movw   $0xa0a,0x25(%ecx)
40d802:	89 59 38             	mov    %ebx,0x38(%ecx)
40d805:	88 59 34             	mov    %bl,0x34(%ecx)
40d808:	83 c1 40             	add    $0x40,%ecx
40d80b:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40d80e:	eb cc                	jmp    0x40d7dc
40d810:	46                   	inc    %esi
40d811:	89 75 d0             	mov    %esi,-0x30(%ebp)
40d814:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40d817:	e9 06 ff ff ff       	jmp    0x40d722
40d81c:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40d81f:	83 fb 03             	cmp    $0x3,%ebx
40d822:	0f 8d b8 00 00 00    	jge    0x40d8e0
40d828:	8b f3                	mov    %ebx,%esi
40d82a:	c1 e6 06             	shl    $0x6,%esi
40d82d:	03 35 20 2a 42 00    	add    0x422a20,%esi
40d833:	89 75 dc             	mov    %esi,-0x24(%ebp)
40d836:	83 3e ff             	cmpl   $0xffffffff,(%esi)
40d839:	74 13                	je     0x40d84e
40d83b:	83 3e fe             	cmpl   $0xfffffffe,(%esi)
40d83e:	74 0e                	je     0x40d84e
40d840:	0f be 46 04          	movsbl 0x4(%esi),%eax
40d844:	0c 80                	or     $0x80,%al
40d846:	88 46 04             	mov    %al,0x4(%esi)
40d849:	e9 8c 00 00 00       	jmp    0x40d8da
40d84e:	c6 46 04 81          	movb   $0x81,0x4(%esi)
40d852:	85 db                	test   %ebx,%ebx
40d854:	75 05                	jne    0x40d85b
40d856:	6a f6                	push   $0xfffffff6
40d858:	58                   	pop    %eax
40d859:	eb 0a                	jmp    0x40d865
40d85b:	8d 43 ff             	lea    -0x1(%ebx),%eax
40d85e:	f7 d8                	neg    %eax
40d860:	1b c0                	sbb    %eax,%eax
40d862:	83 c0 f5             	add    $0xfffffff5,%eax
40d865:	50                   	push   %eax
40d866:	ff 15 ac 90 41 00    	call   *0x4190ac
40d86c:	8b f8                	mov    %eax,%edi
40d86e:	83 ff ff             	cmp    $0xffffffff,%edi
40d871:	74 45                	je     0x40d8b8
40d873:	85 ff                	test   %edi,%edi
40d875:	74 41                	je     0x40d8b8
40d877:	57                   	push   %edi
40d878:	ff 15 d0 90 41 00    	call   *0x4190d0
40d87e:	85 c0                	test   %eax,%eax
40d880:	74 36                	je     0x40d8b8
40d882:	89 3e                	mov    %edi,(%esi)
40d884:	25 ff 00 00 00       	and    $0xff,%eax
40d889:	83 f8 02             	cmp    $0x2,%eax
40d88c:	75 08                	jne    0x40d896
40d88e:	0f be 46 04          	movsbl 0x4(%esi),%eax
40d892:	0c 40                	or     $0x40,%al
40d894:	eb 0b                	jmp    0x40d8a1
40d896:	83 f8 03             	cmp    $0x3,%eax
40d899:	75 09                	jne    0x40d8a4
40d89b:	0f be 46 04          	movsbl 0x4(%esi),%eax
40d89f:	0c 08                	or     $0x8,%al
40d8a1:	88 46 04             	mov    %al,0x4(%esi)
40d8a4:	68 a0 0f 00 00       	push   $0xfa0
40d8a9:	8d 46 0c             	lea    0xc(%esi),%eax
40d8ac:	50                   	push   %eax
40d8ad:	ff 15 94 90 41 00    	call   *0x419094
40d8b3:	ff 46 08             	incl   0x8(%esi)
40d8b6:	eb 22                	jmp    0x40d8da
40d8b8:	0f be 46 04          	movsbl 0x4(%esi),%eax
40d8bc:	0c 40                	or     $0x40,%al
40d8be:	88 46 04             	mov    %al,0x4(%esi)
40d8c1:	c7 06 fe ff ff ff    	movl   $0xfffffffe,(%esi)
40d8c7:	a1 34 2b 42 00       	mov    0x422b34,%eax
40d8cc:	85 c0                	test   %eax,%eax
40d8ce:	74 0a                	je     0x40d8da
40d8d0:	8b 04 98             	mov    (%eax,%ebx,4),%eax
40d8d3:	c7 40 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%eax)
40d8da:	43                   	inc    %ebx
40d8db:	e9 3c ff ff ff       	jmp    0x40d81c
40d8e0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40d8e7:	e8 05 00 00 00       	call   0x40d8f1
40d8ec:	e9 70 fd ff ff       	jmp    0x40d661
40d8f1:	6a 0b                	push   $0xb
40d8f3:	e8 13 ad ff ff       	call   0x40860b
40d8f8:	59                   	pop    %ecx
40d8f9:	c3                   	ret
40d8fa:	55                   	push   %ebp
40d8fb:	8b ec                	mov    %esp,%ebp
40d8fd:	51                   	push   %ecx
40d8fe:	51                   	push   %ecx
40d8ff:	83 3d 2c 2b 42 00 00 	cmpl   $0x0,0x422b2c
40d906:	75 05                	jne    0x40d90d
40d908:	e8 e0 e1 ff ff       	call   0x40baed
40d90d:	53                   	push   %ebx
40d90e:	56                   	push   %esi
40d90f:	57                   	push   %edi
40d910:	68 04 01 00 00       	push   $0x104
40d915:	bf 80 27 42 00       	mov    $0x422780,%edi
40d91a:	33 db                	xor    %ebx,%ebx
40d91c:	57                   	push   %edi
40d91d:	53                   	push   %ebx
40d91e:	88 1d 84 28 42 00    	mov    %bl,0x422884
40d924:	ff 15 dc 90 41 00    	call   *0x4190dc
40d92a:	8b 35 40 3b 42 00    	mov    0x423b40,%esi
40d930:	89 3d f0 20 42 00    	mov    %edi,0x4220f0
40d936:	85 f6                	test   %esi,%esi
40d938:	74 04                	je     0x40d93e
40d93a:	38 1e                	cmp    %bl,(%esi)
40d93c:	75 02                	jne    0x40d940
40d93e:	8b f7                	mov    %edi,%esi
40d940:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d943:	50                   	push   %eax
40d944:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d947:	50                   	push   %eax
40d948:	53                   	push   %ebx
40d949:	53                   	push   %ebx
40d94a:	56                   	push   %esi
40d94b:	e8 5b 00 00 00       	call   0x40d9ab
40d950:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d953:	83 c4 14             	add    $0x14,%esp
40d956:	81 fb ff ff ff 3f    	cmp    $0x3fffffff,%ebx
40d95c:	73 45                	jae    0x40d9a3
40d95e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40d961:	83 f9 ff             	cmp    $0xffffffff,%ecx
40d964:	73 3d                	jae    0x40d9a3
40d966:	8d 14 99             	lea    (%ecx,%ebx,4),%edx
40d969:	3b d1                	cmp    %ecx,%edx
40d96b:	72 36                	jb     0x40d9a3
40d96d:	52                   	push   %edx
40d96e:	e8 2f b1 ff ff       	call   0x408aa2
40d973:	8b f8                	mov    %eax,%edi
40d975:	59                   	pop    %ecx
40d976:	85 ff                	test   %edi,%edi
40d978:	74 29                	je     0x40d9a3
40d97a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d97d:	50                   	push   %eax
40d97e:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d981:	50                   	push   %eax
40d982:	8d 04 9f             	lea    (%edi,%ebx,4),%eax
40d985:	50                   	push   %eax
40d986:	57                   	push   %edi
40d987:	56                   	push   %esi
40d988:	e8 1e 00 00 00       	call   0x40d9ab
40d98d:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d990:	83 c4 14             	add    $0x14,%esp
40d993:	48                   	dec    %eax
40d994:	a3 dc 20 42 00       	mov    %eax,0x4220dc
40d999:	89 3d e0 20 42 00    	mov    %edi,0x4220e0
40d99f:	33 c0                	xor    %eax,%eax
40d9a1:	eb 03                	jmp    0x40d9a6
40d9a3:	83 c8 ff             	or     $0xffffffff,%eax
40d9a6:	5f                   	pop    %edi
40d9a7:	5e                   	pop    %esi
40d9a8:	5b                   	pop    %ebx
40d9a9:	c9                   	leave
40d9aa:	c3                   	ret
40d9ab:	55                   	push   %ebp
40d9ac:	8b ec                	mov    %esp,%ebp
40d9ae:	8b 45 14             	mov    0x14(%ebp),%eax
40d9b1:	53                   	push   %ebx
40d9b2:	8b 5d 18             	mov    0x18(%ebp),%ebx
40d9b5:	56                   	push   %esi
40d9b6:	83 23 00             	andl   $0x0,(%ebx)
40d9b9:	8b 75 08             	mov    0x8(%ebp),%esi
40d9bc:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40d9c2:	8b 45 0c             	mov    0xc(%ebp),%eax
40d9c5:	57                   	push   %edi
40d9c6:	8b 7d 10             	mov    0x10(%ebp),%edi
40d9c9:	85 c0                	test   %eax,%eax
40d9cb:	74 08                	je     0x40d9d5
40d9cd:	89 38                	mov    %edi,(%eax)
40d9cf:	83 c0 04             	add    $0x4,%eax
40d9d2:	89 45 0c             	mov    %eax,0xc(%ebp)
40d9d5:	33 c9                	xor    %ecx,%ecx
40d9d7:	89 4d 08             	mov    %ecx,0x8(%ebp)
40d9da:	80 3e 22             	cmpb   $0x22,(%esi)
40d9dd:	75 11                	jne    0x40d9f0
40d9df:	33 c0                	xor    %eax,%eax
40d9e1:	85 c9                	test   %ecx,%ecx
40d9e3:	0f 94 c0             	sete   %al
40d9e6:	46                   	inc    %esi
40d9e7:	8b c8                	mov    %eax,%ecx
40d9e9:	89 4d 08             	mov    %ecx,0x8(%ebp)
40d9ec:	b0 22                	mov    $0x22,%al
40d9ee:	eb 35                	jmp    0x40da25
40d9f0:	ff 03                	incl   (%ebx)
40d9f2:	85 ff                	test   %edi,%edi
40d9f4:	74 05                	je     0x40d9fb
40d9f6:	8a 06                	mov    (%esi),%al
40d9f8:	88 07                	mov    %al,(%edi)
40d9fa:	47                   	inc    %edi
40d9fb:	8a 06                	mov    (%esi),%al
40d9fd:	88 45 1b             	mov    %al,0x1b(%ebp)
40da00:	0f b6 c0             	movzbl %al,%eax
40da03:	50                   	push   %eax
40da04:	46                   	inc    %esi
40da05:	e8 1d a8 ff ff       	call   0x408227
40da0a:	59                   	pop    %ecx
40da0b:	85 c0                	test   %eax,%eax
40da0d:	74 0c                	je     0x40da1b
40da0f:	ff 03                	incl   (%ebx)
40da11:	85 ff                	test   %edi,%edi
40da13:	74 05                	je     0x40da1a
40da15:	8a 06                	mov    (%esi),%al