408980:	b3 01                	mov    $0x1,%bl
408982:	eb c5                	jmp    0x408949
408984:	8b 52 18             	mov    0x18(%edx),%edx
408987:	85 d2                	test   %edx,%edx
408989:	74 bb                	je     0x408946
40898b:	8b 42 04             	mov    0x4(%edx),%eax
40898e:	3b d8                	cmp    %eax,%ebx
408990:	0f 87 2d 01 00 00    	ja     0x408ac3
408996:	8b 7d 08             	mov    0x8(%ebp),%edi
408999:	8b 0a                	mov    (%edx),%ecx
40899b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40899e:	8b 3f                	mov    (%edi),%edi
4089a0:	85 db                	test   %ebx,%ebx
4089a2:	0f 84 cc 00 00 00    	je     0x408a74
4089a8:	eb 06                	jmp    0x4089b0
4089aa:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4089b0:	66 8b 07             	mov    (%edi),%ax
4089b3:	66 3b 01             	cmp    (%ecx),%ax
4089b6:	0f 84 a6 00 00 00    	je     0x408a62
4089bc:	73 19                	jae    0x4089d7
4089be:	8b 0e                	mov    (%esi),%ecx
4089c0:	8b 42 1c             	mov    0x1c(%edx),%eax
4089c3:	89 41 18             	mov    %eax,0x18(%ecx)
4089c6:	8b 06                	mov    (%esi),%eax
4089c8:	89 42 1c             	mov    %eax,0x1c(%edx)
4089cb:	89 16                	mov    %edx,(%esi)
4089cd:	83 7a 18 00          	cmpl   $0x0,0x18(%edx)
4089d1:	0f 84 6f ff ff ff    	je     0x408946
4089d7:	8b 55 f4             	mov    -0xc(%ebp),%edx
4089da:	8b 06                	mov    (%esi),%eax
4089dc:	89 42 18             	mov    %eax,0x18(%edx)
4089df:	8b 06                	mov    (%esi),%eax
4089e1:	89 45 f4             	mov    %eax,-0xc(%ebp)
4089e4:	8b 40 18             	mov    0x18(%eax),%eax
4089e7:	89 06                	mov    %eax,(%esi)
4089e9:	e9 fa fe ff ff       	jmp    0x4088e8
4089ee:	8b 4a 04             	mov    0x4(%edx),%ecx
4089f1:	3b cb                	cmp    %ebx,%ecx
4089f3:	0f 87 d1 00 00 00    	ja     0x408aca
4089f9:	8b 38                	mov    (%eax),%edi
4089fb:	8b 02                	mov    (%edx),%eax
4089fd:	89 4d f0             	mov    %ecx,-0x10(%ebp)
408a00:	89 45 fc             	mov    %eax,-0x4(%ebp)
408a03:	85 c9                	test   %ecx,%ecx
408a05:	74 19                	je     0x408a20
408a07:	66 8b 00             	mov    (%eax),%ax
408a0a:	66 3b 07             	cmp    (%edi),%ax
408a0d:	8b 45 fc             	mov    -0x4(%ebp),%eax
408a10:	75 78                	jne    0x408a8a
408a12:	83 c0 02             	add    $0x2,%eax
408a15:	83 c7 02             	add    $0x2,%edi
408a18:	ff 4d f0             	decl   -0x10(%ebp)
408a1b:	89 45 fc             	mov    %eax,-0x4(%ebp)
408a1e:	75 e7                	jne    0x408a07
408a20:	3b cb                	cmp    %ebx,%ecx
408a22:	72 6e                	jb     0x408a92
408a24:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408a27:	8b 06                	mov    (%esi),%eax
408a29:	89 41 1c             	mov    %eax,0x1c(%ecx)
408a2c:	8b 06                	mov    (%esi),%eax
408a2e:	89 45 f8             	mov    %eax,-0x8(%ebp)
408a31:	8b 40 1c             	mov    0x1c(%eax),%eax
408a34:	89 06                	mov    %eax,(%esi)
408a36:	e9 ad fe ff ff       	jmp    0x4088e8
408a3b:	8b 00                	mov    (%eax),%eax
408a3d:	8b 3a                	mov    (%edx),%edi
408a3f:	89 45 fc             	mov    %eax,-0x4(%ebp)
408a42:	85 c9                	test   %ecx,%ecx
408a44:	74 76                	je     0x408abc
408a46:	66 8b 00             	mov    (%eax),%ax
408a49:	66 3b 07             	cmp    (%edi),%ax
408a4c:	8b 45 fc             	mov    -0x4(%ebp),%eax
408a4f:	74 5f                	je     0x408ab0
408a51:	66 8b 00             	mov    (%eax),%ax
408a54:	66 3b 07             	cmp    (%edi),%ax
408a57:	1b c0                	sbb    %eax,%eax
408a59:	83 e0 fe             	and    $0xfffffffe,%eax
408a5c:	40                   	inc    %eax
408a5d:	e9 d0 fe ff ff       	jmp    0x408932
408a62:	83 c7 02             	add    $0x2,%edi
408a65:	83 c1 02             	add    $0x2,%ecx
408a68:	ff 4d fc             	decl   -0x4(%ebp)
408a6b:	0f 85 3f ff ff ff    	jne    0x4089b0
408a71:	8b 42 04             	mov    0x4(%edx),%eax
408a74:	3b d8                	cmp    %eax,%ebx
408a76:	0f 83 5b ff ff ff    	jae    0x4089d7
408a7c:	e9 3d ff ff ff       	jmp    0x4089be
408a81:	32 c0                	xor    %al,%al
408a83:	5e                   	pop    %esi
408a84:	8b e5                	mov    %ebp,%esp
408a86:	5d                   	pop    %ebp
408a87:	c2 08 00             	ret    $0x8
408a8a:	66 8b 00             	mov    (%eax),%ax
408a8d:	66 3b 07             	cmp    (%edi),%ax
408a90:	73 92                	jae    0x408a24
408a92:	8b 0e                	mov    (%esi),%ecx
408a94:	8b 42 18             	mov    0x18(%edx),%eax
408a97:	89 41 1c             	mov    %eax,0x1c(%ecx)
408a9a:	8b 06                	mov    (%esi),%eax
408a9c:	89 42 18             	mov    %eax,0x18(%edx)
408a9f:	89 16                	mov    %edx,(%esi)
408aa1:	83 7a 1c 00          	cmpl   $0x0,0x1c(%edx)
408aa5:	0f 84 9b fe ff ff    	je     0x408946
408aab:	e9 74 ff ff ff       	jmp    0x408a24
408ab0:	83 c0 02             	add    $0x2,%eax
408ab3:	83 c7 02             	add    $0x2,%edi
408ab6:	89 45 fc             	mov    %eax,-0x4(%ebp)
408ab9:	49                   	dec    %ecx
408aba:	75 8a                	jne    0x408a46
408abc:	33 c0                	xor    %eax,%eax
408abe:	e9 6f fe ff ff       	jmp    0x408932
408ac3:	8b d8                	mov    %eax,%ebx
408ac5:	e9 cc fe ff ff       	jmp    0x408996
408aca:	8b cb                	mov    %ebx,%ecx
408acc:	e9 28 ff ff ff       	jmp    0x4089f9
408ad1:	83 c8 01             	or     $0x1,%eax
408ad4:	b9 44 74 4c 00       	mov    $0x4c7444,%ecx
408ad9:	a3 40 74 4c 00       	mov    %eax,0x4c7440
408ade:	e8 e4 ec ff ff       	call   0x4077c7
408ae3:	68 0a b8 43 00       	push   $0x43b80a
408ae8:	e8 93 a4 01 00       	call   0x422f80
408aed:	83 c4 04             	add    $0x4,%esp
408af0:	e9 cf fd ff ff       	jmp    0x4088c4
408af5:	55                   	push   %ebp
408af6:	8b ec                	mov    %esp,%ebp
408af8:	56                   	push   %esi
408af9:	8b f1                	mov    %ecx,%esi
408afb:	56                   	push   %esi
408afc:	ff 75 08             	push   0x8(%ebp)
408aff:	e8 9c fd ff ff       	call   0x4088a0
408b04:	84 c0                	test   %al,%al
408b06:	75 07                	jne    0x408b0f
408b08:	33 c0                	xor    %eax,%eax
408b0a:	5e                   	pop    %esi
408b0b:	5d                   	pop    %ebp
408b0c:	c2 04 00             	ret    $0x4
408b0f:	8b 06                	mov    (%esi),%eax
408b11:	eb f7                	jmp    0x408b0a
408b13:	55                   	push   %ebp
408b14:	8b ec                	mov    %esp,%ebp
408b16:	53                   	push   %ebx
408b17:	56                   	push   %esi
408b18:	8b d9                	mov    %ecx,%ebx
408b1a:	53                   	push   %ebx
408b1b:	ff 75 08             	push   0x8(%ebp)
408b1e:	e8 7d fd ff ff       	call   0x4088a0
408b23:	84 c0                	test   %al,%al
408b25:	75 72                	jne    0x408b99
408b27:	33 f6                	xor    %esi,%esi
408b29:	85 f6                	test   %esi,%esi
408b2b:	75 70                	jne    0x408b9d
408b2d:	57                   	push   %edi
408b2e:	8b 7d 10             	mov    0x10(%ebp),%edi
408b31:	6a 20                	push   $0x20
408b33:	81 e7 00 ff 00 00    	and    $0xff00,%edi
408b39:	e8 b8 84 01 00       	call   0x420ff6
408b3e:	8b f0                	mov    %eax,%esi
408b40:	59                   	pop    %ecx
408b41:	85 f6                	test   %esi,%esi
408b43:	74 65                	je     0x408baa
408b45:	8b ce                	mov    %esi,%ecx
408b47:	e8 7b ec ff ff       	call   0x4077c7
408b4c:	3b 75 08             	cmp    0x8(%ebp),%esi
408b4f:	74 0a                	je     0x408b5b
408b51:	ff 75 08             	push   0x8(%ebp)
408b54:	8b ce                	mov    %esi,%ecx
408b56:	e8 7c f5 ff ff       	call   0x4080d7
408b5b:	6a 10                	push   $0x10
408b5d:	89 7e 10             	mov    %edi,0x10(%esi)
408b60:	e8 91 84 01 00       	call   0x420ff6
408b65:	8b f8                	mov    %eax,%edi
408b67:	59                   	pop    %ecx
408b68:	85 ff                	test   %edi,%edi
408b6a:	74 42                	je     0x408bae
408b6c:	ff 75 0c             	push   0xc(%ebp)
408b6f:	83 67 08 00          	andl   $0x0,0x8(%edi)
408b73:	8b cf                	mov    %edi,%ecx
408b75:	e8 46 0f 00 00       	call   0x409ac0
408b7a:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
408b7e:	83 66 18 00          	andl   $0x0,0x18(%esi)
408b82:	89 7e 14             	mov    %edi,0x14(%esi)
408b85:	ff 33                	push   (%ebx)
408b87:	56                   	push   %esi
408b88:	e8 33 fc ff ff       	call   0x4087c0
408b8d:	89 03                	mov    %eax,(%ebx)
408b8f:	5f                   	pop    %edi
408b90:	8b 46 14             	mov    0x14(%esi),%eax
408b93:	5e                   	pop    %esi
408b94:	5b                   	pop    %ebx
408b95:	5d                   	pop    %ebp
408b96:	c2 0c 00             	ret    $0xc
408b99:	8b 33                	mov    (%ebx),%esi
408b9b:	eb 8c                	jmp    0x408b29
408b9d:	ff 75 0c             	push   0xc(%ebp)
408ba0:	8b 4e 14             	mov    0x14(%esi),%ecx
408ba3:	e8 f4 12 00 00       	call   0x409e9c
408ba8:	eb e6                	jmp    0x408b90
408baa:	33 f6                	xor    %esi,%esi
408bac:	eb 9e                	jmp    0x408b4c
408bae:	33 ff                	xor    %edi,%edi
408bb0:	eb c8                	jmp    0x408b7a
408bb2:	55                   	push   %ebp
408bb3:	8b ec                	mov    %esp,%ebp
408bb5:	ff 75 08             	push   0x8(%ebp)
408bb8:	e8 38 ff ff ff       	call   0x408af5
408bbd:	85 c0                	test   %eax,%eax
408bbf:	75 04                	jne    0x408bc5
408bc1:	5d                   	pop    %ebp
408bc2:	c2 08 00             	ret    $0x8
408bc5:	8b 50 10             	mov    0x10(%eax),%edx
408bc8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408bcb:	81 e2 00 ff 00 00    	and    $0xff00,%edx
408bd1:	8b 40 14             	mov    0x14(%eax),%eax
408bd4:	89 11                	mov    %edx,(%ecx)
408bd6:	eb e9                	jmp    0x408bc1
408bd8:	55                   	push   %ebp
408bd9:	8b ec                	mov    %esp,%ebp
408bdb:	83 ec 44             	sub    $0x44,%esp
408bde:	53                   	push   %ebx
408bdf:	56                   	push   %esi
408be0:	57                   	push   %edi
408be1:	8b f9                	mov    %ecx,%edi
408be3:	8b f2                	mov    %edx,%esi
408be5:	89 75 fc             	mov    %esi,-0x4(%ebp)
408be8:	8b 57 0c             	mov    0xc(%edi),%edx
408beb:	8b c2                	mov    %edx,%eax
408bed:	8b 4e 0c             	mov    0xc(%esi),%ecx
408bf0:	c1 e0 04             	shl    $0x4,%eax
408bf3:	03 c1                	add    %ecx,%eax
408bf5:	8b 04 85 38 4f 4a 00 	mov    0x4a4f38(,%eax,4),%eax
408bfc:	48                   	dec    %eax
408bfd:	83 f8 0d             	cmp    $0xd,%eax
408c00:	0f 87 8b 00 00 00    	ja     0x408c91
408c06:	ff 24 85 98 8c 40 00 	jmp    *0x408c98(,%eax,4)
408c0d:	8b cf                	mov    %edi,%ecx
408c0f:	e8 88 10 00 00       	call   0x409c9c
408c14:	8b ce                	mov    %esi,%ecx
408c16:	8b d8                	mov    %eax,%ebx
408c18:	e8 7f 10 00 00       	call   0x409c9c
408c1d:	2b d8                	sub    %eax,%ebx
408c1f:	f7 db                	neg    %ebx
408c21:	1b db                	sbb    %ebx,%ebx
408c23:	43                   	inc    %ebx
408c24:	8a c3                	mov    %bl,%al
408c26:	5f                   	pop    %edi
408c27:	5e                   	pop    %esi
408c28:	5b                   	pop    %ebx
408c29:	8b e5                	mov    %ebp,%esp
408c2b:	5d                   	pop    %ebp
408c2c:	c3                   	ret
408c2d:	8b cf                	mov    %edi,%ecx
408c2f:	e8 1f 10 00 00       	call   0x409c53
408c34:	8b ce                	mov    %esi,%ecx
408c36:	8a d0                	mov    %al,%dl
408c38:	e8 16 10 00 00       	call   0x409c53
408c3d:	33 c9                	xor    %ecx,%ecx
408c3f:	3a d0                	cmp    %al,%dl
408c41:	0f 94 c1             	sete   %cl
408c44:	8a c1                	mov    %cl,%al
408c46:	eb de                	jmp    0x408c26
408c48:	8b cf                	mov    %edi,%ecx
408c4a:	e8 a9 10 00 00       	call   0x409cf8
408c4f:	dd 5d f8             	fstpl  -0x8(%ebp)
408c52:	8b ce                	mov    %esi,%ecx
408c54:	e8 9f 10 00 00       	call   0x409cf8
408c59:	dd 45 f8             	fldl   -0x8(%ebp)
408c5c:	da e9                	fucompp
408c5e:	df e0                	fnstsw %ax
408c60:	f6 c4 44             	test   $0x44,%ah
408c63:	7b 27                	jnp    0x408c8c
408c65:	33 c0                	xor    %eax,%eax
408c67:	eb bd                	jmp    0x408c26
408c69:	8b ce                	mov    %esi,%ecx
408c6b:	e8 27 0d 00 00       	call   0x409997
408c70:	8b 76 08             	mov    0x8(%esi),%esi
408c73:	8b cf                	mov    %edi,%ecx
408c75:	e8 1d 0d 00 00       	call   0x409997
408c7a:	8b 4f 08             	mov    0x8(%edi),%ecx
408c7d:	6a 00                	push   $0x0
408c7f:	56                   	push   %esi
408c80:	e8 e3 ed ff ff       	call   0x407a68
408c85:	f7 d8                	neg    %eax
408c87:	1b c0                	sbb    %eax,%eax
408c89:	40                   	inc    %eax
408c8a:	eb 9a                	jmp    0x408c26
408c8c:	33 c0                	xor    %eax,%eax
408c8e:	40                   	inc    %eax
408c8f:	eb 95                	jmp    0x408c26
408c91:	32 c0                	xor    %al,%al
408c93:	eb 91                	jmp    0x408c26
408c95:	8d 49 00             	lea    0x0(%ecx),%ecx
408c98:	0d 8c 40 00 34       	or     $0x3400408c,%eax
408c9d:	f3 43                	repz inc %ebx
408c9f:	00 48 8c             	add    %cl,-0x74(%eax)
408ca2:	40                   	inc    %eax
408ca3:	00 69 8c             	add    %ch,-0x74(%ecx)
408ca6:	40                   	inc    %eax
408ca7:	00 91 8c 40 00 91    	add    %dl,-0x6effbf74(%ecx)
408cad:	8c 40 00             	mov    %es,0x0(%eax)
408cb0:	5c                   	pop    %esp
408cb1:	f3 43                	repz inc %ebx
408cb3:	00 a1 f3 43 00 2d    	add    %ah,0x2d0043f3(%ecx)
408cb9:	8c 40 00             	mov    %es,0x0(%eax)
408cbc:	71 f3                	jno    0x408cb1
408cbe:	43                   	inc    %ebx
408cbf:	00 f6                	add    %dh,%dh
408cc1:	f3 43                	repz inc %ebx
408cc3:	00 91 8c 40 00 83    	add    %dl,-0x7cffbf74(%ecx)
408cc9:	f3 43                	repz inc %ebx
408ccb:	00 b5 f4 43 00 55    	add    %dh,0x550043f4(%ebp)
408cd1:	8b ec                	mov    %esp,%ebp
408cd3:	51                   	push   %ecx
408cd4:	51                   	push   %ecx
408cd5:	53                   	push   %ebx
408cd6:	8b d9                	mov    %ecx,%ebx
408cd8:	56                   	push   %esi
408cd9:	57                   	push   %edi
408cda:	8b fa                	mov    %edx,%edi
408cdc:	8b 43 0c             	mov    0xc(%ebx),%eax
408cdf:	c1 e0 04             	shl    $0x4,%eax
408ce2:	03 47 0c             	add    0xc(%edi),%eax
408ce5:	8b 04 85 38 4f 4a 00 	mov    0x4a4f38(,%eax,4),%eax
408cec:	48                   	dec    %eax
408ced:	74 30                	je     0x408d1f
408cef:	48                   	dec    %eax
408cf0:	0f 84 4f 68 03 00    	je     0x43f545
408cf6:	48                   	dec    %eax
408cf7:	0f 85 f0 67 03 00    	jne    0x43f4ed
408cfd:	e8 f6 0f 00 00       	call   0x409cf8
408d02:	dd 5d f8             	fstpl  -0x8(%ebp)
408d05:	8b cf                	mov    %edi,%ecx
408d07:	e8 ec 0f 00 00       	call   0x409cf8
408d0c:	dc 5d f8             	fcompl -0x8(%ebp)
408d0f:	df e0                	fnstsw %ax
408d11:	f6 c4 41             	test   $0x41,%ah
408d14:	74 20                	je     0x408d36
408d16:	33 c0                	xor    %eax,%eax
408d18:	5f                   	pop    %edi
408d19:	5e                   	pop    %esi
408d1a:	5b                   	pop    %ebx
408d1b:	8b e5                	mov    %ebp,%esp
408d1d:	5d                   	pop    %ebp
408d1e:	c3                   	ret
408d1f:	e8 78 0f 00 00       	call   0x409c9c
408d24:	8b cf                	mov    %edi,%ecx
408d26:	8b f0                	mov    %eax,%esi
408d28:	e8 6f 0f 00 00       	call   0x409c9c
408d2d:	33 c9                	xor    %ecx,%ecx
408d2f:	3b f0                	cmp    %eax,%esi
408d31:	0f 9c c0             	setl   %al