a7a704:	8d 4d c0             	lea    -0x40(%ebp),%ecx
a7a707:	e8 fc 90 9a ff       	call   0x423808
a7a70c:	8b c8                	mov    %eax,%ecx
a7a70e:	e8 8b 19 9a ff       	call   0x41c09e
a7a713:	8b 45 b0             	mov    -0x50(%ebp),%eax
a7a716:	89 45 d0             	mov    %eax,-0x30(%ebp)
a7a719:	8b 45 b4             	mov    -0x4c(%ebp),%eax
a7a71c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
a7a71f:	eb 13                	jmp    0xa7a734
a7a721:	8d 45 b0             	lea    -0x50(%ebp),%eax
a7a724:	50                   	push   %eax
a7a725:	e8 3f ea 99 ff       	call   0x419169
a7a72a:	59                   	pop    %ecx
a7a72b:	50                   	push   %eax
a7a72c:	8d 4d d0             	lea    -0x30(%ebp),%ecx
a7a72f:	e8 04 1e 9c ff       	call   0x43c538
a7a734:	8b 55 f8             	mov    -0x8(%ebp),%edx
a7a737:	33 c9                	xor    %ecx,%ecx
a7a739:	8b c3                	mov    %ebx,%eax
a7a73b:	be 00 10 00 00       	mov    $0x1000,%esi
a7a740:	85 d2                	test   %edx,%edx
a7a742:	74 07                	je     0xa7a74b
a7a744:	25 00 04 00 00       	and    $0x400,%eax
a7a749:	eb 02                	jmp    0xa7a74d
a7a74b:	23 c6                	and    %esi,%eax
a7a74d:	85 c0                	test   %eax,%eax
a7a74f:	0f 84 18 01 00 00    	je     0xa7a86d
a7a755:	81 7d e0 00 18 00 00 	cmpl   $0x1800,-0x20(%ebp)
a7a75c:	0f 85 0b 01 00 00    	jne    0xa7a86d
a7a762:	51                   	push   %ecx
a7a763:	8d 45 b0             	lea    -0x50(%ebp),%eax
a7a766:	50                   	push   %eax
a7a767:	e8 0e 85 98 ff       	call   0x402c7a
a7a76c:	59                   	pop    %ecx
a7a76d:	59                   	pop    %ecx
a7a76e:	8d 45 b0             	lea    -0x50(%ebp),%eax
a7a771:	8b cf                	mov    %edi,%ecx
a7a773:	50                   	push   %eax
a7a774:	8d 45 b8             	lea    -0x48(%ebp),%eax
a7a777:	50                   	push   %eax
a7a778:	6a 7b                	push   $0x7b
a7a77a:	8d 45 c0             	lea    -0x40(%ebp),%eax
a7a77d:	50                   	push   %eax
a7a77e:	e8 13 17 9a ff       	call   0x41be96
a7a783:	8b c8                	mov    %eax,%ecx
a7a785:	e8 14 19 9a ff       	call   0x41c09e
a7a78a:	50                   	push   %eax
a7a78b:	8d 4d d0             	lea    -0x30(%ebp),%ecx
a7a78e:	e8 61 03 9b ff       	call   0x42aaf4
a7a793:	8d 45 b0             	lea    -0x50(%ebp),%eax
a7a796:	50                   	push   %eax
a7a797:	e8 e9 41 99 ff       	call   0x40e985
a7a79c:	59                   	pop    %ecx
a7a79d:	85 35 60 18 d8 00    	test   %esi,0xd81860
a7a7a3:	75 3e                	jne    0xa7a7e3
a7a7a5:	8d 45 b0             	lea    -0x50(%ebp),%eax
a7a7a8:	50                   	push   %eax
a7a7a9:	8d 45 b8             	lea    -0x48(%ebp),%eax
a7a7ac:	50                   	push   %eax
a7a7ad:	6a 2c                	push   $0x2c
a7a7af:	8d 4d c0             	lea    -0x40(%ebp),%ecx
a7a7b2:	e8 51 90 9a ff       	call   0x423808
a7a7b7:	8b c8                	mov    %eax,%ecx
a7a7b9:	e8 e0 18 9a ff       	call   0x41c09e
a7a7be:	8b 45 b8             	mov    -0x48(%ebp),%eax
a7a7c1:	8d 4d b0             	lea    -0x50(%ebp),%ecx
a7a7c4:	89 45 b0             	mov    %eax,-0x50(%ebp)
a7a7c7:	8b 45 bc             	mov    -0x44(%ebp),%eax
a7a7ca:	68 6c e1 c7 00       	push   $0xc7e16c
a7a7cf:	89 45 b4             	mov    %eax,-0x4c(%ebp)
a7a7d2:	e8 cd 3d 9c ff       	call   0x43e5a4
a7a7d7:	8d 45 b0             	lea    -0x50(%ebp),%eax
a7a7da:	50                   	push   %eax
a7a7db:	8d 4d d0             	lea    -0x30(%ebp),%ecx
a7a7de:	e8 11 03 9b ff       	call   0x42aaf4
a7a7e3:	68 70 e1 c7 00       	push   $0xc7e170
a7a7e8:	8d 4d d0             	lea    -0x30(%ebp),%ecx
a7a7eb:	e8 b4 3d 9c ff       	call   0x43e5a4
a7a7f0:	8d 45 b0             	lea    -0x50(%ebp),%eax
a7a7f3:	50                   	push   %eax
a7a7f4:	e8 40 14 9a ff       	call   0x41bc39
a7a7f9:	59                   	pop    %ecx
a7a7fa:	8b 0d 60 18 d8 00    	mov    0xd81860,%ecx
a7a800:	8b c1                	mov    %ecx,%eax
a7a802:	c1 e8 03             	shr    $0x3,%eax
a7a805:	0b c1                	or     %ecx,%eax
a7a807:	d1 e8                	shr    $1,%eax
a7a809:	f7 d0                	not    %eax
a7a80b:	a8 01                	test   $0x1,%al
a7a80d:	0f 84 d6 04 00 00    	je     0xa7ace9
a7a813:	85 ce                	test   %ecx,%esi
a7a815:	0f 85 ce 04 00 00    	jne    0xa7ace9
a7a81b:	8d 45 b0             	lea    -0x50(%ebp),%eax
a7a81e:	50                   	push   %eax
a7a81f:	8d 45 b8             	lea    -0x48(%ebp),%eax
a7a822:	50                   	push   %eax
a7a823:	6a 20                	push   $0x20
a7a825:	8d 4d c0             	lea    -0x40(%ebp),%ecx
a7a828:	e8 db 8f 9a ff       	call   0x423808
a7a82d:	8b c8                	mov    %eax,%ecx
a7a82f:	e8 6a 18 9a ff       	call   0x41c09e
a7a834:	8b 45 b8             	mov    -0x48(%ebp),%eax
a7a837:	8d 4d b0             	lea    -0x50(%ebp),%ecx
a7a83a:	89 45 b0             	mov    %eax,-0x50(%ebp)
a7a83d:	8b 45 bc             	mov    -0x44(%ebp),%eax
a7a840:	6a 20                	push   $0x20
a7a842:	89 45 b4             	mov    %eax,-0x4c(%ebp)
a7a845:	e8 9d 4f 9c ff       	call   0x43f7e7
a7a84a:	8b 45 b0             	mov    -0x50(%ebp),%eax
a7a84d:	8d 4d b8             	lea    -0x48(%ebp),%ecx
a7a850:	89 45 b8             	mov    %eax,-0x48(%ebp)
a7a853:	8b 45 b4             	mov    -0x4c(%ebp),%eax
a7a856:	89 45 bc             	mov    %eax,-0x44(%ebp)
a7a859:	8d 45 d0             	lea    -0x30(%ebp),%eax
a7a85c:	50                   	push   %eax
a7a85d:	e8 92 02 9b ff       	call   0x42aaf4
a7a862:	8b 4d b8             	mov    -0x48(%ebp),%ecx
a7a865:	8b 7d bc             	mov    -0x44(%ebp),%edi
a7a868:	e9 fa 06 00 00       	jmp    0xa7af67
a7a86d:	b8 00 00 ff ff       	mov    $0xffff0000,%eax
a7a872:	89 4d b8             	mov    %ecx,-0x48(%ebp)
a7a875:	21 45 b4             	and    %eax,-0x4c(%ebp)
a7a878:	8b 75 b4             	mov    -0x4c(%ebp),%esi
a7a87b:	21 45 bc             	and    %eax,-0x44(%ebp)
a7a87e:	23 f0                	and    %eax,%esi
a7a880:	21 45 cc             	and    %eax,-0x34(%ebp)
a7a883:	21 45 c4             	and    %eax,-0x3c(%ebp)
a7a886:	8b c3                	mov    %ebx,%eax
a7a888:	89 75 e0             	mov    %esi,-0x20(%ebp)
a7a88b:	be 00 10 00 00       	mov    $0x1000,%esi
a7a890:	89 4d b0             	mov    %ecx,-0x50(%ebp)
a7a893:	89 4d c8             	mov    %ecx,-0x38(%ebp)
a7a896:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
a7a899:	89 4d c0             	mov    %ecx,-0x40(%ebp)
a7a89c:	85 d2                	test   %edx,%edx
a7a89e:	74 07                	je     0xa7a8a7
a7a8a0:	25 00 04 00 00       	and    $0x400,%eax
a7a8a5:	eb 02                	jmp    0xa7a8a9
a7a8a7:	23 c6                	and    %esi,%eax
a7a8a9:	85 c0                	test   %eax,%eax
a7a8ab:	0f 84 97 00 00 00    	je     0xa7a948
a7a8b1:	85 d2                	test   %edx,%edx
a7a8b3:	74 77                	je     0xa7a92c
a7a8b5:	8b c3                	mov    %ebx,%eax
a7a8b7:	25 00 07 00 00       	and    $0x700,%eax
a7a8bc:	3d 00 06 00 00       	cmp    $0x600,%eax
a7a8c1:	75 3e                	jne    0xa7a901
a7a8c3:	8d 45 dc             	lea    -0x24(%ebp),%eax
a7a8c6:	6a 01                	push   $0x1
a7a8c8:	50                   	push   %eax
a7a8c9:	e8 ac 83 98 ff       	call   0x402c7a
a7a8ce:	8b 45 dc             	mov    -0x24(%ebp),%eax
a7a8d1:	89 45 b8             	mov    %eax,-0x48(%ebp)
a7a8d4:	8b 45 e0             	mov    -0x20(%ebp),%eax
a7a8d7:	89 45 bc             	mov    %eax,-0x44(%ebp)
a7a8da:	8d 45 dc             	lea    -0x24(%ebp),%eax
a7a8dd:	6a 01                	push   $0x1
a7a8df:	50                   	push   %eax
a7a8e0:	e8 95 83 98 ff       	call   0x402c7a
a7a8e5:	8b 45 dc             	mov    -0x24(%ebp),%eax
a7a8e8:	89 45 b0             	mov    %eax,-0x50(%ebp)
a7a8eb:	8b 45 e0             	mov    -0x20(%ebp),%eax
a7a8ee:	89 45 b4             	mov    %eax,-0x4c(%ebp)
a7a8f1:	8d 45 dc             	lea    -0x24(%ebp),%eax
a7a8f4:	6a 01                	push   $0x1
a7a8f6:	50                   	push   %eax
a7a8f7:	e8 7e 83 98 ff       	call   0x402c7a
a7a8fc:	83 c4 18             	add    $0x18,%esp
a7a8ff:	eb 1f                	jmp    0xa7a920
a7a901:	85 d2                	test   %edx,%edx
a7a903:	74 27                	je     0xa7a92c
a7a905:	8b c3                	mov    %ebx,%eax
a7a907:	25 00 07 00 00       	and    $0x700,%eax
a7a90c:	3d 00 05 00 00       	cmp    $0x500,%eax
a7a911:	75 19                	jne    0xa7a92c
a7a913:	8d 45 dc             	lea    -0x24(%ebp),%eax
a7a916:	6a 01                	push   $0x1
a7a918:	50                   	push   %eax
a7a919:	e8 5c 83 98 ff       	call   0x402c7a
a7a91e:	59                   	pop    %ecx
a7a91f:	59                   	pop    %ecx
a7a920:	8b 45 dc             	mov    -0x24(%ebp),%eax
a7a923:	89 45 c8             	mov    %eax,-0x38(%ebp)
a7a926:	8b 45 e0             	mov    -0x20(%ebp),%eax
a7a929:	89 45 cc             	mov    %eax,-0x34(%ebp)
a7a92c:	8d 45 dc             	lea    -0x24(%ebp),%eax
a7a92f:	6a 01                	push   $0x1
a7a931:	50                   	push   %eax
a7a932:	e8 43 83 98 ff       	call   0x402c7a
a7a937:	8b 45 dc             	mov    -0x24(%ebp),%eax
a7a93a:	8b 55 f8             	mov    -0x8(%ebp),%edx
a7a93d:	59                   	pop    %ecx
a7a93e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
a7a941:	8b 45 e0             	mov    -0x20(%ebp),%eax
a7a944:	59                   	pop    %ecx
a7a945:	89 45 e0             	mov    %eax,-0x20(%ebp)
a7a948:	85 d2                	test   %edx,%edx
a7a94a:	74 40                	je     0xa7a98c
a7a94c:	8b c3                	mov    %ebx,%eax
a7a94e:	25 00 07 00 00       	and    $0x700,%eax
a7a953:	3d 00 02 00 00       	cmp    $0x200,%eax
a7a958:	74 32                	je     0xa7a98c
a7a95a:	a1 60 18 d8 00       	mov    0xd81860,%eax
a7a95f:	83 e0 60             	and    $0x60,%eax
a7a962:	3c 60                	cmp    $0x60,%al
a7a964:	8d 45 f0             	lea    -0x10(%ebp),%eax
a7a967:	50                   	push   %eax
a7a968:	74 13                	je     0xa7a97d
a7a96a:	e8 ec f8 9b ff       	call   0x43a25b
a7a96f:	59                   	pop    %ecx
a7a970:	8b 08                	mov    (%eax),%ecx
a7a972:	8b 40 04             	mov    0x4(%eax),%eax
a7a975:	89 4d c0             	mov    %ecx,-0x40(%ebp)
a7a978:	89 45 c4             	mov    %eax,-0x3c(%ebp)
a7a97b:	eb 0f                	jmp    0xa7a98c
a7a97d:	e8 d9 f8 9b ff       	call   0x43a25b
a7a982:	59                   	pop    %ecx
a7a983:	50                   	push   %eax
a7a984:	8d 4d c0             	lea    -0x40(%ebp),%ecx
a7a987:	e8 ac 1b 9c ff       	call   0x43c538
a7a98c:	8b 0d 60 18 d8 00    	mov    0xd81860,%ecx
a7a992:	8b c1                	mov    %ecx,%eax
a7a994:	d1 e8                	shr    $1,%eax
a7a996:	f7 d0                	not    %eax
a7a998:	a8 01                	test   $0x1,%al
a7a99a:	74 30                	je     0xa7a9cc
a7a99c:	c1 e9 04             	shr    $0x4,%ecx
a7a99f:	f7 d1                	not    %ecx
a7a9a1:	f6 c1 01             	test   $0x1,%cl
a7a9a4:	74 26                	je     0xa7a9cc
a7a9a6:	8d 45 d0             	lea    -0x30(%ebp),%eax
a7a9a9:	50                   	push   %eax
a7a9aa:	8d 45 f0             	lea    -0x10(%ebp),%eax
a7a9ad:	50                   	push   %eax
a7a9ae:	8d 45 a8             	lea    -0x58(%ebp),%eax
a7a9b1:	50                   	push   %eax
a7a9b2:	e8 82 12 9a ff       	call   0x41bc39
a7a9b7:	59                   	pop    %ecx
a7a9b8:	8b c8                	mov    %eax,%ecx
a7a9ba:	e8 df 16 9a ff       	call   0x41c09e
a7a9bf:	8b 08                	mov    (%eax),%ecx
a7a9c1:	8b 40 04             	mov    0x4(%eax),%eax
a7a9c4:	89 4d d0             	mov    %ecx,-0x30(%ebp)
a7a9c7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
a7a9ca:	eb 13                	jmp    0xa7a9df
a7a9cc:	8d 45 a8             	lea    -0x58(%ebp),%eax
a7a9cf:	50                   	push   %eax
a7a9d0:	e8 64 12 9a ff       	call   0x41bc39
a7a9d5:	59                   	pop    %ecx
a7a9d6:	50                   	push   %eax
a7a9d7:	8d 4d d0             	lea    -0x30(%ebp),%ecx
a7a9da:	e8 59 1b 9c ff       	call   0x43c538
a7a9df:	33 c9                	xor    %ecx,%ecx
a7a9e1:	39 0f                	cmp    %ecx,(%edi)
a7a9e3:	74 3e                	je     0xa7aa23
a7a9e5:	39 4d d0             	cmp    %ecx,-0x30(%ebp)
a7a9e8:	74 2e                	je     0xa7aa18
a7a9ea:	85 35 60 18 d8 00    	test   %esi,0xd81860
a7a9f0:	75 26                	jne    0xa7aa18
a7a9f2:	57                   	push   %edi
a7a9f3:	8d 45 f0             	lea    -0x10(%ebp),%eax
a7a9f6:	50                   	push   %eax
a7a9f7:	6a 20                	push   $0x20
a7a9f9:	8d 4d a8             	lea    -0x58(%ebp),%ecx
a7a9fc:	e8 07 8e 9a ff       	call   0x423808
a7aa01:	8b c8                	mov    %eax,%ecx
a7aa03:	e8 96 16 9a ff       	call   0x41c09e
a7aa08:	8d 45 f0             	lea    -0x10(%ebp),%eax
a7aa0b:	50                   	push   %eax
a7aa0c:	8d 4d d0             	lea    -0x30(%ebp),%ecx
a7aa0f:	e8 e0 00 9b ff       	call   0x42aaf4
a7aa14:	33 c9                	xor    %ecx,%ecx
a7aa16:	eb 0b                	jmp    0xa7aa23
a7aa18:	8b 07                	mov    (%edi),%eax
a7aa1a:	89 45 d0             	mov    %eax,-0x30(%ebp)
a7aa1d:	8b 47 04             	mov    0x4(%edi),%eax
a7aa20:	89 45 d4             	mov    %eax,-0x2c(%ebp)
a7aa23:	8b 7d ac             	mov    -0x54(%ebp),%edi
a7aa26:	81 e7 00 00 ff ff    	and    $0xffff0000,%edi
a7aa2c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
a7aa2f:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
a7aa33:	51                   	push   %ecx
a7aa34:	74 4e                	je     0xa7aa84
a7aa36:	8d 45 a8             	lea    -0x58(%ebp),%eax
a7aa39:	50                   	push   %eax
a7aa3a:	e8 dc a2 9a ff       	call   0x424d1b
a7aa3f:	59                   	pop    %ecx
a7aa40:	59                   	pop    %ecx
a7aa41:	50                   	push   %eax
a7aa42:	8d 45 e8             	lea    -0x18(%ebp),%eax
a7aa45:	50                   	push   %eax
a7aa46:	68 1c 8a bd 00       	push   $0xbd8a1c
a7aa4b:	8d 4d a0             	lea    -0x60(%ebp),%ecx
a7aa4e:	e8 7c 4e 9a ff       	call   0x41f8cf
a7aa53:	8b c8                	mov    %eax,%ecx
a7aa55:	e8 44 16 9a ff       	call   0x41c09e
a7aa5a:	8d 45 e8             	lea    -0x18(%ebp),%eax
a7aa5d:	50                   	push   %eax
a7aa5e:	8d 4d d0             	lea    -0x30(%ebp),%ecx
a7aa61:	e8 8e 00 9b ff       	call   0x42aaf4
a7aa66:	85 35 60 18 d8 00    	test   %esi,0xd81860
a7aa6c:	0f 85 50 04 00 00    	jne    0xa7aec2
a7aa72:	33 f6                	xor    %esi,%esi
a7aa74:	8b 4d f8             	mov    -0x8(%ebp),%ecx
a7aa77:	8b c3                	mov    %ebx,%eax
a7aa79:	85 c9                	test   %ecx,%ecx
a7aa7b:	74 49                	je     0xa7aac6
a7aa7d:	25 00 04 00 00       	and    $0x400,%eax
a7aa82:	eb 47                	jmp    0xa7aacb
a7aa84:	6a 08                	push   $0x8
a7aa86:	b9 6c 18 d8 00       	mov    $0xd8186c,%ecx
a7aa8b:	e8 11 39 9c ff       	call   0x43e3a1
a7aa90:	8b c8                	mov    %eax,%ecx
a7aa92:	89 4d f4             	mov    %ecx,-0xc(%ebp)
a7aa95:	85 c9                	test   %ecx,%ecx
a7aa97:	74 10                	je     0xa7aaa9
a7aa99:	33 c0                	xor    %eax,%eax
a7aa9b:	88 41 04             	mov    %al,0x4(%ecx)
a7aa9e:	81 61 04 ff 00 ff ff 	andl   $0xffff00ff,0x4(%ecx)
a7aaa5:	89 01                	mov    %eax,(%ecx)
a7aaa7:	eb 07                	jmp    0xa7aab0
a7aaa9:	33 f6                	xor    %esi,%esi
a7aaab:	8b ce                	mov    %esi,%ecx
a7aaad:	89 75 f4             	mov    %esi,-0xc(%ebp)
a7aab0:	51                   	push   %ecx
a7aab1:	8d 45 a0             	lea    -0x60(%ebp),%eax
a7aab4:	50                   	push   %eax
a7aab5:	e8 61 a2 9a ff       	call   0x424d1b
a7aaba:	59                   	pop    %ecx
a7aabb:	59                   	pop    %ecx
a7aabc:	8b 30                	mov    (%eax),%esi
a7aabe:	8b 78 04             	mov    0x4(%eax),%edi
a7aac1:	89 75 fc             	mov    %esi,-0x4(%ebp)
a7aac4:	eb ae                	jmp    0xa7aa74
a7aac6:	25 00 10 00 00       	and    $0x1000,%eax
a7aacb:	85 c0                	test   %eax,%eax
a7aacd:	0f 84 14 01 00 00    	je     0xa7abe7
a7aad3:	85 c9                	test   %ecx,%ecx
a7aad5:	0f 84 da 00 00 00    	je     0xa7abb5
a7aadb:	8b c3                	mov    %ebx,%eax
a7aadd:	25 00 07 00 00       	and    $0x700,%eax
a7aae2:	3d 00 06 00 00       	cmp    $0x600,%eax
a7aae7:	75 7a                	jne    0xa7ab63
a7aae9:	8d 45 b8             	lea    -0x48(%ebp),%eax
a7aaec:	50                   	push   %eax
a7aaed:	8d 45 e8             	lea    -0x18(%ebp),%eax
a7aaf0:	50                   	push   %eax
a7aaf1:	68 74 e1 c7 00       	push   $0xc7e174
a7aaf6:	8d 4d a0             	lea    -0x60(%ebp),%ecx
a7aaf9:	e8 d1 4d 9a ff       	call   0x41f8cf