40c891:	5d                   	pop    %ebp
40c892:	c3                   	ret
40c893:	7f 69                	jg     0x40c8fe
40c895:	27                   	daa
40c896:	6c                   	insb   (%dx),%es:(%edi)
40c897:	4d                   	dec    %ebp
40c898:	0a 69 79             	or     0x79(%ecx),%ch
40c89b:	ea 23 85 2c 04 55 8b 	ljmp   $0x8b55,$0x42c8523
40c8a2:	ec                   	in     (%dx),%al
40c8a3:	83 ec 54             	sub    $0x54,%esp
40c8a6:	56                   	push   %esi
40c8a7:	33 c0                	xor    %eax,%eax
40c8a9:	6a 3e                	push   $0x3e
40c8ab:	50                   	push   %eax
40c8ac:	8d 4d ae             	lea    -0x52(%ebp),%ecx
40c8af:	51                   	push   %ecx
40c8b0:	66 89 45 ac          	mov    %ax,-0x54(%ebp)
40c8b4:	e8 27 bb 00 00       	call   0x4183e0
40c8b9:	8b 55 0c             	mov    0xc(%ebp),%edx
40c8bc:	8b 75 08             	mov    0x8(%ebp),%esi
40c8bf:	6a 01                	push   $0x1
40c8c1:	52                   	push   %edx
40c8c2:	8d 45 ac             	lea    -0x54(%ebp),%eax
40c8c5:	50                   	push   %eax
40c8c6:	56                   	push   %esi
40c8c7:	e8 a4 be ff ff       	call   0x408770
40c8cc:	8b 16                	mov    (%esi),%edx
40c8ce:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40c8d1:	51                   	push   %ecx
40c8d2:	6a 28                	push   $0x28
40c8d4:	52                   	push   %edx
40c8d5:	56                   	push   %esi
40c8d6:	e8 65 a1 00 00       	call   0x416a40
40c8db:	83 c4 2c             	add    $0x2c,%esp
40c8de:	85 c0                	test   %eax,%eax
40c8e0:	78 4b                	js     0x40c92d
40c8e2:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c8e5:	50                   	push   %eax
40c8e6:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40c8e9:	51                   	push   %ecx
40c8ea:	6a 00                	push   $0x0
40c8ec:	56                   	push   %esi
40c8ed:	e8 3e a7 00 00       	call   0x417030
40c8f2:	83 c4 10             	add    $0x10,%esp
40c8f5:	85 c0                	test   %eax,%eax
40c8f7:	74 27                	je     0x40c920
40c8f9:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c8fc:	6a 00                	push   $0x0
40c8fe:	6a 00                	push   $0x0
40c900:	6a 00                	push   $0x0
40c902:	8d 55 ec             	lea    -0x14(%ebp),%edx
40c905:	52                   	push   %edx
40c906:	6a 00                	push   $0x0
40c908:	50                   	push   %eax
40c909:	56                   	push   %esi
40c90a:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40c911:	c7 45 f8 02 00 00 00 	movl   $0x2,-0x8(%ebp)
40c918:	e8 a3 a1 00 00       	call   0x416ac0
40c91d:	83 c4 1c             	add    $0x1c,%esp
40c920:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c923:	51                   	push   %ecx
40c924:	56                   	push   %esi
40c925:	e8 c6 a3 00 00       	call   0x416cf0
40c92a:	83 c4 08             	add    $0x8,%esp
40c92d:	5e                   	pop    %esi
40c92e:	8b e5                	mov    %ebp,%esp
40c930:	5d                   	pop    %ebp
40c931:	c3                   	ret
40c932:	83 a5 52 41 ff d3 1d 	andl   $0x1d,-0x2c00beae(%ebp)
40c939:	1b ff                	sbb    %edi,%edi
40c93b:	6c                   	insb   (%dx),%es:(%edi)
40c93c:	ca ee 3c             	lret   $0x3cee
40c93f:	d2 55 8b             	rclb   %cl,-0x75(%ebp)
40c942:	ec                   	in     (%dx),%al
40c943:	83 ec 0c             	sub    $0xc,%esp
40c946:	56                   	push   %esi
40c947:	8b 75 08             	mov    0x8(%ebp),%esi
40c94a:	8b 0e                	mov    (%esi),%ecx
40c94c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c94f:	50                   	push   %eax
40c950:	6a 08                	push   $0x8
40c952:	51                   	push   %ecx
40c953:	56                   	push   %esi
40c954:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40c95b:	c7 45 f8 04 00 00 00 	movl   $0x4,-0x8(%ebp)
40c962:	e8 d9 a0 00 00       	call   0x416a40
40c967:	83 c4 10             	add    $0x10,%esp
40c96a:	85 c0                	test   %eax,%eax
40c96c:	79 07                	jns    0x40c975
40c96e:	33 c0                	xor    %eax,%eax
40c970:	5e                   	pop    %esi
40c971:	8b e5                	mov    %ebp,%esp
40c973:	5d                   	pop    %ebp
40c974:	c3                   	ret
40c975:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c978:	57                   	push   %edi
40c979:	8d 55 f8             	lea    -0x8(%ebp),%edx
40c97c:	52                   	push   %edx
40c97d:	6a 04                	push   $0x4
40c97f:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c982:	50                   	push   %eax
40c983:	6a 14                	push   $0x14
40c985:	51                   	push   %ecx
40c986:	56                   	push   %esi
40c987:	e8 f4 a0 00 00       	call   0x416a80
40c98c:	8b 55 fc             	mov    -0x4(%ebp),%edx
40c98f:	52                   	push   %edx
40c990:	56                   	push   %esi
40c991:	8b f8                	mov    %eax,%edi
40c993:	e8 58 a3 00 00       	call   0x416cf0
40c998:	83 c4 20             	add    $0x20,%esp
40c99b:	33 c0                	xor    %eax,%eax
40c99d:	85 ff                	test   %edi,%edi
40c99f:	0f 98 c0             	sets   %al
40c9a2:	5f                   	pop    %edi
40c9a3:	5e                   	pop    %esi
40c9a4:	48                   	dec    %eax
40c9a5:	23 45 f4             	and    -0xc(%ebp),%eax
40c9a8:	8b e5                	mov    %ebp,%esp
40c9aa:	5d                   	pop    %ebp
40c9ab:	c3                   	ret
40c9ac:	80 4f c7 62          	orb    $0x62,-0x39(%edi)
40c9b0:	55                   	push   %ebp
40c9b1:	8b ec                	mov    %esp,%ebp
40c9b3:	81 ec 80 00 00 00    	sub    $0x80,%esp
40c9b9:	53                   	push   %ebx
40c9ba:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40c9bd:	57                   	push   %edi
40c9be:	33 ff                	xor    %edi,%edi
40c9c0:	33 c0                	xor    %eax,%eax
40c9c2:	3b df                	cmp    %edi,%ebx
40c9c4:	0f 84 c5 00 00 00    	je     0x40ca8f
40c9ca:	56                   	push   %esi
40c9cb:	6a 3e                	push   $0x3e
40c9cd:	8d 4d 82             	lea    -0x7e(%ebp),%ecx
40c9d0:	57                   	push   %edi
40c9d1:	51                   	push   %ecx
40c9d2:	66 89 45 80          	mov    %ax,-0x80(%ebp)
40c9d6:	e8 05 ba 00 00       	call   0x4183e0
40c9db:	8b 75 08             	mov    0x8(%ebp),%esi
40c9de:	6a 01                	push   $0x1
40c9e0:	6a 3e                	push   $0x3e
40c9e2:	8d 55 80             	lea    -0x80(%ebp),%edx
40c9e5:	52                   	push   %edx
40c9e6:	56                   	push   %esi
40c9e7:	e8 84 bd ff ff       	call   0x408770
40c9ec:	68 04 01 00 00       	push   $0x104
40c9f1:	8d 45 80             	lea    -0x80(%ebp),%eax
40c9f4:	50                   	push   %eax
40c9f5:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40c9f8:	51                   	push   %ecx
40c9f9:	e8 32 c8 00 00       	call   0x419230
40c9fe:	8d 45 d8             	lea    -0x28(%ebp),%eax
40ca01:	50                   	push   %eax
40ca02:	68 0f 00 02 00       	push   $0x2000f
40ca07:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40ca0a:	51                   	push   %ecx
40ca0b:	8d 55 f8             	lea    -0x8(%ebp),%edx
40ca0e:	56                   	push   %esi
40ca0f:	c7 45 d8 18 00 00 00 	movl   $0x18,-0x28(%ebp)
40ca16:	89 7d dc             	mov    %edi,-0x24(%ebp)
40ca19:	89 55 e0             	mov    %edx,-0x20(%ebp)
40ca1c:	c7 45 e4 40 00 00 00 	movl   $0x40,-0x1c(%ebp)
40ca23:	89 7d e8             	mov    %edi,-0x18(%ebp)
40ca26:	89 7d ec             	mov    %edi,-0x14(%ebp)
40ca29:	e8 72 9d 00 00       	call   0x4167a0
40ca2e:	68 04 01 00 00       	push   $0x104
40ca33:	8d 55 f0             	lea    -0x10(%ebp),%edx
40ca36:	53                   	push   %ebx
40ca37:	52                   	push   %edx
40ca38:	e8 f3 c7 00 00       	call   0x419230
40ca3d:	8b 45 0c             	mov    0xc(%ebp),%eax
40ca40:	83 c4 44             	add    $0x44,%esp
40ca43:	57                   	push   %edi
40ca44:	8d 55 c0             	lea    -0x40(%ebp),%edx
40ca47:	52                   	push   %edx
40ca48:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40ca4b:	8b 45 10             	mov    0x10(%ebp),%eax
40ca4e:	68 01 00 1f 00       	push   $0x1f0001
40ca53:	50                   	push   %eax
40ca54:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ca57:	56                   	push   %esi
40ca58:	c7 45 c0 18 00 00 00 	movl   $0x18,-0x40(%ebp)
40ca5f:	89 4d c8             	mov    %ecx,-0x38(%ebp)
40ca62:	c7 45 cc 80 00 00 00 	movl   $0x80,-0x34(%ebp)
40ca69:	89 7d d0             	mov    %edi,-0x30(%ebp)
40ca6c:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40ca6f:	e8 6c 9d 00 00       	call   0x4167e0
40ca74:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ca77:	51                   	push   %ecx
40ca78:	56                   	push   %esi
40ca79:	8b f8                	mov    %eax,%edi
40ca7b:	e8 70 a2 00 00       	call   0x416cf0
40ca80:	83 c4 1c             	add    $0x1c,%esp
40ca83:	33 c0                	xor    %eax,%eax
40ca85:	81 ff 00 00 00 40    	cmp    $0x40000000,%edi
40ca8b:	0f 94 c0             	sete   %al
40ca8e:	5e                   	pop    %esi
40ca8f:	5f                   	pop    %edi
40ca90:	5b                   	pop    %ebx
40ca91:	8b e5                	mov    %ebp,%esp
40ca93:	5d                   	pop    %ebp
40ca94:	c3                   	ret
40ca95:	7c a0                	jl     0x40ca37
40ca97:	4e                   	dec    %esi
40ca98:	a6                   	cmpsb  %es:(%edi),%ds:(%esi)
40ca99:	6b e1 9b             	imul   $0xffffff9b,%ecx,%esp
40ca9c:	cb                   	lret
40ca9d:	17                   	pop    %ss
40ca9e:	c9                   	leave
40ca9f:	5d                   	pop    %ebp
40caa0:	55                   	push   %ebp
40caa1:	8b ec                	mov    %esp,%ebp
40caa3:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
40caa9:	56                   	push   %esi
40caaa:	33 c0                	xor    %eax,%eax
40caac:	68 06 02 00 00       	push   $0x206
40cab1:	50                   	push   %eax
40cab2:	8d 8d f6 fd ff ff    	lea    -0x20a(%ebp),%ecx
40cab8:	51                   	push   %ecx
40cab9:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40cac0:	66 89 85 f4 fd ff ff 	mov    %ax,-0x20c(%ebp)
40cac7:	e8 14 b9 00 00       	call   0x4183e0
40cacc:	8b 75 08             	mov    0x8(%ebp),%esi
40cacf:	6a 10                	push   $0x10
40cad1:	8d 95 f4 fd ff ff    	lea    -0x20c(%ebp),%edx
40cad7:	52                   	push   %edx
40cad8:	56                   	push   %esi
40cad9:	e8 12 be ff ff       	call   0x4088f0
40cade:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cae1:	50                   	push   %eax
40cae2:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
40cae8:	51                   	push   %ecx
40cae9:	56                   	push   %esi
40caea:	e8 c1 fe ff ff       	call   0x40c9b0
40caef:	83 c4 24             	add    $0x24,%esp
40caf2:	85 c0                	test   %eax,%eax
40caf4:	8b 45 fc             	mov    -0x4(%ebp),%eax
40caf7:	74 18                	je     0x40cb11
40caf9:	85 c0                	test   %eax,%eax
40cafb:	74 0a                	je     0x40cb07
40cafd:	50                   	push   %eax
40cafe:	56                   	push   %esi
40caff:	e8 ec a1 00 00       	call   0x416cf0
40cb04:	83 c4 08             	add    $0x8,%esp
40cb07:	b8 01 00 00 00       	mov    $0x1,%eax
40cb0c:	5e                   	pop    %esi
40cb0d:	8b e5                	mov    %ebp,%esp
40cb0f:	5d                   	pop    %ebp
40cb10:	c3                   	ret
40cb11:	85 c0                	test   %eax,%eax
40cb13:	74 10                	je     0x40cb25
40cb15:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40cb19:	75 0a                	jne    0x40cb25
40cb1b:	50                   	push   %eax
40cb1c:	56                   	push   %esi
40cb1d:	e8 ce a1 00 00       	call   0x416cf0
40cb22:	83 c4 08             	add    $0x8,%esp
40cb25:	33 c0                	xor    %eax,%eax
40cb27:	5e                   	pop    %esi
40cb28:	8b e5                	mov    %ebp,%esp
40cb2a:	5d                   	pop    %ebp
40cb2b:	c3                   	ret
40cb2c:	55                   	push   %ebp
40cb2d:	46                   	inc    %esi
40cb2e:	16                   	push   %ss
40cb2f:	2b 55 8b             	sub    -0x75(%ebp),%edx
40cb32:	ec                   	in     (%dx),%al
40cb33:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
40cb39:	56                   	push   %esi
40cb3a:	33 c0                	xor    %eax,%eax
40cb3c:	68 06 02 00 00       	push   $0x206
40cb41:	50                   	push   %eax
40cb42:	8d 8d f6 fd ff ff    	lea    -0x20a(%ebp),%ecx
40cb48:	51                   	push   %ecx
40cb49:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40cb50:	66 89 85 f4 fd ff ff 	mov    %ax,-0x20c(%ebp)
40cb57:	e8 84 b8 00 00       	call   0x4183e0
40cb5c:	8b 75 08             	mov    0x8(%ebp),%esi
40cb5f:	6a 10                	push   $0x10
40cb61:	8d 95 f4 fd ff ff    	lea    -0x20c(%ebp),%edx
40cb67:	52                   	push   %edx
40cb68:	56                   	push   %esi
40cb69:	e8 72 be ff ff       	call   0x4089e0
40cb6e:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cb71:	50                   	push   %eax
40cb72:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
40cb78:	51                   	push   %ecx
40cb79:	56                   	push   %esi
40cb7a:	e8 31 fe ff ff       	call   0x40c9b0
40cb7f:	83 c4 24             	add    $0x24,%esp
40cb82:	85 c0                	test   %eax,%eax
40cb84:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cb87:	74 18                	je     0x40cba1
40cb89:	85 c0                	test   %eax,%eax
40cb8b:	74 0a                	je     0x40cb97
40cb8d:	50                   	push   %eax
40cb8e:	56                   	push   %esi
40cb8f:	e8 5c a1 00 00       	call   0x416cf0
40cb94:	83 c4 08             	add    $0x8,%esp
40cb97:	b8 01 00 00 00       	mov    $0x1,%eax
40cb9c:	5e                   	pop    %esi
40cb9d:	8b e5                	mov    %ebp,%esp
40cb9f:	5d                   	pop    %ebp
40cba0:	c3                   	ret
40cba1:	85 c0                	test   %eax,%eax
40cba3:	74 10                	je     0x40cbb5
40cba5:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40cba9:	75 0a                	jne    0x40cbb5
40cbab:	50                   	push   %eax
40cbac:	56                   	push   %esi
40cbad:	e8 3e a1 00 00       	call   0x416cf0
40cbb2:	83 c4 08             	add    $0x8,%esp
40cbb5:	33 c0                	xor    %eax,%eax
40cbb7:	5e                   	pop    %esi
40cbb8:	8b e5                	mov    %ebp,%esp
40cbba:	5d                   	pop    %ebp
40cbbb:	c3                   	ret
40cbbc:	11 df                	adc    %ebx,%edi
40cbbe:	21 c6                	and    %eax,%esi
40cbc0:	55                   	push   %ebp
40cbc1:	8b ec                	mov    %esp,%ebp
40cbc3:	83 ec 08             	sub    $0x8,%esp
40cbc6:	8b 45 1c             	mov    0x1c(%ebp),%eax
40cbc9:	53                   	push   %ebx
40cbca:	56                   	push   %esi
40cbcb:	57                   	push   %edi
40cbcc:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40cbd3:	be 40 00 00 00       	mov    $0x40,%esi
40cbd8:	83 f8 02             	cmp    $0x2,%eax
40cbdb:	74 0c                	je     0x40cbe9
40cbdd:	83 f8 06             	cmp    $0x6,%eax
40cbe0:	74 07                	je     0x40cbe9
40cbe2:	8b 4d 14             	mov    0x14(%ebp),%ecx
40cbe5:	8b 11                	mov    (%ecx),%edx
40cbe7:	eb 0b                	jmp    0x40cbf4
40cbe9:	8b 4d 14             	mov    0x14(%ebp),%ecx
40cbec:	8b 11                	mov    (%ecx),%edx
40cbee:	81 c2 00 00 08 00    	add    $0x80000,%edx
40cbf4:	89 55 f8             	mov    %edx,-0x8(%ebp)
40cbf7:	83 f8 04             	cmp    $0x4,%eax
40cbfa:	75 02                	jne    0x40cbfe
40cbfc:	8b f0                	mov    %eax,%esi
40cbfe:	8b 7d 10             	mov    0x10(%ebp),%edi
40cc01:	8b 5d 08             	mov    0x8(%ebp),%ebx
40cc04:	6a 00                	push   $0x0
40cc06:	68 00 00 00 08       	push   $0x8000000
40cc0b:	56                   	push   %esi
40cc0c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cc0f:	50                   	push   %eax