40d769:	0f b6 45 ca          	movzbl -0x36(%ebp),%eax
40d76d:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40d770:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40d773:	3b c3                	cmp    %ebx,%eax
40d775:	8b f0                	mov    %eax,%esi
40d777:	7d 04                	jge    0x40d77d
40d779:	f7 d8                	neg    %eax
40d77b:	8b f0                	mov    %eax,%esi
40d77d:	ff 77 1c             	push   0x1c(%edi)
40d780:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
40d786:	e8 10 1d 04 00       	call   0x44f49b
40d78b:	6a 5a                	push   $0x5a
40d78d:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
40d793:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40d797:	ff 15 48 00 4b 00    	call   *0x4b0048
40d79d:	8b c8                	mov    %eax,%ecx
40d79f:	8b c6                	mov    %esi,%eax
40d7a1:	69 c0 80 fc 0a 00    	imul   $0xafc80,%eax,%eax
40d7a7:	99                   	cltd
40d7a8:	f7 f9                	idiv   %ecx
40d7aa:	8d 77 60             	lea    0x60(%edi),%esi
40d7ad:	56                   	push   %esi
40d7ae:	89 5d 94             	mov    %ebx,-0x6c(%ebp)
40d7b1:	89 45 90             	mov    %eax,-0x70(%ebp)
40d7b4:	e8 6a 67 06 00       	call   0x473f23
40d7b9:	56                   	push   %esi
40d7ba:	68 bc 63 49 00       	push   $0x4963bc
40d7bf:	8d 45 88             	lea    -0x78(%ebp),%eax
40d7c2:	50                   	push   %eax
40d7c3:	ff 15 74 04 4b 00    	call   *0x4b0474
40d7c9:	85 c0                	test   %eax,%eax
40d7cb:	7d 02                	jge    0x40d7cf
40d7cd:	89 1e                	mov    %ebx,(%esi)
40d7cf:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
40d7d5:	88 5d fc             	mov    %bl,-0x4(%ebp)
40d7d8:	e8 19 1d 04 00       	call   0x44f4f6
40d7dd:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40d7e1:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40d7e4:	c7 45 ac 70 b6 48 00 	movl   $0x48b670,-0x54(%ebp)
40d7eb:	e8 cb 1e 04 00       	call   0x44f6bb
40d7f0:	8d a5 68 ff ff ff    	lea    -0x98(%ebp),%esp
40d7f6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d7f9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d800:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40d803:	e8 d6 a3 00 00       	call   0x417bde
40d808:	5f                   	pop    %edi
40d809:	5e                   	pop    %esi
40d80a:	5b                   	pop    %ebx
40d80b:	c9                   	leave
40d80c:	c2 04 00             	ret    $0x4
40d80f:	55                   	push   %ebp
40d810:	8b ec                	mov    %esp,%ebp
40d812:	51                   	push   %ecx
40d813:	8b 41 40             	mov    0x40(%ecx),%eax
40d816:	85 c0                	test   %eax,%eax
40d818:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d81b:	74 29                	je     0x40d846
40d81d:	56                   	push   %esi
40d81e:	8d 71 3c             	lea    0x3c(%ecx),%esi
40d821:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d824:	50                   	push   %eax
40d825:	8b ce                	mov    %esi,%ecx
40d827:	e8 36 9c ff ff       	call   0x407462
40d82c:	8b 00                	mov    (%eax),%eax
40d82e:	8b 40 04             	mov    0x4(%eax),%eax
40d831:	85 c0                	test   %eax,%eax
40d833:	74 0a                	je     0x40d83f
40d835:	ff 75 08             	push   0x8(%ebp)
40d838:	8b c8                	mov    %eax,%ecx
40d83a:	e8 6a 13 00 00       	call   0x40eba9
40d83f:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d843:	75 dc                	jne    0x40d821
40d845:	5e                   	pop    %esi
40d846:	c9                   	leave
40d847:	c2 04 00             	ret    $0x4
40d84a:	55                   	push   %ebp
40d84b:	8b ec                	mov    %esp,%ebp
40d84d:	51                   	push   %ecx
40d84e:	8b 41 40             	mov    0x40(%ecx),%eax
40d851:	85 c0                	test   %eax,%eax
40d853:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d856:	74 42                	je     0x40d89a
40d858:	56                   	push   %esi
40d859:	57                   	push   %edi
40d85a:	8d 79 3c             	lea    0x3c(%ecx),%edi
40d85d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d860:	50                   	push   %eax
40d861:	8b cf                	mov    %edi,%ecx
40d863:	e8 fa 9b ff ff       	call   0x407462
40d868:	8b 30                	mov    (%eax),%esi
40d86a:	8b 46 04             	mov    0x4(%esi),%eax
40d86d:	85 c0                	test   %eax,%eax
40d86f:	74 21                	je     0x40d892
40d871:	ff 75 0c             	push   0xc(%ebp)
40d874:	83 c0 2c             	add    $0x2c,%eax
40d877:	ff 75 08             	push   0x8(%ebp)
40d87a:	50                   	push   %eax
40d87b:	ff 15 30 07 4b 00    	call   *0x4b0730
40d881:	8b 46 04             	mov    0x4(%esi),%eax
40d884:	8b 48 50             	mov    0x50(%eax),%ecx
40d887:	8b 11                	mov    (%ecx),%edx
40d889:	83 c0 2c             	add    $0x2c,%eax
40d88c:	50                   	push   %eax
40d88d:	50                   	push   %eax
40d88e:	51                   	push   %ecx
40d88f:	ff 52 1c             	call   *0x1c(%edx)
40d892:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d896:	75 c5                	jne    0x40d85d
40d898:	5f                   	pop    %edi
40d899:	5e                   	pop    %esi
40d89a:	c9                   	leave
40d89b:	c2 08 00             	ret    $0x8
40d89e:	ff 74 24 04          	push   0x4(%esp)
40d8a2:	8b 01                	mov    (%ecx),%eax
40d8a4:	ff 50 74             	call   *0x74(%eax)
40d8a7:	33 c9                	xor    %ecx,%ecx
40d8a9:	3b c1                	cmp    %ecx,%eax
40d8ab:	74 2d                	je     0x40d8da
40d8ad:	39 48 4c             	cmp    %ecx,0x4c(%eax)
40d8b0:	75 15                	jne    0x40d8c7
40d8b2:	51                   	push   %ecx
40d8b3:	ff 74 24 0c          	push   0xc(%esp)
40d8b7:	68 f1 00 00 00       	push   $0xf1
40d8bc:	ff 70 1c             	push   0x1c(%eax)
40d8bf:	ff 15 98 08 4b 00    	call   *0x4b0898
40d8c5:	eb 13                	jmp    0x40d8da
40d8c7:	ff 74 24 08          	push   0x8(%esp)
40d8cb:	8b 40 4c             	mov    0x4c(%eax),%eax
40d8ce:	8b 10                	mov    (%eax),%edx
40d8d0:	6a 03                	push   $0x3
40d8d2:	51                   	push   %ecx
40d8d3:	50                   	push   %eax
40d8d4:	ff 52 74             	call   *0x74(%edx)
40d8d7:	83 c4 10             	add    $0x10,%esp
40d8da:	c2 08 00             	ret    $0x8
40d8dd:	56                   	push   %esi
40d8de:	8b f1                	mov    %ecx,%esi
40d8e0:	8b 46 1c             	mov    0x1c(%esi),%eax
40d8e3:	85 c0                	test   %eax,%eax
40d8e5:	57                   	push   %edi
40d8e6:	74 03                	je     0x40d8eb
40d8e8:	8b 40 1c             	mov    0x1c(%eax),%eax
40d8eb:	ff 74 24 0c          	push   0xc(%esp)
40d8ef:	50                   	push   %eax
40d8f0:	ff 15 50 08 4b 00    	call   *0x4b0850
40d8f6:	8b f8                	mov    %eax,%edi
40d8f8:	85 ff                	test   %edi,%edi
40d8fa:	75 12                	jne    0x40d90e
40d8fc:	ff 74 24 0c          	push   0xc(%esp)
40d900:	8b 06                	mov    (%esi),%eax
40d902:	8b ce                	mov    %esi,%ecx
40d904:	ff 50 54             	call   *0x54(%eax)
40d907:	85 c0                	test   %eax,%eax
40d909:	74 03                	je     0x40d90e
40d90b:	8b 78 20             	mov    0x20(%eax),%edi
40d90e:	8b 44 24 10          	mov    0x10(%esp),%eax
40d912:	89 38                	mov    %edi,(%eax)
40d914:	5f                   	pop    %edi
40d915:	5e                   	pop    %esi
40d916:	c2 08 00             	ret    $0x8
40d919:	ff 74 24 04          	push   0x4(%esp)
40d91d:	8b 01                	mov    (%ecx),%eax
40d91f:	ff 50 74             	call   *0x74(%eax)
40d922:	85 c0                	test   %eax,%eax
40d924:	74 15                	je     0x40d93b
40d926:	ff 74 24 10          	push   0x10(%esp)
40d92a:	ff 74 24 10          	push   0x10(%esp)
40d92e:	ff 74 24 10          	push   0x10(%esp)
40d932:	ff 70 1c             	push   0x1c(%eax)
40d935:	ff 15 98 08 4b 00    	call   *0x4b0898
40d93b:	c2 10 00             	ret    $0x10
40d93e:	b8 aa 35 48 00       	mov    $0x4835aa,%eax
40d943:	e8 34 a3 00 00       	call   0x417c7c
40d948:	51                   	push   %ecx
40d949:	51                   	push   %ecx
40d94a:	8b 01                	mov    (%ecx),%eax
40d94c:	53                   	push   %ebx
40d94d:	56                   	push   %esi
40d94e:	57                   	push   %edi
40d94f:	89 65 f0             	mov    %esp,-0x10(%ebp)
40d952:	ff 75 08             	push   0x8(%ebp)
40d955:	ff 50 74             	call   *0x74(%eax)
40d958:	33 c9                	xor    %ecx,%ecx
40d95a:	3b c1                	cmp    %ecx,%eax
40d95c:	75 04                	jne    0x40d962
40d95e:	33 c0                	xor    %eax,%eax
40d960:	eb 35                	jmp    0x40d997
40d962:	39 48 4c             	cmp    %ecx,0x4c(%eax)
40d965:	75 12                	jne    0x40d979
40d967:	51                   	push   %ecx
40d968:	51                   	push   %ecx
40d969:	68 f0 00 00 00       	push   $0xf0
40d96e:	ff 70 1c             	push   0x1c(%eax)
40d971:	ff 15 98 08 4b 00    	call   *0x4b0898
40d977:	eb 1e                	jmp    0x40d997
40d979:	8d 55 08             	lea    0x8(%ebp),%edx
40d97c:	52                   	push   %edx
40d97d:	6a 03                	push   $0x3
40d97f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40d982:	51                   	push   %ecx
40d983:	8b c8                	mov    %eax,%ecx
40d985:	e8 88 34 03 00       	call   0x440e12
40d98a:	8b 45 08             	mov    0x8(%ebp),%eax
40d98d:	3d ff ff 00 00       	cmp    $0xffff,%eax
40d992:	75 03                	jne    0x40d997
40d994:	33 c0                	xor    %eax,%eax
40d996:	40                   	inc    %eax
40d997:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d99a:	5f                   	pop    %edi
40d99b:	5e                   	pop    %esi
40d99c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d9a3:	5b                   	pop    %ebx
40d9a4:	c9                   	leave
40d9a5:	c2 04 00             	ret    $0x4
40d9a8:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d9ab:	e8 69 25 03 00       	call   0x43ff19
40d9b0:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40d9b4:	b8 8a d9 40 00       	mov    $0x40d98a,%eax
40d9b9:	c3                   	ret
40d9ba:	55                   	push   %ebp
40d9bb:	8b ec                	mov    %esp,%ebp
40d9bd:	8b 55 14             	mov    0x14(%ebp),%edx
40d9c0:	83 22 00             	andl   $0x0,(%edx)
40d9c3:	53                   	push   %ebx
40d9c4:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d9c7:	81 fb 0f 01 00 00    	cmp    $0x10f,%ebx
40d9cd:	56                   	push   %esi
40d9ce:	57                   	push   %edi
40d9cf:	77 33                	ja     0x40da04
40d9d1:	81 fb 0d 01 00 00    	cmp    $0x10d,%ebx
40d9d7:	73 5b                	jae    0x40da34
40d9d9:	83 fb 1f             	cmp    $0x1f,%ebx
40d9dc:	74 56                	je     0x40da34
40d9de:	83 fb 53             	cmp    $0x53,%ebx
40d9e1:	74 51                	je     0x40da34
40d9e3:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
40d9e9:	76 10                	jbe    0x40d9fb
40d9eb:	81 fb 05 01 00 00    	cmp    $0x105,%ebx
40d9f1:	76 41                	jbe    0x40da34
40d9f3:	81 fb 07 01 00 00    	cmp    $0x107,%ebx
40d9f9:	74 39                	je     0x40da34
40d9fb:	33 c0                	xor    %eax,%eax
40d9fd:	5f                   	pop    %edi
40d9fe:	5e                   	pop    %esi
40d9ff:	5b                   	pop    %ebx
40da00:	5d                   	pop    %ebp
40da01:	c2 10 00             	ret    $0x10
40da04:	81 fb 00 02 00 00    	cmp    $0x200,%ebx
40da0a:	72 ef                	jb     0x40d9fb
40da0c:	81 fb 09 02 00 00    	cmp    $0x209,%ebx
40da12:	76 41                	jbe    0x40da55
40da14:	81 fb 80 02 00 00    	cmp    $0x280,%ebx
40da1a:	76 df                	jbe    0x40d9fb
40da1c:	81 fb 86 02 00 00    	cmp    $0x286,%ebx
40da22:	76 10                	jbe    0x40da34
40da24:	81 fb 8f 02 00 00    	cmp    $0x28f,%ebx
40da2a:	76 cf                	jbe    0x40d9fb
40da2c:	81 fb 91 02 00 00    	cmp    $0x291,%ebx
40da32:	77 c7                	ja     0x40d9fb
40da34:	83 79 6c 00          	cmpl   $0x0,0x6c(%ecx)
40da38:	74 c1                	je     0x40d9fb
40da3a:	8b 41 6c             	mov    0x6c(%ecx),%eax
40da3d:	8b 40 58             	mov    0x58(%eax),%eax
40da40:	52                   	push   %edx
40da41:	ff 75 10             	push   0x10(%ebp)
40da44:	8b 08                	mov    (%eax),%ecx
40da46:	ff 75 0c             	push   0xc(%ebp)
40da49:	53                   	push   %ebx
40da4a:	50                   	push   %eax
40da4b:	ff 51 24             	call   *0x24(%ecx)
40da4e:	f7 d8                	neg    %eax
40da50:	1b c0                	sbb    %eax,%eax
40da52:	40                   	inc    %eax
40da53:	eb a8                	jmp    0x40d9fd
40da55:	8b 71 68             	mov    0x68(%ecx),%esi
40da58:	85 f6                	test   %esi,%esi
40da5a:	75 5a                	jne    0x40dab6
40da5c:	8b 41 40             	mov    0x40(%ecx),%eax
40da5f:	85 c0                	test   %eax,%eax
40da61:	89 45 08             	mov    %eax,0x8(%ebp)
40da64:	74 95                	je     0x40d9fb
40da66:	8d 79 3c             	lea    0x3c(%ecx),%edi
40da69:	8d 45 08             	lea    0x8(%ebp),%eax
40da6c:	50                   	push   %eax
40da6d:	8b cf                	mov    %edi,%ecx
40da6f:	e8 ee 99 ff ff       	call   0x407462
40da74:	8b 30                	mov    (%eax),%esi
40da76:	8b 46 04             	mov    0x4(%esi),%eax
40da79:	85 c0                	test   %eax,%eax
40da7b:	74 23                	je     0x40daa0
40da7d:	83 78 70 00          	cmpl   $0x0,0x70(%eax)
40da81:	74 1d                	je     0x40daa0
40da83:	8b 55 10             	mov    0x10(%ebp),%edx
40da86:	0f bf 4d 10          	movswl 0x10(%ebp),%ecx
40da8a:	c1 ea 10             	shr    $0x10,%edx
40da8d:	0f bf d2             	movswl %dx,%edx
40da90:	52                   	push   %edx
40da91:	83 c0 2c             	add    $0x2c,%eax
40da94:	51                   	push   %ecx
40da95:	50                   	push   %eax
40da96:	ff 15 48 07 4b 00    	call   *0x4b0748
40da9c:	85 c0                	test   %eax,%eax
40da9e:	75 0b                	jne    0x40daab
40daa0:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40daa4:	75 c3                	jne    0x40da69
40daa6:	e9 50 ff ff ff       	jmp    0x40d9fb
40daab:	8b 76 04             	mov    0x4(%esi),%esi
40daae:	85 f6                	test   %esi,%esi
40dab0:	0f 84 45 ff ff ff    	je     0x40d9fb
40dab6:	8b 46 58             	mov    0x58(%esi),%eax
40dab9:	ff 75 14             	push   0x14(%ebp)
40dabc:	eb 83                	jmp    0x40da41
40dabe:	55                   	push   %ebp
40dabf:	8b ec                	mov    %esp,%ebp
40dac1:	51                   	push   %ecx
40dac2:	51                   	push   %ecx
40dac3:	8b 41 40             	mov    0x40(%ecx),%eax
40dac6:	56                   	push   %esi
40dac7:	33 f6                	xor    %esi,%esi
40dac9:	3b c6                	cmp    %esi,%eax
40dacb:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dace:	89 75 f8             	mov    %esi,-0x8(%ebp)
40dad1:	74 7a                	je     0x40db4d
40dad3:	53                   	push   %ebx
40dad4:	8b 5d 08             	mov    0x8(%ebp),%ebx
40dad7:	57                   	push   %edi
40dad8:	8d 79 3c             	lea    0x3c(%ecx),%edi
40dadb:	8d 45 fc             	lea    -0x4(%ebp),%eax
40dade:	50                   	push   %eax
40dadf:	8b cf                	mov    %edi,%ecx
40dae1:	e8 7c 99 ff ff       	call   0x407462
40dae6:	8b 00                	mov    (%eax),%eax
40dae8:	8b 48 04             	mov    0x4(%eax),%ecx
40daeb:	3b ce                	cmp    %esi,%ecx
40daed:	74 57                	je     0x40db46
40daef:	39 71 70             	cmp    %esi,0x70(%ecx)
40daf2:	74 52                	je     0x40db46
40daf4:	89 75 08             	mov    %esi,0x8(%ebp)
40daf7:	8b 40 04             	mov    0x4(%eax),%eax
40dafa:	8b 40 4c             	mov    0x4c(%eax),%eax
40dafd:	8b 08                	mov    (%eax),%ecx
40daff:	8d 55 08             	lea    0x8(%ebp),%edx
40db02:	52                   	push   %edx
40db03:	68 fc 4b 49 00       	push   $0x494bfc
40db08:	50                   	push   %eax
40db09:	ff 11                	call   *(%ecx)
40db0b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40db0e:	3b ce                	cmp    %esi,%ecx
40db10:	74 28                	je     0x40db3a
40db12:	3b de                	cmp    %esi,%ebx