4079cf:	59                   	pop    %ecx
4079d0:	eb 41                	jmp    0x407a13
4079d2:	f6 45 fc 20          	testb  $0x20,-0x4(%ebp)
4079d6:	74 21                	je     0x4079f9
4079d8:	f6 45 fc 40          	testb  $0x40,-0x4(%ebp)
4079dc:	8d 45 10             	lea    0x10(%ebp),%eax
4079df:	50                   	push   %eax
4079e0:	74 0c                	je     0x4079ee
4079e2:	e8 c8 02 00 00       	call   0x407caf
4079e7:	59                   	pop    %ecx
4079e8:	0f bf c0             	movswl %ax,%eax
4079eb:	99                   	cltd
4079ec:	eb 25                	jmp    0x407a13
4079ee:	e8 bc 02 00 00       	call   0x407caf
4079f3:	59                   	pop    %ecx
4079f4:	0f b7 c0             	movzwl %ax,%eax
4079f7:	eb f2                	jmp    0x4079eb
4079f9:	f6 45 fc 40          	testb  $0x40,-0x4(%ebp)
4079fd:	8d 45 10             	lea    0x10(%ebp),%eax
407a00:	50                   	push   %eax
407a01:	74 08                	je     0x407a0b
407a03:	e8 a7 02 00 00       	call   0x407caf
407a08:	59                   	pop    %ecx
407a09:	eb e0                	jmp    0x4079eb
407a0b:	e8 9f 02 00 00       	call   0x407caf
407a10:	59                   	pop    %ecx
407a11:	33 d2                	xor    %edx,%edx
407a13:	f6 45 fc 40          	testb  $0x40,-0x4(%ebp)
407a17:	74 1b                	je     0x407a34
407a19:	85 d2                	test   %edx,%edx
407a1b:	7f 17                	jg     0x407a34
407a1d:	7c 04                	jl     0x407a23
407a1f:	85 c0                	test   %eax,%eax
407a21:	73 11                	jae    0x407a34
407a23:	f7 d8                	neg    %eax
407a25:	83 d2 00             	adc    $0x0,%edx
407a28:	8b f0                	mov    %eax,%esi
407a2a:	f7 da                	neg    %edx
407a2c:	80 4d fd 01          	orb    $0x1,-0x3(%ebp)
407a30:	8b fa                	mov    %edx,%edi
407a32:	eb 04                	jmp    0x407a38
407a34:	8b f0                	mov    %eax,%esi
407a36:	8b fa                	mov    %edx,%edi
407a38:	f6 45 fd 80          	testb  $0x80,-0x3(%ebp)
407a3c:	75 03                	jne    0x407a41
407a3e:	83 e7 00             	and    $0x0,%edi
407a41:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
407a45:	7d 09                	jge    0x407a50
407a47:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
407a4e:	eb 04                	jmp    0x407a54
407a50:	83 65 fc f7          	andl   $0xfffffff7,-0x4(%ebp)
407a54:	8b c6                	mov    %esi,%eax
407a56:	0b c7                	or     %edi,%eax
407a58:	75 04                	jne    0x407a5e
407a5a:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
407a5e:	8d 45 b7             	lea    -0x49(%ebp),%eax
407a61:	89 45 f8             	mov    %eax,-0x8(%ebp)
407a64:	8b 45 f0             	mov    -0x10(%ebp),%eax
407a67:	ff 4d f0             	decl   -0x10(%ebp)
407a6a:	85 c0                	test   %eax,%eax
407a6c:	7f 06                	jg     0x407a74
407a6e:	8b c6                	mov    %esi,%eax
407a70:	0b c7                	or     %edi,%eax
407a72:	74 3b                	je     0x407aaf
407a74:	8b 45 f4             	mov    -0xc(%ebp),%eax
407a77:	99                   	cltd
407a78:	52                   	push   %edx
407a79:	50                   	push   %eax
407a7a:	57                   	push   %edi
407a7b:	56                   	push   %esi
407a7c:	89 45 c0             	mov    %eax,-0x40(%ebp)
407a7f:	89 55 c4             	mov    %edx,-0x3c(%ebp)
407a82:	e8 79 36 00 00       	call   0x40b100
407a87:	ff 75 c4             	push   -0x3c(%ebp)
407a8a:	8b d8                	mov    %eax,%ebx
407a8c:	83 c3 30             	add    $0x30,%ebx
407a8f:	ff 75 c0             	push   -0x40(%ebp)
407a92:	57                   	push   %edi
407a93:	56                   	push   %esi
407a94:	e8 f7 35 00 00       	call   0x40b090
407a99:	83 fb 39             	cmp    $0x39,%ebx
407a9c:	8b f0                	mov    %eax,%esi
407a9e:	8b fa                	mov    %edx,%edi
407aa0:	7e 03                	jle    0x407aa5
407aa2:	03 5d d4             	add    -0x2c(%ebp),%ebx
407aa5:	8b 45 f8             	mov    -0x8(%ebp),%eax
407aa8:	ff 4d f8             	decl   -0x8(%ebp)
407aab:	88 18                	mov    %bl,(%eax)
407aad:	eb b5                	jmp    0x407a64
407aaf:	8d 45 b7             	lea    -0x49(%ebp),%eax
407ab2:	2b 45 f8             	sub    -0x8(%ebp),%eax
407ab5:	ff 45 f8             	incl   -0x8(%ebp)
407ab8:	f6 45 fd 02          	testb  $0x2,-0x3(%ebp)
407abc:	89 45 f4             	mov    %eax,-0xc(%ebp)
407abf:	74 19                	je     0x407ada
407ac1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407ac4:	80 39 30             	cmpb   $0x30,(%ecx)
407ac7:	75 04                	jne    0x407acd
407ac9:	85 c0                	test   %eax,%eax
407acb:	75 0d                	jne    0x407ada
407acd:	ff 4d f8             	decl   -0x8(%ebp)
407ad0:	40                   	inc    %eax
407ad1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407ad4:	c6 01 30             	movb   $0x30,(%ecx)
407ad7:	89 45 f4             	mov    %eax,-0xc(%ebp)
407ada:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
407ade:	0f 85 f4 00 00 00    	jne    0x407bd8
407ae4:	8b 5d fc             	mov    -0x4(%ebp),%ebx
407ae7:	f6 c3 40             	test   $0x40,%bl
407aea:	74 26                	je     0x407b12
407aec:	f6 c7 01             	test   $0x1,%bh
407aef:	74 06                	je     0x407af7
407af1:	c6 45 ea 2d          	movb   $0x2d,-0x16(%ebp)
407af5:	eb 14                	jmp    0x407b0b
407af7:	f6 c3 01             	test   $0x1,%bl
407afa:	74 06                	je     0x407b02
407afc:	c6 45 ea 2b          	movb   $0x2b,-0x16(%ebp)
407b00:	eb 09                	jmp    0x407b0b
407b02:	f6 c3 02             	test   $0x2,%bl
407b05:	74 0b                	je     0x407b12
407b07:	c6 45 ea 20          	movb   $0x20,-0x16(%ebp)
407b0b:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
407b12:	8b 75 e0             	mov    -0x20(%ebp),%esi
407b15:	2b 75 e4             	sub    -0x1c(%ebp),%esi
407b18:	2b 75 f4             	sub    -0xc(%ebp),%esi
407b1b:	f6 c3 0c             	test   $0xc,%bl
407b1e:	75 12                	jne    0x407b32
407b20:	8d 45 ec             	lea    -0x14(%ebp),%eax
407b23:	50                   	push   %eax
407b24:	ff 75 08             	push   0x8(%ebp)
407b27:	56                   	push   %esi
407b28:	6a 20                	push   $0x20
407b2a:	e8 17 01 00 00       	call   0x407c46
407b2f:	83 c4 10             	add    $0x10,%esp
407b32:	8d 45 ec             	lea    -0x14(%ebp),%eax
407b35:	50                   	push   %eax
407b36:	8d 45 ea             	lea    -0x16(%ebp),%eax
407b39:	ff 75 08             	push   0x8(%ebp)
407b3c:	ff 75 e4             	push   -0x1c(%ebp)
407b3f:	50                   	push   %eax
407b40:	e8 32 01 00 00       	call   0x407c77
407b45:	83 c4 10             	add    $0x10,%esp
407b48:	f6 c3 08             	test   $0x8,%bl
407b4b:	74 17                	je     0x407b64
407b4d:	f6 c3 04             	test   $0x4,%bl
407b50:	75 12                	jne    0x407b64
407b52:	8d 45 ec             	lea    -0x14(%ebp),%eax
407b55:	50                   	push   %eax
407b56:	ff 75 08             	push   0x8(%ebp)
407b59:	56                   	push   %esi
407b5a:	6a 30                	push   $0x30
407b5c:	e8 e5 00 00 00       	call   0x407c46
407b61:	83 c4 10             	add    $0x10,%esp
407b64:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
407b68:	74 41                	je     0x407bab
407b6a:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
407b6e:	7e 3b                	jle    0x407bab
407b70:	8b 45 f4             	mov    -0xc(%ebp),%eax
407b73:	8b 5d f8             	mov    -0x8(%ebp),%ebx
407b76:	8d 78 ff             	lea    -0x1(%eax),%edi
407b79:	66 8b 03             	mov    (%ebx),%ax
407b7c:	43                   	inc    %ebx
407b7d:	50                   	push   %eax
407b7e:	8d 45 c8             	lea    -0x38(%ebp),%eax
407b81:	50                   	push   %eax
407b82:	43                   	inc    %ebx
407b83:	e8 91 23 00 00       	call   0x409f19
407b88:	59                   	pop    %ecx
407b89:	85 c0                	test   %eax,%eax
407b8b:	59                   	pop    %ecx
407b8c:	7e 32                	jle    0x407bc0
407b8e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407b91:	51                   	push   %ecx
407b92:	ff 75 08             	push   0x8(%ebp)
407b95:	50                   	push   %eax
407b96:	8d 45 c8             	lea    -0x38(%ebp),%eax
407b99:	50                   	push   %eax
407b9a:	e8 d8 00 00 00       	call   0x407c77
407b9f:	83 c4 10             	add    $0x10,%esp
407ba2:	8b c7                	mov    %edi,%eax
407ba4:	4f                   	dec    %edi
407ba5:	85 c0                	test   %eax,%eax
407ba7:	75 d0                	jne    0x407b79
407ba9:	eb 15                	jmp    0x407bc0
407bab:	8d 45 ec             	lea    -0x14(%ebp),%eax
407bae:	50                   	push   %eax
407baf:	ff 75 08             	push   0x8(%ebp)
407bb2:	ff 75 f4             	push   -0xc(%ebp)
407bb5:	ff 75 f8             	push   -0x8(%ebp)
407bb8:	e8 ba 00 00 00       	call   0x407c77
407bbd:	83 c4 10             	add    $0x10,%esp
407bc0:	f6 45 fc 04          	testb  $0x4,-0x4(%ebp)
407bc4:	74 12                	je     0x407bd8
407bc6:	8d 45 ec             	lea    -0x14(%ebp),%eax
407bc9:	50                   	push   %eax
407bca:	ff 75 08             	push   0x8(%ebp)
407bcd:	56                   	push   %esi
407bce:	6a 20                	push   $0x20
407bd0:	e8 71 00 00 00       	call   0x407c46
407bd5:	83 c4 10             	add    $0x10,%esp
407bd8:	8b 7d 0c             	mov    0xc(%ebp),%edi
407bdb:	8a 1f                	mov    (%edi),%bl
407bdd:	47                   	inc    %edi
407bde:	84 db                	test   %bl,%bl
407be0:	89 7d 0c             	mov    %edi,0xc(%ebp)
407be3:	0f 85 13 f9 ff ff    	jne    0x4074fc
407be9:	8b 45 ec             	mov    -0x14(%ebp),%eax
407bec:	5f                   	pop    %edi
407bed:	5e                   	pop    %esi
407bee:	5b                   	pop    %ebx
407bef:	c9                   	leave
407bf0:	c3                   	ret
407bf1:	6f                   	outsl  %ds:(%esi),(%dx)
407bf2:	76 40                	jbe    0x407c34
407bf4:	00 45 75             	add    %al,0x75(%ebp)
407bf7:	40                   	inc    %eax
407bf8:	00 60 75             	add    %ah,0x75(%eax)
407bfb:	40                   	inc    %eax
407bfc:	00 ac 75 40 00 e3 75 	add    %ch,0x75e30040(%ebp,%esi,2)
407c03:	40                   	inc    %eax
407c04:	00 eb                	add    %ch,%bl
407c06:	75 40                	jne    0x407c48
407c08:	00 20                	add    %ah,(%eax)
407c0a:	76 40                	jbe    0x407c4c
407c0c:	00 b3 76 40 00 55    	add    %dh,0x55004076(%ebx)
407c12:	8b ec                	mov    %esp,%ebp
407c14:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407c17:	ff 49 04             	decl   0x4(%ecx)
407c1a:	78 0e                	js     0x407c2a
407c1c:	8b 11                	mov    (%ecx),%edx
407c1e:	8a 45 08             	mov    0x8(%ebp),%al
407c21:	88 02                	mov    %al,(%edx)
407c23:	ff 01                	incl   (%ecx)
407c25:	0f b6 c0             	movzbl %al,%eax
407c28:	eb 0b                	jmp    0x407c35
407c2a:	51                   	push   %ecx
407c2b:	ff 75 08             	push   0x8(%ebp)
407c2e:	e8 51 01 00 00       	call   0x407d84
407c33:	59                   	pop    %ecx
407c34:	59                   	pop    %ecx
407c35:	83 f8 ff             	cmp    $0xffffffff,%eax
407c38:	8b 45 10             	mov    0x10(%ebp),%eax
407c3b:	75 05                	jne    0x407c42
407c3d:	83 08 ff             	orl    $0xffffffff,(%eax)
407c40:	5d                   	pop    %ebp
407c41:	c3                   	ret
407c42:	ff 00                	incl   (%eax)
407c44:	5d                   	pop    %ebp
407c45:	c3                   	ret
407c46:	56                   	push   %esi
407c47:	57                   	push   %edi
407c48:	8b 7c 24 10          	mov    0x10(%esp),%edi
407c4c:	8b c7                	mov    %edi,%eax
407c4e:	4f                   	dec    %edi
407c4f:	85 c0                	test   %eax,%eax
407c51:	7e 21                	jle    0x407c74
407c53:	8b 74 24 18          	mov    0x18(%esp),%esi
407c57:	56                   	push   %esi
407c58:	ff 74 24 18          	push   0x18(%esp)
407c5c:	ff 74 24 14          	push   0x14(%esp)
407c60:	e8 ac ff ff ff       	call   0x407c11
407c65:	83 c4 0c             	add    $0xc,%esp
407c68:	83 3e ff             	cmpl   $0xffffffff,(%esi)
407c6b:	74 07                	je     0x407c74
407c6d:	8b c7                	mov    %edi,%eax
407c6f:	4f                   	dec    %edi
407c70:	85 c0                	test   %eax,%eax
407c72:	7f e3                	jg     0x407c57
407c74:	5f                   	pop    %edi
407c75:	5e                   	pop    %esi
407c76:	c3                   	ret
407c77:	53                   	push   %ebx
407c78:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
407c7c:	8b c3                	mov    %ebx,%eax
407c7e:	4b                   	dec    %ebx
407c7f:	56                   	push   %esi
407c80:	57                   	push   %edi
407c81:	85 c0                	test   %eax,%eax
407c83:	7e 26                	jle    0x407cab
407c85:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
407c89:	8b 74 24 10          	mov    0x10(%esp),%esi
407c8d:	0f be 06             	movsbl (%esi),%eax
407c90:	57                   	push   %edi
407c91:	46                   	inc    %esi
407c92:	ff 74 24 1c          	push   0x1c(%esp)
407c96:	50                   	push   %eax
407c97:	e8 75 ff ff ff       	call   0x407c11
407c9c:	83 c4 0c             	add    $0xc,%esp
407c9f:	83 3f ff             	cmpl   $0xffffffff,(%edi)
407ca2:	74 07                	je     0x407cab
407ca4:	8b c3                	mov    %ebx,%eax
407ca6:	4b                   	dec    %ebx
407ca7:	85 c0                	test   %eax,%eax
407ca9:	7f e2                	jg     0x407c8d
407cab:	5f                   	pop    %edi
407cac:	5e                   	pop    %esi
407cad:	5b                   	pop    %ebx
407cae:	c3                   	ret
407caf:	8b 44 24 04          	mov    0x4(%esp),%eax
407cb3:	83 00 04             	addl   $0x4,(%eax)
407cb6:	8b 00                	mov    (%eax),%eax
407cb8:	8b 40 fc             	mov    -0x4(%eax),%eax
407cbb:	c3                   	ret
407cbc:	8b 44 24 04          	mov    0x4(%esp),%eax
407cc0:	83 00 08             	addl   $0x8,(%eax)
407cc3:	8b 08                	mov    (%eax),%ecx
407cc5:	8b 41 f8             	mov    -0x8(%ecx),%eax
407cc8:	8b 51 fc             	mov    -0x4(%ecx),%edx
407ccb:	c3                   	ret
407ccc:	8b 44 24 04          	mov    0x4(%esp),%eax
407cd0:	83 00 04             	addl   $0x4,(%eax)
407cd3:	8b 00                	mov    (%eax),%eax
407cd5:	66 8b 40 fc          	mov    -0x4(%eax),%ax
407cd9:	c3                   	ret
407cda:	55                   	push   %ebp
407cdb:	8b ec                	mov    %esp,%ebp
407cdd:	51                   	push   %ecx
407cde:	8b 45 08             	mov    0x8(%ebp),%eax
407ce1:	8d 48 01             	lea    0x1(%eax),%ecx
407ce4:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
407cea:	77 0c                	ja     0x407cf8
407cec:	8b 0d ec 09 41 00    	mov    0x4109ec,%ecx
407cf2:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
407cf6:	eb 52                	jmp    0x407d4a
407cf8:	8b c8                	mov    %eax,%ecx
407cfa:	56                   	push   %esi
407cfb:	8b 35 ec 09 41 00    	mov    0x4109ec,%esi
407d01:	c1 f9 08             	sar    $0x8,%ecx
407d04:	0f b6 d1             	movzbl %cl,%edx
407d07:	f6 44 56 01 80       	testb  $0x80,0x1(%esi,%edx,2)
407d0c:	5e                   	pop    %esi
407d0d:	74 0e                	je     0x407d1d
407d0f:	80 65 fe 00          	andb   $0x0,-0x2(%ebp)
407d13:	88 4d fc             	mov    %cl,-0x4(%ebp)
407d16:	88 45 fd             	mov    %al,-0x3(%ebp)
407d19:	6a 02                	push   $0x2
407d1b:	eb 09                	jmp    0x407d26
407d1d:	80 65 fd 00          	andb   $0x0,-0x3(%ebp)
407d21:	88 45 fc             	mov    %al,-0x4(%ebp)
407d24:	6a 01                	push   $0x1
407d26:	58                   	pop    %eax
407d27:	8d 4d 0a             	lea    0xa(%ebp),%ecx
407d2a:	6a 01                	push   $0x1
407d2c:	6a 00                	push   $0x0
407d2e:	6a 00                	push   $0x0
407d30:	51                   	push   %ecx
407d31:	50                   	push   %eax
407d32:	8d 45 fc             	lea    -0x4(%ebp),%eax
407d35:	50                   	push   %eax
407d36:	6a 01                	push   $0x1