41ef14:	68 48 ef 41 00       	push   $0x41ef48
41ef19:	64 ff 30             	push   %fs:(%eax)
41ef1c:	64 89 20             	mov    %esp,%fs:(%eax)
41ef1f:	8b 55 08             	mov    0x8(%ebp),%edx
41ef22:	b1 01                	mov    $0x1,%cl
41ef24:	8b 45 f4             	mov    -0xc(%ebp),%eax
41ef27:	e8 b8 f6 ff ff       	call   0x41e5e4
41ef2c:	8b 55 f8             	mov    -0x8(%ebp),%edx
41ef2f:	89 02                	mov    %eax,(%edx)
41ef31:	33 c0                	xor    %eax,%eax
41ef33:	5a                   	pop    %edx
41ef34:	59                   	pop    %ecx
41ef35:	59                   	pop    %ecx
41ef36:	64 89 10             	mov    %edx,%fs:(%eax)
41ef39:	68 4f ef 41 00       	push   $0x41ef4f
41ef3e:	8b 45 f4             	mov    -0xc(%ebp),%eax
41ef41:	50                   	push   %eax
41ef42:	e8 15 73 fe ff       	call   0x40625c
41ef47:	c3                   	ret
41ef48:	e9 4f 4a fe ff       	jmp    0x40399c
41ef4d:	eb ef                	jmp    0x41ef3e
41ef4f:	33 c0                	xor    %eax,%eax
41ef51:	5a                   	pop    %edx
41ef52:	59                   	pop    %ecx
41ef53:	59                   	pop    %ecx
41ef54:	64 89 10             	mov    %edx,%fs:(%eax)
41ef57:	68 6f ef 41 00       	push   $0x41ef6f
41ef5c:	8b 45 f0             	mov    -0x10(%ebp),%eax
41ef5f:	50                   	push   %eax
41ef60:	6a 00                	push   $0x0
41ef62:	e8 85 78 fe ff       	call   0x4067ec
41ef67:	c3                   	ret
41ef68:	e9 2f 4a fe ff       	jmp    0x40399c
41ef6d:	eb ed                	jmp    0x41ef5c
41ef6f:	5f                   	pop    %edi
41ef70:	5e                   	pop    %esi
41ef71:	5b                   	pop    %ebx
41ef72:	8b e5                	mov    %ebp,%esp
41ef74:	5d                   	pop    %ebp
41ef75:	c2 04 00             	ret    $0x4
41ef78:	85 c0                	test   %eax,%eax
41ef7a:	75 05                	jne    0x41ef81
41ef7c:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41ef81:	c3                   	ret
41ef82:	8b c0                	mov    %eax,%eax
41ef84:	55                   	push   %ebp
41ef85:	8b ec                	mov    %esp,%ebp
41ef87:	83 c4 f8             	add    $0xfffffff8,%esp
41ef8a:	53                   	push   %ebx
41ef8b:	56                   	push   %esi
41ef8c:	57                   	push   %edi
41ef8d:	89 45 fc             	mov    %eax,-0x4(%ebp)
41ef90:	33 c9                	xor    %ecx,%ecx
41ef92:	8a 0a                	mov    (%edx),%cl
41ef94:	8b 45 08             	mov    0x8(%ebp),%eax
41ef97:	8b 40 08             	mov    0x8(%eax),%eax
41ef9a:	8b 00                	mov    (%eax),%eax
41ef9c:	2b c8                	sub    %eax,%ecx
41ef9e:	33 db                	xor    %ebx,%ebx
41efa0:	8a 5a 01             	mov    0x1(%edx),%bl
41efa3:	8b 55 08             	mov    0x8(%ebp),%edx
41efa6:	8b 52 08             	mov    0x8(%edx),%edx
41efa9:	2b 5a 04             	sub    0x4(%edx),%ebx
41efac:	8b 75 fc             	mov    -0x4(%ebp),%esi
41efaf:	0f b6 36             	movzbl (%esi),%esi
41efb2:	8b 55 08             	mov    0x8(%ebp),%edx
41efb5:	8b 52 08             	mov    0x8(%edx),%edx
41efb8:	2b f0                	sub    %eax,%esi
41efba:	8b 45 fc             	mov    -0x4(%ebp),%eax
41efbd:	0f b6 40 01          	movzbl 0x1(%eax),%eax
41efc1:	8b 55 08             	mov    0x8(%ebp),%edx
41efc4:	8b 52 08             	mov    0x8(%edx),%edx
41efc7:	2b 42 04             	sub    0x4(%edx),%eax
41efca:	89 45 f8             	mov    %eax,-0x8(%ebp)
41efcd:	8b c1                	mov    %ecx,%eax
41efcf:	99                   	cltd
41efd0:	33 c2                	xor    %edx,%eax
41efd2:	2b c2                	sub    %edx,%eax
41efd4:	8b f8                	mov    %eax,%edi
41efd6:	8b c6                	mov    %esi,%eax
41efd8:	99                   	cltd
41efd9:	33 c2                	xor    %edx,%eax
41efdb:	2b c2                	sub    %edx,%eax
41efdd:	3b f8                	cmp    %eax,%edi
41efdf:	7f 26                	jg     0x41f007
41efe1:	85 c9                	test   %ecx,%ecx
41efe3:	7e 04                	jle    0x41efe9
41efe5:	3b f1                	cmp    %ecx,%esi
41efe7:	7c 1e                	jl     0x41f007
41efe9:	8b c3                	mov    %ebx,%eax
41efeb:	99                   	cltd
41efec:	33 c2                	xor    %edx,%eax
41efee:	2b c2                	sub    %edx,%eax
41eff0:	8b c8                	mov    %eax,%ecx
41eff2:	8b 45 f8             	mov    -0x8(%ebp),%eax
41eff5:	99                   	cltd
41eff6:	33 c2                	xor    %edx,%eax
41eff8:	2b c2                	sub    %edx,%eax
41effa:	3b c8                	cmp    %eax,%ecx
41effc:	7f 09                	jg     0x41f007
41effe:	85 db                	test   %ebx,%ebx
41f000:	7e 09                	jle    0x41f00b
41f002:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
41f005:	7e 04                	jle    0x41f00b
41f007:	33 c0                	xor    %eax,%eax
41f009:	eb 02                	jmp    0x41f00d
41f00b:	b0 01                	mov    $0x1,%al
41f00d:	5f                   	pop    %edi
41f00e:	5e                   	pop    %esi
41f00f:	5b                   	pop    %ebx
41f010:	59                   	pop    %ecx
41f011:	59                   	pop    %ecx
41f012:	5d                   	pop    %ebp
41f013:	c3                   	ret
41f014:	55                   	push   %ebp
41f015:	8b ec                	mov    %esp,%ebp
41f017:	83 c4 90             	add    $0xffffff90,%esp
41f01a:	53                   	push   %ebx
41f01b:	56                   	push   %esi
41f01c:	57                   	push   %edi
41f01d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41f020:	89 55 f8             	mov    %edx,-0x8(%ebp)
41f023:	89 45 fc             	mov    %eax,-0x4(%ebp)
41f026:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41f029:	8b 45 f4             	mov    -0xc(%ebp),%eax
41f02c:	c1 e0 04             	shl    $0x4,%eax
41f02f:	89 45 ec             	mov    %eax,-0x14(%ebp)
41f032:	8b 45 ec             	mov    -0x14(%ebp),%eax
41f035:	e8 a6 8a fe ff       	call   0x407ae0
41f03a:	89 45 f0             	mov    %eax,-0x10(%ebp)
41f03d:	33 d2                	xor    %edx,%edx
41f03f:	55                   	push   %ebp
41f040:	68 0b f3 41 00       	push   $0x41f30b
41f045:	64 ff 32             	push   %fs:(%edx)
41f048:	64 89 22             	mov    %esp,%fs:(%edx)
41f04b:	8b 55 f0             	mov    -0x10(%ebp),%edx
41f04e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41f051:	8b 45 fc             	mov    -0x4(%ebp),%eax
41f054:	8b 30                	mov    (%eax),%esi
41f056:	ff 56 0c             	call   *0xc(%esi)
41f059:	8b 03                	mov    (%ebx),%eax
41f05b:	0b 43 04             	or     0x4(%ebx),%eax
41f05e:	75 1b                	jne    0x41f07b
41f060:	6a 0b                	push   $0xb
41f062:	e8 25 76 fe ff       	call   0x40668c
41f067:	8b 55 08             	mov    0x8(%ebp),%edx
41f06a:	89 02                	mov    %eax,(%edx)
41f06c:	6a 0c                	push   $0xc
41f06e:	e8 19 76 fe ff       	call   0x40668c
41f073:	8b 55 08             	mov    0x8(%ebp),%edx
41f076:	89 42 04             	mov    %eax,0x4(%edx)
41f079:	eb 0d                	jmp    0x41f088
41f07b:	8b 45 08             	mov    0x8(%ebp),%eax
41f07e:	8b 13                	mov    (%ebx),%edx
41f080:	89 10                	mov    %edx,(%eax)
41f082:	8b 53 04             	mov    0x4(%ebx),%edx
41f085:	89 50 04             	mov    %edx,0x4(%eax)
41f088:	6a 00                	push   $0x0
41f08a:	e8 0d 75 fe ff       	call   0x40659c
41f08f:	89 45 d8             	mov    %eax,-0x28(%ebp)
41f092:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
41f096:	75 05                	jne    0x41f09d
41f098:	e8 3b f4 ff ff       	call   0x41e4d8
41f09d:	33 d2                	xor    %edx,%edx
41f09f:	55                   	push   %ebp
41f0a0:	68 fd f0 41 00       	push   $0x41f0fd
41f0a5:	64 ff 32             	push   %fs:(%edx)
41f0a8:	64 89 22             	mov    %esp,%fs:(%edx)
41f0ab:	6a 0e                	push   $0xe
41f0ad:	8b 45 d8             	mov    -0x28(%ebp),%eax
41f0b0:	50                   	push   %eax
41f0b1:	e8 f6 71 fe ff       	call   0x4062ac
41f0b6:	8b d8                	mov    %eax,%ebx
41f0b8:	6a 0c                	push   $0xc
41f0ba:	8b 45 d8             	mov    -0x28(%ebp),%eax
41f0bd:	50                   	push   %eax
41f0be:	e8 e9 71 fe ff       	call   0x4062ac
41f0c3:	66 0f af d8          	imul   %ax,%bx
41f0c7:	8b c3                	mov    %ebx,%eax
41f0c9:	66 83 f8 08          	cmp    $0x8,%ax
41f0cd:	76 09                	jbe    0x41f0d8
41f0cf:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
41f0d6:	eb 0c                	jmp    0x41f0e4
41f0d8:	8b c8                	mov    %eax,%ecx
41f0da:	b8 01 00 00 00       	mov    $0x1,%eax
41f0df:	d3 e0                	shl    %cl,%eax
41f0e1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41f0e4:	33 c0                	xor    %eax,%eax
41f0e6:	5a                   	pop    %edx
41f0e7:	59                   	pop    %ecx
41f0e8:	59                   	pop    %ecx
41f0e9:	64 89 10             	mov    %edx,%fs:(%eax)
41f0ec:	68 04 f1 41 00       	push   $0x41f104
41f0f1:	8b 45 d8             	mov    -0x28(%ebp),%eax
41f0f4:	50                   	push   %eax
41f0f5:	6a 00                	push   $0x0
41f0f7:	e8 f0 76 fe ff       	call   0x4067ec
41f0fc:	c3                   	ret
41f0fd:	e9 9a 48 fe ff       	jmp    0x40399c
41f102:	eb ed                	jmp    0x41f0f1
41f104:	33 c0                	xor    %eax,%eax
41f106:	89 45 dc             	mov    %eax,-0x24(%ebp)
41f109:	8b 45 f0             	mov    -0x10(%ebp),%eax
41f10c:	0f b7 40 02          	movzwl 0x2(%eax),%eax
41f110:	e8 63 fe ff ff       	call   0x41ef78
41f115:	89 45 e0             	mov    %eax,-0x20(%ebp)
41f118:	8b 7d f4             	mov    -0xc(%ebp),%edi
41f11b:	4f                   	dec    %edi
41f11c:	85 ff                	test   %edi,%edi
41f11e:	7e 4c                	jle    0x41f16c
41f120:	be 01 00 00 00       	mov    $0x1,%esi
41f125:	8b c6                	mov    %esi,%eax
41f127:	03 c0                	add    %eax,%eax
41f129:	8b 55 f0             	mov    -0x10(%ebp),%edx
41f12c:	0f b7 44 c2 02       	movzwl 0x2(%edx,%eax,8),%eax
41f131:	e8 42 fe ff ff       	call   0x41ef78
41f136:	8b d8                	mov    %eax,%ebx
41f138:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx
41f13b:	7f 2b                	jg     0x41f168
41f13d:	3b 5d e0             	cmp    -0x20(%ebp),%ebx
41f140:	7c 26                	jl     0x41f168
41f142:	55                   	push   %ebp
41f143:	8b c6                	mov    %esi,%eax
41f145:	03 c0                	add    %eax,%eax
41f147:	8b 55 f0             	mov    -0x10(%ebp),%edx
41f14a:	8d 14 c2             	lea    (%edx,%eax,8),%edx
41f14d:	8b 45 dc             	mov    -0x24(%ebp),%eax
41f150:	03 c0                	add    %eax,%eax
41f152:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41f155:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
41f158:	e8 27 fe ff ff       	call   0x41ef84
41f15d:	59                   	pop    %ecx
41f15e:	84 c0                	test   %al,%al
41f160:	74 06                	je     0x41f168
41f162:	89 75 dc             	mov    %esi,-0x24(%ebp)
41f165:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41f168:	46                   	inc    %esi
41f169:	4f                   	dec    %edi
41f16a:	75 b9                	jne    0x41f125
41f16c:	8b 45 dc             	mov    -0x24(%ebp),%eax
41f16f:	03 c0                	add    %eax,%eax
41f171:	8b 55 f0             	mov    -0x10(%ebp),%edx
41f174:	8d 04 c2             	lea    (%edx,%eax,8),%eax
41f177:	89 45 c0             	mov    %eax,-0x40(%ebp)
41f17a:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f17d:	0f b6 00             	movzbl (%eax),%eax
41f180:	8b 55 08             	mov    0x8(%ebp),%edx
41f183:	89 02                	mov    %eax,(%edx)
41f185:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f188:	0f b6 40 01          	movzbl 0x1(%eax),%eax
41f18c:	8b 55 08             	mov    0x8(%ebp),%edx
41f18f:	89 42 04             	mov    %eax,0x4(%edx)
41f192:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f195:	8b 40 08             	mov    0x8(%eax),%eax
41f198:	e8 43 89 fe ff       	call   0x407ae0
41f19d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41f1a0:	33 c0                	xor    %eax,%eax
41f1a2:	55                   	push   %ebp
41f1a3:	68 eb f2 41 00       	push   $0x41f2eb
41f1a8:	64 ff 30             	push   %fs:(%eax)
41f1ab:	64 89 20             	mov    %esp,%fs:(%eax)
41f1ae:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f1b1:	8b 50 0c             	mov    0xc(%eax),%edx
41f1b4:	8b 45 ec             	mov    -0x14(%ebp),%eax
41f1b7:	03 45 10             	add    0x10(%ebp),%eax
41f1ba:	2b d0                	sub    %eax,%edx
41f1bc:	66 b9 01 00          	mov    $0x1,%cx
41f1c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
41f1c3:	8b 18                	mov    (%eax),%ebx
41f1c5:	ff 53 14             	call   *0x14(%ebx)
41f1c8:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f1cb:	8b 48 08             	mov    0x8(%eax),%ecx
41f1ce:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
41f1d1:	8b d3                	mov    %ebx,%edx
41f1d3:	8b 45 fc             	mov    -0x4(%ebp),%eax
41f1d6:	8b 30                	mov    (%eax),%esi
41f1d8:	ff 56 0c             	call   *0xc(%esi)
41f1db:	8b 45 08             	mov    0x8(%ebp),%eax
41f1de:	50                   	push   %eax
41f1df:	8d 4d c8             	lea    -0x38(%ebp),%ecx
41f1e2:	8d 55 cc             	lea    -0x34(%ebp),%edx
41f1e5:	8b c3                	mov    %ebx,%eax
41f1e7:	e8 d0 fb ff ff       	call   0x41edbc
41f1ec:	8d 45 90             	lea    -0x70(%ebp),%eax
41f1ef:	50                   	push   %eax
41f1f0:	6a 18                	push   $0x18
41f1f2:	8b 45 c8             	mov    -0x38(%ebp),%eax
41f1f5:	50                   	push   %eax
41f1f6:	e8 d1 70 fe ff       	call   0x4062cc
41f1fb:	8d 45 a8             	lea    -0x58(%ebp),%eax
41f1fe:	50                   	push   %eax
41f1ff:	6a 18                	push   $0x18
41f201:	8b 45 cc             	mov    -0x34(%ebp),%eax
41f204:	50                   	push   %eax
41f205:	e8 c2 70 fe ff       	call   0x4062cc
41f20a:	8b 5d 9c             	mov    -0x64(%ebp),%ebx
41f20d:	0f af 5d 98          	imul   -0x68(%ebp),%ebx
41f211:	0f b7 45 a0          	movzwl -0x60(%ebp),%eax
41f215:	0f af d8             	imul   %eax,%ebx
41f218:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41f21b:	f7 6d b0             	imull  -0x50(%ebp)
41f21e:	0f b7 55 b8          	movzwl -0x48(%ebp),%edx
41f222:	f7 ea                	imul   %edx
41f224:	89 45 c4             	mov    %eax,-0x3c(%ebp)
41f227:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41f22a:	03 c3                	add    %ebx,%eax
41f22c:	89 45 e8             	mov    %eax,-0x18(%ebp)
41f22f:	8b 45 e8             	mov    -0x18(%ebp),%eax
41f232:	e8 a9 88 fe ff       	call   0x407ae0
41f237:	89 45 d0             	mov    %eax,-0x30(%ebp)
41f23a:	33 c0                	xor    %eax,%eax
41f23c:	55                   	push   %ebp
41f23d:	68 c8 f2 41 00       	push   $0x41f2c8
41f242:	64 ff 30             	push   %fs:(%eax)
41f245:	64 89 20             	mov    %esp,%fs:(%eax)
41f248:	8b 7d d0             	mov    -0x30(%ebp),%edi
41f24b:	8b 75 d0             	mov    -0x30(%ebp),%esi
41f24e:	03 f3                	add    %ebx,%esi
41f250:	57                   	push   %edi
41f251:	53                   	push   %ebx
41f252:	8b 45 c8             	mov    -0x38(%ebp),%eax
41f255:	50                   	push   %eax
41f256:	e8 11 70 fe ff       	call   0x40626c
41f25b:	56                   	push   %esi
41f25c:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41f25f:	50                   	push   %eax
41f260:	8b 45 cc             	mov    -0x34(%ebp),%eax
41f263:	50                   	push   %eax
41f264:	e8 03 70 fe ff       	call   0x40626c
41f269:	8b 45 cc             	mov    -0x34(%ebp),%eax
41f26c:	50                   	push   %eax
41f26d:	e8 ea 6f fe ff       	call   0x40625c
41f272:	8b 45 c8             	mov    -0x38(%ebp),%eax
41f275:	50                   	push   %eax
41f276:	e8 e1 6f fe ff       	call   0x40625c
41f27b:	56                   	push   %esi
41f27c:	57                   	push   %edi
41f27d:	8a 45 ba             	mov    -0x46(%ebp),%al
41f280:	50                   	push   %eax
41f281:	8a 45 b8             	mov    -0x48(%ebp),%al
41f284:	50                   	push   %eax
41f285:	8b 45 08             	mov    0x8(%ebp),%eax
41f288:	8b 40 04             	mov    0x4(%eax),%eax
41f28b:	50                   	push   %eax
41f28c:	8b 45 08             	mov    0x8(%ebp),%eax
41f28f:	8b 00                	mov    (%eax),%eax
41f291:	50                   	push   %eax
41f292:	a1 64 e6 46 00       	mov    0x46e664,%eax
41f297:	50                   	push   %eax
41f298:	e8 c7 71 fe ff       	call   0x406464