451e63:	4b                   	dec    %ebx
451e64:	75 c9                	jne    0x451e2f
451e66:	8b 55 fc             	mov    -0x4(%ebp),%edx
451e69:	03 55 f4             	add    -0xc(%ebp),%edx
451e6c:	8b 45 f8             	mov    -0x8(%ebp),%eax
451e6f:	0f b7 40 1a          	movzwl 0x1a(%eax),%eax
451e73:	03 d0                	add    %eax,%edx
451e75:	8b 45 f8             	mov    -0x8(%ebp),%eax
451e78:	e8 9b 06 00 00       	call   0x452518
451e7d:	eb 0a                	jmp    0x451e89
451e7f:	33 d2                	xor    %edx,%edx
451e81:	8b 45 f8             	mov    -0x8(%ebp),%eax
451e84:	e8 8f 06 00 00       	call   0x452518
451e89:	5e                   	pop    %esi
451e8a:	5b                   	pop    %ebx
451e8b:	8b e5                	mov    %ebp,%esp
451e8d:	5d                   	pop    %ebp
451e8e:	c3                   	ret
451e8f:	90                   	nop
451e90:	53                   	push   %ebx
451e91:	56                   	push   %esi
451e92:	8b d8                	mov    %eax,%ebx
451e94:	be 00 00 10 00       	mov    $0x100000,%esi
451e99:	80 7b 18 01          	cmpb   $0x1,0x18(%ebx)
451e9d:	75 05                	jne    0x451ea4
451e9f:	be 00 00 20 00       	mov    $0x200000,%esi
451ea4:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
451ea8:	74 14                	je     0x451ebe
451eaa:	6a f0                	push   $0xfffffff0
451eac:	8b 43 04             	mov    0x4(%ebx),%eax
451eaf:	e8 a8 f5 fe ff       	call   0x44145c
451eb4:	50                   	push   %eax
451eb5:	e8 f6 47 fb ff       	call   0x4066b0
451eba:	85 f0                	test   %esi,%eax
451ebc:	75 05                	jne    0x451ec3
451ebe:	33 c0                	xor    %eax,%eax
451ec0:	5e                   	pop    %esi
451ec1:	5b                   	pop    %ebx
451ec2:	c3                   	ret
451ec3:	b0 01                	mov    $0x1,%al
451ec5:	5e                   	pop    %esi
451ec6:	5b                   	pop    %ebx
451ec7:	c3                   	ret
451ec8:	55                   	push   %ebp
451ec9:	8b ec                	mov    %esp,%ebp
451ecb:	53                   	push   %ebx
451ecc:	bb 00 00 10 00       	mov    $0x100000,%ebx
451ed1:	66 83 f8 01          	cmp    $0x1,%ax
451ed5:	75 05                	jne    0x451edc
451ed7:	bb 00 00 20 00       	mov    $0x200000,%ebx
451edc:	6a f0                	push   $0xfffffff0
451ede:	8b 45 08             	mov    0x8(%ebp),%eax
451ee1:	8b 40 fc             	mov    -0x4(%eax),%eax
451ee4:	8b 40 04             	mov    0x4(%eax),%eax
451ee7:	e8 70 f5 fe ff       	call   0x44145c
451eec:	50                   	push   %eax
451eed:	e8 be 47 fb ff       	call   0x4066b0
451ef2:	85 d8                	test   %ebx,%eax
451ef4:	0f 95 c0             	setne  %al
451ef7:	5b                   	pop    %ebx
451ef8:	5d                   	pop    %ebp
451ef9:	c3                   	ret
451efa:	8b c0                	mov    %eax,%eax
451efc:	55                   	push   %ebp
451efd:	8b ec                	mov    %esp,%ebp
451eff:	53                   	push   %ebx
451f00:	56                   	push   %esi
451f01:	57                   	push   %edi
451f02:	8b fa                	mov    %edx,%edi
451f04:	8b f0                	mov    %eax,%esi
451f06:	33 db                	xor    %ebx,%ebx
451f08:	8b 45 08             	mov    0x8(%ebp),%eax
451f0b:	80 78 fb 00          	cmpb   $0x0,-0x5(%eax)
451f0f:	75 60                	jne    0x451f71
451f11:	8b 45 08             	mov    0x8(%ebp),%eax
451f14:	80 78 fa 00          	cmpb   $0x0,-0x6(%eax)
451f18:	74 29                	je     0x451f43
451f1a:	8b 45 08             	mov    0x8(%ebp),%eax
451f1d:	50                   	push   %eax
451f1e:	8b c6                	mov    %esi,%eax
451f20:	e8 a3 ff ff ff       	call   0x451ec8
451f25:	59                   	pop    %ecx
451f26:	84 c0                	test   %al,%al
451f28:	75 19                	jne    0x451f43
451f2a:	0f b7 c7             	movzwl %di,%eax
451f2d:	50                   	push   %eax
451f2e:	a1 b4 7d 46 00       	mov    0x467db4,%eax
451f33:	8b 00                	mov    (%eax),%eax
451f35:	ff d0                	call   *%eax
451f37:	8b d8                	mov    %eax,%ebx
451f39:	8b 45 08             	mov    0x8(%ebp),%eax
451f3c:	2b 58 f4             	sub    -0xc(%eax),%ebx
451f3f:	f7 db                	neg    %ebx
451f41:	eb 2e                	jmp    0x451f71
451f43:	8b 45 08             	mov    0x8(%ebp),%eax
451f46:	80 78 fa 00          	cmpb   $0x0,-0x6(%eax)
451f4a:	75 25                	jne    0x451f71
451f4c:	8b 45 08             	mov    0x8(%ebp),%eax
451f4f:	50                   	push   %eax
451f50:	8b c6                	mov    %esi,%eax
451f52:	e8 71 ff ff ff       	call   0x451ec8
451f57:	59                   	pop    %ecx
451f58:	84 c0                	test   %al,%al
451f5a:	74 15                	je     0x451f71
451f5c:	0f b7 c7             	movzwl %di,%eax
451f5f:	50                   	push   %eax
451f60:	a1 b4 7d 46 00       	mov    0x467db4,%eax
451f65:	8b 00                	mov    (%eax),%eax
451f67:	ff d0                	call   *%eax
451f69:	8b d8                	mov    %eax,%ebx
451f6b:	8b 45 08             	mov    0x8(%ebp),%eax
451f6e:	2b 58 f4             	sub    -0xc(%eax),%ebx
451f71:	8b c3                	mov    %ebx,%eax
451f73:	5f                   	pop    %edi
451f74:	5e                   	pop    %esi
451f75:	5b                   	pop    %ebx
451f76:	5d                   	pop    %ebp
451f77:	c3                   	ret
451f78:	55                   	push   %ebp
451f79:	8b ec                	mov    %esp,%ebp
451f7b:	83 c4 f4             	add    $0xfffffff4,%esp
451f7e:	53                   	push   %ebx
451f7f:	88 4d fa             	mov    %cl,-0x6(%ebp)
451f82:	88 55 fb             	mov    %dl,-0x5(%ebp)
451f85:	89 45 fc             	mov    %eax,-0x4(%ebp)
451f88:	6a f0                	push   $0xfffffff0
451f8a:	8b 45 fc             	mov    -0x4(%ebp),%eax
451f8d:	8b 40 04             	mov    0x4(%eax),%eax
451f90:	e8 c7 f4 fe ff       	call   0x44145c
451f95:	50                   	push   %eax
451f96:	e8 15 47 fb ff       	call   0x4066b0
451f9b:	a9 00 00 84 00       	test   $0x840000,%eax
451fa0:	0f 95 c0             	setne  %al
451fa3:	83 e0 7f             	and    $0x7f,%eax
451fa6:	89 45 f4             	mov    %eax,-0xc(%ebp)
451fa9:	8b 45 fc             	mov    -0x4(%ebp),%eax
451fac:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
451fb0:	75 20                	jne    0x451fd2
451fb2:	55                   	push   %ebp
451fb3:	66 ba 15 00          	mov    $0x15,%dx
451fb7:	33 c0                	xor    %eax,%eax
451fb9:	e8 3e ff ff ff       	call   0x451efc
451fbe:	59                   	pop    %ecx
451fbf:	8b d8                	mov    %eax,%ebx
451fc1:	8b 45 fc             	mov    -0x4(%ebp),%eax
451fc4:	8b 40 04             	mov    0x4(%eax),%eax
451fc7:	e8 fc 86 fe ff       	call   0x43a6c8
451fcc:	03 d8                	add    %eax,%ebx
451fce:	8b c3                	mov    %ebx,%eax
451fd0:	eb 20                	jmp    0x451ff2
451fd2:	55                   	push   %ebp
451fd3:	66 ba 14 00          	mov    $0x14,%dx
451fd7:	66 b8 01 00          	mov    $0x1,%ax
451fdb:	e8 1c ff ff ff       	call   0x451efc
451fe0:	59                   	pop    %ecx
451fe1:	8b d8                	mov    %eax,%ebx
451fe3:	8b 45 fc             	mov    -0x4(%ebp),%eax
451fe6:	8b 40 04             	mov    0x4(%eax),%eax
451fe9:	e8 96 86 fe ff       	call   0x43a684
451fee:	03 d8                	add    %eax,%ebx
451ff0:	8b c3                	mov    %ebx,%eax
451ff2:	5b                   	pop    %ebx
451ff3:	8b e5                	mov    %ebp,%esp
451ff5:	5d                   	pop    %ebp
451ff6:	c3                   	ret
451ff7:	90                   	nop
451ff8:	53                   	push   %ebx
451ff9:	8b d8                	mov    %eax,%ebx
451ffb:	33 c9                	xor    %ecx,%ecx
451ffd:	33 d2                	xor    %edx,%edx
451fff:	8b c3                	mov    %ebx,%eax
452001:	e8 72 ff ff ff       	call   0x451f78
452006:	3b 43 10             	cmp    0x10(%ebx),%eax
452009:	0f 9c c0             	setl   %al
45200c:	5b                   	pop    %ebx
45200d:	c3                   	ret
45200e:	8b c0                	mov    %eax,%eax
452010:	55                   	push   %ebp
452011:	8b ec                	mov    %esp,%ebp
452013:	83 c4 e4             	add    $0xffffffe4,%esp
452016:	53                   	push   %ebx
452017:	56                   	push   %esi
452018:	c7 45 e4 1c 00 00 00 	movl   $0x1c,-0x1c(%ebp)
45201f:	c7 45 e8 10 00 00 00 	movl   $0x10,-0x18(%ebp)
452026:	33 db                	xor    %ebx,%ebx
452028:	8b 45 08             	mov    0x8(%ebp),%eax
45202b:	8b 40 fc             	mov    -0x4(%eax),%eax
45202e:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
452032:	75 05                	jne    0x452039
452034:	bb 01 00 00 00       	mov    $0x1,%ebx
452039:	8b 45 08             	mov    0x8(%ebp),%eax
45203c:	8b 70 f8             	mov    -0x8(%eax),%esi
45203f:	0f bf 76 06          	movswl 0x6(%esi),%esi
452043:	8d 45 e4             	lea    -0x1c(%ebp),%eax
452046:	50                   	push   %eax
452047:	53                   	push   %ebx
452048:	8b 45 08             	mov    0x8(%ebp),%eax
45204b:	8b 40 fc             	mov    -0x4(%eax),%eax
45204e:	8b 40 04             	mov    0x4(%eax),%eax
452051:	e8 06 f4 fe ff       	call   0x44145c
452056:	50                   	push   %eax
452057:	a1 bc 7c 46 00       	mov    0x467cbc,%eax
45205c:	8b 00                	mov    (%eax),%eax
45205e:	ff d0                	call   *%eax
452060:	85 c0                	test   %eax,%eax
452062:	74 03                	je     0x452067
452064:	8b 75 fc             	mov    -0x4(%ebp),%esi
452067:	8b c6                	mov    %esi,%eax
452069:	5e                   	pop    %esi
45206a:	5b                   	pop    %ebx
45206b:	8b e5                	mov    %ebp,%esp
45206d:	5d                   	pop    %ebp
45206e:	c3                   	ret
45206f:	90                   	nop
452070:	55                   	push   %ebp
452071:	8b ec                	mov    %esp,%ebp
452073:	83 c4 f0             	add    $0xfffffff0,%esp
452076:	53                   	push   %ebx
452077:	56                   	push   %esi
452078:	57                   	push   %edi
452079:	89 55 f8             	mov    %edx,-0x8(%ebp)
45207c:	89 45 fc             	mov    %eax,-0x4(%ebp)
45207f:	8b 45 fc             	mov    -0x4(%ebp),%eax
452082:	80 78 1f 00          	cmpb   $0x0,0x1f(%eax)
452086:	0f 84 9e 01 00 00    	je     0x45222a
45208c:	8b 45 f8             	mov    -0x8(%ebp),%eax
45208f:	66 8b 40 04          	mov    0x4(%eax),%ax
452093:	66 83 e8 04          	sub    $0x4,%ax
452097:	0f 83 8d 01 00 00    	jae    0x45222a
45209d:	8b 45 f8             	mov    -0x8(%ebp),%eax
4520a0:	66 8b 40 04          	mov    0x4(%eax),%ax
4520a4:	66 83 e8 02          	sub    $0x2,%ax
4520a8:	72 08                	jb     0x4520b2
4520aa:	66 83 e8 02          	sub    $0x2,%ax
4520ae:	72 23                	jb     0x4520d3
4520b0:	eb 47                	jmp    0x4520f9
4520b2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4520b5:	0f b7 58 08          	movzwl 0x8(%eax),%ebx
4520b9:	8b c3                	mov    %ebx,%eax
4520bb:	8b 55 fc             	mov    -0x4(%ebp),%edx
4520be:	8b 4a 40             	mov    0x40(%edx),%ecx
4520c1:	99                   	cltd
4520c2:	f7 f9                	idiv   %ecx
4520c4:	89 45 f4             	mov    %eax,-0xc(%ebp)
4520c7:	8b c3                	mov    %ebx,%eax
4520c9:	99                   	cltd
4520ca:	f7 f9                	idiv   %ecx
4520cc:	89 55 f0             	mov    %edx,-0x10(%ebp)
4520cf:	8b f1                	mov    %ecx,%esi
4520d1:	eb 32                	jmp    0x452105
4520d3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4520d6:	0f b7 40 0a          	movzwl 0xa(%eax),%eax
4520da:	89 45 f4             	mov    %eax,-0xc(%ebp)
4520dd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4520e0:	8b 48 3c             	mov    0x3c(%eax),%ecx
4520e3:	8b 45 f4             	mov    -0xc(%ebp),%eax
4520e6:	99                   	cltd
4520e7:	f7 f9                	idiv   %ecx
4520e9:	89 55 f0             	mov    %edx,-0x10(%ebp)
4520ec:	8b 45 f4             	mov    -0xc(%ebp),%eax
4520ef:	99                   	cltd
4520f0:	f7 f9                	idiv   %ecx
4520f2:	89 45 f4             	mov    %eax,-0xc(%ebp)
4520f5:	8b f1                	mov    %ecx,%esi
4520f7:	eb 0c                	jmp    0x452105
4520f9:	33 f6                	xor    %esi,%esi
4520fb:	33 c0                	xor    %eax,%eax
4520fd:	89 45 f4             	mov    %eax,-0xc(%ebp)
452100:	33 c0                	xor    %eax,%eax
452102:	89 45 f0             	mov    %eax,-0x10(%ebp)
452105:	33 ff                	xor    %edi,%edi
452107:	85 f6                	test   %esi,%esi
452109:	0f 8e 9b 00 00 00    	jle    0x4521aa
45210f:	e8 18 48 fb ff       	call   0x40692c
452114:	8b d8                	mov    %eax,%ebx
452116:	8b c3                	mov    %ebx,%eax
452118:	2b c7                	sub    %edi,%eax
45211a:	8b 55 fc             	mov    -0x4(%ebp),%edx
45211d:	8b 52 20             	mov    0x20(%edx),%edx
452120:	3b c2                	cmp    %edx,%eax
452122:	7d 08                	jge    0x45212c
452124:	2b d0                	sub    %eax,%edx
452126:	52                   	push   %edx
452127:	e8 b4 aa fb ff       	call   0x40cbe0
45212c:	8b fb                	mov    %ebx,%edi
45212e:	8b 45 f8             	mov    -0x8(%ebp),%eax
452131:	66 8b 40 04          	mov    0x4(%eax),%ax
452135:	66 83 e8 01          	sub    $0x1,%ax
452139:	72 0e                	jb     0x452149
45213b:	74 1f                	je     0x45215c
45213d:	66 ff c8             	dec    %ax
452140:	74 2d                	je     0x45216f
452142:	66 ff c8             	dec    %ax
452145:	74 3b                	je     0x452182
452147:	eb 4a                	jmp    0x452193
452149:	8b 45 fc             	mov    -0x4(%ebp),%eax
45214c:	8b 50 0c             	mov    0xc(%eax),%edx
45214f:	2b 55 f4             	sub    -0xc(%ebp),%edx
452152:	8b 45 fc             	mov    -0x4(%ebp),%eax
452155:	e8 86 02 00 00       	call   0x4523e0
45215a:	eb 37                	jmp    0x452193
45215c:	8b 45 fc             	mov    -0x4(%ebp),%eax
45215f:	8b 50 0c             	mov    0xc(%eax),%edx
452162:	03 55 f4             	add    -0xc(%ebp),%edx
452165:	8b 45 fc             	mov    -0x4(%ebp),%eax
452168:	e8 73 02 00 00       	call   0x4523e0
45216d:	eb 24                	jmp    0x452193
45216f:	8b 45 fc             	mov    -0x4(%ebp),%eax
452172:	8b 50 0c             	mov    0xc(%eax),%edx
452175:	2b 55 f4             	sub    -0xc(%ebp),%edx
452178:	8b 45 fc             	mov    -0x4(%ebp),%eax
45217b:	e8 60 02 00 00       	call   0x4523e0
452180:	eb 11                	jmp    0x452193
452182:	8b 45 fc             	mov    -0x4(%ebp),%eax
452185:	8b 50 0c             	mov    0xc(%eax),%edx
452188:	03 55 f4             	add    -0xc(%ebp),%edx
45218b:	8b 45 fc             	mov    -0x4(%ebp),%eax
45218e:	e8 4d 02 00 00       	call   0x4523e0
452193:	8b 45 fc             	mov    -0x4(%ebp),%eax
452196:	8b 40 04             	mov    0x4(%eax),%eax
452199:	8b 10                	mov    (%eax),%edx
45219b:	ff 92 88 00 00 00    	call   *0x88(%edx)
4521a1:	4e                   	dec    %esi
4521a2:	85 f6                	test   %esi,%esi
4521a4:	0f 8f 65 ff ff ff    	jg     0x45210f
4521aa:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
4521ae:	0f 8e aa 01 00 00    	jle    0x45235e
4521b4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4521b7:	66 8b 40 04          	mov    0x4(%eax),%ax
4521bb:	66 83 e8 01          	sub    $0x1,%ax
4521bf:	72 11                	jb     0x4521d2
4521c1:	74 25                	je     0x4521e8
4521c3:	66 ff c8             	dec    %ax
4521c6:	74 36                	je     0x4521fe
4521c8:	66 ff c8             	dec    %ax
4521cb:	74 47                	je     0x452214
4521cd:	e9 8c 01 00 00       	jmp    0x45235e
4521d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4521d5:	8b 50 0c             	mov    0xc(%eax),%edx
4521d8:	2b 55 f0             	sub    -0x10(%ebp),%edx
4521db:	8b 45 fc             	mov    -0x4(%ebp),%eax
4521de:	e8 fd 01 00 00       	call   0x4523e0
4521e3:	e9 76 01 00 00       	jmp    0x45235e
4521e8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4521eb:	8b 50 0c             	mov    0xc(%eax),%edx
4521ee:	03 55 f0             	add    -0x10(%ebp),%edx
4521f1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4521f4:	e8 e7 01 00 00       	call   0x4523e0
4521f9:	e9 60 01 00 00       	jmp    0x45235e
4521fe:	8b 45 fc             	mov    -0x4(%ebp),%eax