40a6f4:	e8 57 02 00 00       	call   0x40a950
40a6f9:	89 d8                	mov    %ebx,%eax
40a6fb:	e8 30 02 00 00       	call   0x40a930
40a700:	50                   	push   %eax
40a701:	89 c3                	mov    %eax,%ebx
40a703:	e8 50 a2 ff ff       	call   0x404958
40a708:	53                   	push   %ebx
40a709:	e8 92 a2 ff ff       	call   0x4049a0
40a70e:	5b                   	pop    %ebx
40a70f:	c3                   	ret
40a710:	8b 4b 18             	mov    0x18(%ebx),%ecx
40a713:	e3 f9                	jecxz  0x40a70e
40a715:	8b 5b 1c             	mov    0x1c(%ebx),%ebx
40a718:	8b 81 a0 00 00 00    	mov    0xa0(%ecx),%eax
40a71e:	e8 41 fd ff ff       	call   0x40a464
40a723:	50                   	push   %eax
40a724:	eb e2                	jmp    0x40a708
40a726:	c3                   	ret
40a727:	90                   	nop
40a728:	8b 48 2d             	mov    0x2d(%eax),%ecx
40a72b:	e3 30                	jecxz  0x40a75d
40a72d:	53                   	push   %ebx
40a72e:	89 c3                	mov    %eax,%ebx
40a730:	8a 51 3b             	mov    0x3b(%ecx),%dl
40a733:	0f b6 d2             	movzbl %dl,%edx
40a736:	42                   	inc    %edx
40a737:	52                   	push   %edx
40a738:	89 c8                	mov    %ecx,%eax
40a73a:	e8 91 fe ff ff       	call   0x40a5d0
40a73f:	50                   	push   %eax
40a740:	89 d8                	mov    %ebx,%eax
40a742:	e8 09 02 00 00       	call   0x40a950
40a747:	89 d8                	mov    %ebx,%eax
40a749:	e8 e2 01 00 00       	call   0x40a930
40a74e:	50                   	push   %eax
40a74f:	89 c3                	mov    %eax,%ebx
40a751:	e8 02 a2 ff ff       	call   0x404958
40a756:	53                   	push   %ebx
40a757:	e8 2c a2 ff ff       	call   0x404988
40a75c:	5b                   	pop    %ebx
40a75d:	c3                   	ret
40a75e:	8b c0                	mov    %eax,%eax
40a760:	53                   	push   %ebx
40a761:	56                   	push   %esi
40a762:	57                   	push   %edi
40a763:	8d 58 28             	lea    0x28(%eax),%ebx
40a766:	8b 40 1c             	mov    0x1c(%eax),%eax
40a769:	85 c0                	test   %eax,%eax
40a76b:	74 46                	je     0x40a7b3
40a76d:	0f b6 13             	movzbl (%ebx),%edx
40a770:	80 e2 0e             	and    $0xe,%dl
40a773:	74 3e                	je     0x40a7b3
40a775:	50                   	push   %eax
40a776:	8d 3d fc 98 42 00    	lea    0x4298fc,%edi
40a77c:	8b 0f                	mov    (%edi),%ecx
40a77e:	41                   	inc    %ecx
40a77f:	e2 14                	loop   0x40a795
40a781:	be 28 49 40 00       	mov    $0x404928,%esi
40a786:	6a 07                	push   $0x7
40a788:	ff d6                	call   *%esi
40a78a:	ab                   	stos   %eax,%es:(%edi)
40a78b:	6a 05                	push   $0x5
40a78d:	ff d6                	call   *%esi
40a78f:	ab                   	stos   %eax,%es:(%edi)
40a790:	6a 0d                	push   $0xd
40a792:	ff d6                	call   *%esi
40a794:	ab                   	stos   %eax,%es:(%edi)
40a795:	8d 35 fc 98 42 00    	lea    0x4298fc,%esi
40a79b:	5a                   	pop    %edx
40a79c:	ad                   	lods   %ds:(%esi),%eax
40a79d:	50                   	push   %eax
40a79e:	52                   	push   %edx
40a79f:	ad                   	lods   %ds:(%esi),%eax
40a7a0:	50                   	push   %eax
40a7a1:	52                   	push   %edx
40a7a2:	ad                   	lods   %ds:(%esi),%eax
40a7a3:	50                   	push   %eax
40a7a4:	52                   	push   %edx
40a7a5:	be 58 49 40 00       	mov    $0x404958,%esi
40a7aa:	ff d6                	call   *%esi
40a7ac:	ff d6                	call   *%esi
40a7ae:	ff d6                	call   *%esi
40a7b0:	80 23 f1             	andb   $0xf1,(%ebx)
40a7b3:	5f                   	pop    %edi
40a7b4:	5e                   	pop    %esi
40a7b5:	5b                   	pop    %ebx
40a7b6:	c3                   	ret
40a7b7:	90                   	nop
40a7b8:	55                   	push   %ebp
40a7b9:	8b ec                	mov    %esp,%ebp
40a7bb:	53                   	push   %ebx
40a7bc:	56                   	push   %esi
40a7bd:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40a7c0:	8b 75 08             	mov    0x8(%ebp),%esi
40a7c3:	89 f0                	mov    %esi,%eax
40a7c5:	f6 c3 10             	test   $0x10,%bl
40a7c8:	74 05                	je     0x40a7cf
40a7ca:	e8 d5 00 00 00       	call   0x40a8a4
40a7cf:	80 e3 0f             	and    $0xf,%bl
40a7d2:	f6 c3 01             	test   $0x1,%bl
40a7d5:	74 09                	je     0x40a7e0
40a7d7:	e8 54 01 00 00       	call   0x40a930
40a7dc:	85 c0                	test   %eax,%eax
40a7de:	74 42                	je     0x40a822
40a7e0:	8a 46 28             	mov    0x28(%esi),%al
40a7e3:	f7 d0                	not    %eax
40a7e5:	20 c3                	and    %al,%bl
40a7e7:	74 36                	je     0x40a81f
40a7e9:	f6 c3 08             	test   $0x8,%bl
40a7ec:	74 07                	je     0x40a7f5
40a7ee:	89 f0                	mov    %esi,%eax
40a7f0:	e8 e3 fe ff ff       	call   0x40a6d8
40a7f5:	f6 c3 02             	test   $0x2,%bl
40a7f8:	74 16                	je     0x40a810
40a7fa:	89 f0                	mov    %esi,%eax
40a7fc:	e8 27 ff ff ff       	call   0x40a728
40a801:	8b 4e 2d             	mov    0x2d(%esi),%ecx
40a804:	67 e3 09             	jcxz   0x40a810
40a807:	8a 41 36             	mov    0x36(%ecx),%al
40a80a:	fe c8                	dec    %al
40a80c:	2c 03                	sub    $0x3,%al
40a80e:	72 05                	jb     0x40a815
40a810:	f6 c3 04             	test   $0x4,%bl
40a813:	74 07                	je     0x40a81c
40a815:	89 f0                	mov    %esi,%eax
40a817:	e8 54 fe ff ff       	call   0x40a670
40a81c:	08 5e 28             	or     %bl,0x28(%esi)
40a81f:	8b 46 1c             	mov    0x1c(%esi),%eax
40a822:	5e                   	pop    %esi
40a823:	5b                   	pop    %ebx
40a824:	5d                   	pop    %ebp
40a825:	c2 08 00             	ret    $0x8
40a828:	53                   	push   %ebx
40a829:	56                   	push   %esi
40a82a:	89 d6                	mov    %edx,%esi
40a82c:	89 c3                	mov    %eax,%ebx
40a82e:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
40a831:	39 f1                	cmp    %esi,%ecx
40a833:	74 58                	je     0x40a88d
40a835:	e3 41                	jecxz  0x40a878
40a837:	51                   	push   %ecx
40a838:	e8 23 ff ff ff       	call   0x40a760
40a83d:	5a                   	pop    %edx
40a83e:	8b 4b 18             	mov    0x18(%ebx),%ecx
40a841:	e3 08                	jecxz  0x40a84b
40a843:	39 91 98 00 00 00    	cmp    %edx,0x98(%ecx)
40a849:	74 21                	je     0x40a86c
40a84b:	81 7b 41 88 c3 40 00 	cmpl   $0x40c388,0x41(%ebx)
40a852:	75 0b                	jne    0x40a85f
40a854:	52                   	push   %edx
40a855:	ff 71 1c             	push   0x1c(%ecx)
40a858:	e8 9b a2 ff ff       	call   0x404af8
40a85d:	eb 0d                	jmp    0x40a86c
40a85f:	66 83 7b 49 00       	cmpw   $0x0,0x49(%ebx)
40a864:	75 06                	jne    0x40a86c
40a866:	52                   	push   %edx
40a867:	e8 8c a0 ff ff       	call   0x4048f8
40a86c:	31 c9                	xor    %ecx,%ecx
40a86e:	89 4b 1c             	mov    %ecx,0x1c(%ebx)
40a871:	88 4b 49             	mov    %cl,0x49(%ebx)
40a874:	80 63 28 fe          	andb   $0xfe,0x28(%ebx)
40a878:	85 f6                	test   %esi,%esi
40a87a:	74 11                	je     0x40a88d
40a87c:	80 4b 28 01          	orb    $0x1,0x28(%ebx)
40a880:	89 73 1c             	mov    %esi,0x1c(%ebx)
40a883:	8d 53 20             	lea    0x20(%ebx),%edx
40a886:	89 d8                	mov    %ebx,%eax
40a888:	e8 03 00 00 00       	call   0x40a890
40a88d:	5e                   	pop    %esi
40a88e:	5b                   	pop    %ebx
40a88f:	c3                   	ret
40a890:	8b 4a 04             	mov    0x4(%edx),%ecx
40a893:	8b 12                	mov    (%edx),%edx
40a895:	89 50 20             	mov    %edx,0x20(%eax)
40a898:	89 48 24             	mov    %ecx,0x24(%eax)
40a89b:	e8 14 00 00 00       	call   0x40a8b4
40a8a0:	c3                   	ret
40a8a1:	8d 40 00             	lea    0x0(%eax),%eax
40a8a4:	60                   	pusha
40a8a5:	8b 48 39             	mov    0x39(%eax),%ecx
40a8a8:	e3 06                	jecxz  0x40a8b0
40a8aa:	92                   	xchg   %eax,%edx
40a8ab:	8b 42 3d             	mov    0x3d(%edx),%eax
40a8ae:	ff d1                	call   *%ecx
40a8b0:	61                   	popa
40a8b1:	c3                   	ret
40a8b2:	8b c0                	mov    %eax,%eax
40a8b4:	6a 00                	push   $0x0
40a8b6:	51                   	push   %ecx
40a8b7:	52                   	push   %edx
40a8b8:	6a 01                	push   $0x1
40a8ba:	50                   	push   %eax
40a8bb:	e8 f8 fe ff ff       	call   0x40a7b8
40a8c0:	50                   	push   %eax
40a8c1:	e8 72 a0 ff ff       	call   0x404938
40a8c6:	c3                   	ret
40a8c7:	90                   	nop
40a8c8:	55                   	push   %ebp
40a8c9:	8b ec                	mov    %esp,%ebp
40a8cb:	53                   	push   %ebx
40a8cc:	89 c3                	mov    %eax,%ebx
40a8ce:	51                   	push   %ecx
40a8cf:	e8 a0 2c 00 00       	call   0x40d574
40a8d4:	5a                   	pop    %edx
40a8d5:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a8d8:	31 c0                	xor    %eax,%eax
40a8da:	89 01                	mov    %eax,(%ecx)
40a8dc:	89 41 04             	mov    %eax,0x4(%ecx)
40a8df:	39 05 14 61 42 00    	cmp    %eax,0x426114
40a8e5:	74 08                	je     0x40a8ef
40a8e7:	89 d8                	mov    %ebx,%eax
40a8e9:	ff 15 14 61 42 00    	call   *0x426114
40a8ef:	5b                   	pop    %ebx
40a8f0:	5d                   	pop    %ebp
40a8f1:	c2 04 00             	ret    $0x4
40a8f4:	8b 48 29             	mov    0x29(%eax),%ecx
40a8f7:	41                   	inc    %ecx
40a8f8:	e2 34                	loop   0x40a92e
40a8fa:	50                   	push   %eax
40a8fb:	e8 f8 fa ff ff       	call   0x40a3f8
40a900:	5a                   	pop    %edx
40a901:	50                   	push   %eax
40a902:	89 42 29             	mov    %eax,0x29(%edx)
40a905:	c7 40 25 b4 54 40 00 	movl   $0x4054b4,0x25(%eax)
40a90c:	89 50 29             	mov    %edx,0x29(%eax)
40a90f:	8b 4a 18             	mov    0x18(%edx),%ecx
40a912:	e3 19                	jecxz  0x40a92d
40a914:	ff b1 ac 00 00 00    	push   0xac(%ecx)
40a91a:	8b 89 a4 00 00 00    	mov    0xa4(%ecx),%ecx
40a920:	89 48 2d             	mov    %ecx,0x2d(%eax)
40a923:	5a                   	pop    %edx
40a924:	85 d2                	test   %edx,%edx
40a926:	74 05                	je     0x40a92d
40a928:	e8 77 fb ff ff       	call   0x40a4a4
40a92d:	59                   	pop    %ecx
40a92e:	91                   	xchg   %eax,%ecx
40a92f:	c3                   	ret
40a930:	66 83 78 43 00       	cmpw   $0x0,0x43(%eax)
40a935:	89 c2                	mov    %eax,%edx
40a937:	8b 42 1c             	mov    0x1c(%edx),%eax
40a93a:	74 12                	je     0x40a94e
40a93c:	8b 42 45             	mov    0x45(%edx),%eax
40a93f:	52                   	push   %edx
40a940:	ff 52 41             	call   *0x41(%edx)
40a943:	87 04 24             	xchg   %eax,(%esp)
40a946:	5a                   	pop    %edx
40a947:	52                   	push   %edx
40a948:	e8 db fe ff ff       	call   0x40a828
40a94d:	58                   	pop    %eax
40a94e:	c3                   	ret
40a94f:	90                   	nop
40a950:	56                   	push   %esi
40a951:	8d 70 29             	lea    0x29(%eax),%esi
40a954:	b1 03                	mov    $0x3,%cl
40a956:	89 c2                	mov    %eax,%edx
40a958:	ad                   	lods   %ds:(%esi),%eax
40a959:	85 c0                	test   %eax,%eax
40a95b:	74 0a                	je     0x40a967
40a95d:	89 50 29             	mov    %edx,0x29(%eax)
40a960:	c7 40 25 b4 54 40 00 	movl   $0x4054b4,0x25(%eax)
40a967:	fe c9                	dec    %cl
40a969:	75 ed                	jne    0x40a958
40a96b:	5e                   	pop    %esi
40a96c:	c3                   	ret
40a96d:	8d 40 00             	lea    0x0(%eax),%eax
40a970:	85 d2                	test   %edx,%edx
40a972:	9c                   	pushf
40a973:	7d 02                	jge    0x40a977
40a975:	f7 da                	neg    %edx
40a977:	51                   	push   %ecx
40a978:	e8 73 ab ff ff       	call   0x4054f0
40a97d:	58                   	pop    %eax
40a97e:	9d                   	popf
40a97f:	7d 07                	jge    0x40a988
40a981:	89 c2                	mov    %eax,%edx
40a983:	e8 54 ab ff ff       	call   0x4054dc
40a988:	c3                   	ret
40a989:	8d 40 00             	lea    0x0(%eax),%eax
40a98c:	56                   	push   %esi
40a98d:	92                   	xchg   %eax,%edx
40a98e:	50                   	push   %eax
40a98f:	e8 54 8d ff ff       	call   0x4036e8
40a994:	58                   	pop    %eax
40a995:	e8 aa 91 ff ff       	call   0x403b44
40a99a:	50                   	push   %eax
40a99b:	e8 54 8f ff ff       	call   0x4038f4
40a9a0:	5e                   	pop    %esi
40a9a1:	91                   	xchg   %eax,%ecx
40a9a2:	e3 0d                	jecxz  0x40a9b1
40a9a4:	ac                   	lods   %ds:(%esi),%al
40a9a5:	2c 41                	sub    $0x41,%al
40a9a7:	3c 1a                	cmp    $0x1a,%al
40a9a9:	73 04                	jae    0x40a9af
40a9ab:	80 46 ff 20          	addb   $0x20,-0x1(%esi)
40a9af:	e2 f3                	loop   0x40a9a4
40a9b1:	5e                   	pop    %esi
40a9b2:	c3                   	ret
40a9b3:	90                   	nop
40a9b4:	56                   	push   %esi
40a9b5:	92                   	xchg   %eax,%edx
40a9b6:	50                   	push   %eax
40a9b7:	e8 2c 8d ff ff       	call   0x4036e8
40a9bc:	58                   	pop    %eax
40a9bd:	e8 82 91 ff ff       	call   0x403b44
40a9c2:	50                   	push   %eax
40a9c3:	e8 2c 8f ff ff       	call   0x4038f4
40a9c8:	5e                   	pop    %esi
40a9c9:	91                   	xchg   %eax,%ecx
40a9ca:	e3 0d                	jecxz  0x40a9d9
40a9cc:	ac                   	lods   %ds:(%esi),%al
40a9cd:	2c 61                	sub    $0x61,%al
40a9cf:	3c 1a                	cmp    $0x1a,%al
40a9d1:	73 04                	jae    0x40a9d7
40a9d3:	80 6e ff 20          	subb   $0x20,-0x1(%esi)
40a9d7:	e2 f3                	loop   0x40a9cc
40a9d9:	5e                   	pop    %esi
40a9da:	c3                   	ret
40a9db:	90                   	nop
40a9dc:	85 c0                	test   %eax,%eax
40a9de:	74 0e                	je     0x40a9ee
40a9e0:	50                   	push   %eax
40a9e1:	e8 4a 7e ff ff       	call   0x402830
40a9e6:	5a                   	pop    %edx
40a9e7:	50                   	push   %eax
40a9e8:	e8 7f a1 ff ff       	call   0x404b6c
40a9ed:	58                   	pop    %eax
40a9ee:	c3                   	ret
40a9ef:	90                   	nop
40a9f0:	50                   	push   %eax
40a9f1:	89 d0                	mov    %edx,%eax
40a9f3:	e8 fc 8e ff ff       	call   0x4038f4
40a9f8:	89 c1                	mov    %eax,%ecx
40a9fa:	58                   	pop    %eax
40a9fb:	e8 38 a6 ff ff       	call   0x405038
40aa00:	e8 5b ae ff ff       	call   0x405860
40aa05:	c3                   	ret
40aa06:	8b c0                	mov    %eax,%eax
40aa08:	31 c9                	xor    %ecx,%ecx
40aa0a:	51                   	push   %ecx
40aa0b:	89 d1                	mov    %edx,%ecx
40aa0d:	c1 e9 10             	shr    $0x10,%ecx
40aa10:	66 81 e1 ff 1f       	and    $0x1fff,%cx
40aa15:	75 02                	jne    0x40aa19
40aa17:	b1 80                	mov    $0x80,%cl
40aa19:	51                   	push   %ecx
40aa1a:	88 f1                	mov    %dh,%cl
40aa1c:	51                   	push   %ecx
40aa1d:	6a 00                	push   $0x0
40aa1f:	88 d1                	mov    %dl,%cl
40aa21:	51                   	push   %ecx