415e90:	e8 f9 c2 ff ff       	call   0x41218e
415e95:	8b c8                	mov    %eax,%ecx
415e97:	23 ca                	and    %edx,%ecx
415e99:	83 c4 10             	add    $0x10,%esp
415e9c:	83 f9 ff             	cmp    $0xffffffff,%ecx
415e9f:	74 41                	je     0x415ee2
415ea1:	8b 75 0c             	mov    0xc(%ebp),%esi
415ea4:	8b 7d 10             	mov    0x10(%ebp),%edi
415ea7:	2b f0                	sub    %eax,%esi
415ea9:	1b fa                	sbb    %edx,%edi
415eab:	0f 88 c6 00 00 00    	js     0x415f77
415eb1:	7f 08                	jg     0x415ebb
415eb3:	3b f3                	cmp    %ebx,%esi
415eb5:	0f 86 bc 00 00 00    	jbe    0x415f77
415ebb:	bb 00 10 00 00       	mov    $0x1000,%ebx
415ec0:	53                   	push   %ebx
415ec1:	6a 08                	push   $0x8
415ec3:	ff 15 88 a1 41 00    	call   *0x41a188
415ec9:	50                   	push   %eax
415eca:	ff 15 d4 a0 41 00    	call   *0x41a0d4
415ed0:	89 45 fc             	mov    %eax,-0x4(%ebp)
415ed3:	85 c0                	test   %eax,%eax
415ed5:	75 17                	jne    0x415eee
415ed7:	e8 f9 fb fe ff       	call   0x405ad5
415edc:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
415ee2:	e8 ee fb fe ff       	call   0x405ad5
415ee7:	8b 00                	mov    (%eax),%eax
415ee9:	5f                   	pop    %edi
415eea:	5e                   	pop    %esi
415eeb:	5b                   	pop    %ebx
415eec:	c9                   	leave
415eed:	c3                   	ret
415eee:	68 00 80 00 00       	push   $0x8000
415ef3:	ff 75 08             	push   0x8(%ebp)
415ef6:	e8 d7 06 00 00       	call   0x4165d2
415efb:	59                   	pop    %ecx
415efc:	59                   	pop    %ecx
415efd:	89 45 f8             	mov    %eax,-0x8(%ebp)
415f00:	85 ff                	test   %edi,%edi
415f02:	7c 0a                	jl     0x415f0e
415f04:	7f 04                	jg     0x415f0a
415f06:	3b f3                	cmp    %ebx,%esi
415f08:	72 04                	jb     0x415f0e
415f0a:	8b c3                	mov    %ebx,%eax
415f0c:	eb 02                	jmp    0x415f10
415f0e:	8b c6                	mov    %esi,%eax
415f10:	50                   	push   %eax
415f11:	ff 75 fc             	push   -0x4(%ebp)
415f14:	ff 75 08             	push   0x8(%ebp)
415f17:	e8 10 c4 ff ff       	call   0x41232c
415f1c:	83 c4 0c             	add    $0xc,%esp
415f1f:	83 f8 ff             	cmp    $0xffffffff,%eax
415f22:	74 36                	je     0x415f5a
415f24:	99                   	cltd
415f25:	2b f0                	sub    %eax,%esi
415f27:	1b fa                	sbb    %edx,%edi
415f29:	78 06                	js     0x415f31
415f2b:	7f d3                	jg     0x415f00
415f2d:	85 f6                	test   %esi,%esi
415f2f:	77 cf                	ja     0x415f00
415f31:	8b 75 f0             	mov    -0x10(%ebp),%esi
415f34:	ff 75 f8             	push   -0x8(%ebp)
415f37:	ff 75 08             	push   0x8(%ebp)
415f3a:	e8 93 06 00 00       	call   0x4165d2
415f3f:	59                   	pop    %ecx
415f40:	59                   	pop    %ecx
415f41:	ff 75 fc             	push   -0x4(%ebp)
415f44:	6a 00                	push   $0x0
415f46:	ff 15 88 a1 41 00    	call   *0x41a188
415f4c:	50                   	push   %eax
415f4d:	ff 15 9c a0 41 00    	call   *0x41a09c
415f53:	33 db                	xor    %ebx,%ebx
415f55:	e9 86 00 00 00       	jmp    0x415fe0
415f5a:	e8 89 fb fe ff       	call   0x405ae8
415f5f:	83 38 05             	cmpl   $0x5,(%eax)
415f62:	75 0b                	jne    0x415f6f
415f64:	e8 6c fb fe ff       	call   0x405ad5
415f69:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
415f6f:	83 ce ff             	or     $0xffffffff,%esi
415f72:	89 75 f4             	mov    %esi,-0xc(%ebp)
415f75:	eb bd                	jmp    0x415f34
415f77:	3b fb                	cmp    %ebx,%edi
415f79:	7f 71                	jg     0x415fec
415f7b:	7c 04                	jl     0x415f81
415f7d:	3b f3                	cmp    %ebx,%esi
415f7f:	73 6b                	jae    0x415fec
415f81:	53                   	push   %ebx
415f82:	ff 75 10             	push   0x10(%ebp)
415f85:	ff 75 0c             	push   0xc(%ebp)
415f88:	ff 75 08             	push   0x8(%ebp)
415f8b:	e8 fe c1 ff ff       	call   0x41218e
415f90:	23 c2                	and    %edx,%eax
415f92:	83 c4 10             	add    $0x10,%esp
415f95:	83 f8 ff             	cmp    $0xffffffff,%eax
415f98:	0f 84 44 ff ff ff    	je     0x415ee2
415f9e:	ff 75 08             	push   0x8(%ebp)
415fa1:	e8 1b f2 ff ff       	call   0x4151c1
415fa6:	59                   	pop    %ecx
415fa7:	50                   	push   %eax
415fa8:	ff 15 08 a0 41 00    	call   *0x41a008
415fae:	f7 d8                	neg    %eax
415fb0:	1b c0                	sbb    %eax,%eax
415fb2:	f7 d8                	neg    %eax
415fb4:	48                   	dec    %eax
415fb5:	99                   	cltd
415fb6:	89 45 f0             	mov    %eax,-0x10(%ebp)
415fb9:	23 c2                	and    %edx,%eax
415fbb:	89 55 f4             	mov    %edx,-0xc(%ebp)
415fbe:	83 f8 ff             	cmp    $0xffffffff,%eax
415fc1:	75 29                	jne    0x415fec
415fc3:	e8 0d fb fe ff       	call   0x405ad5
415fc8:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
415fce:	e8 15 fb fe ff       	call   0x405ae8
415fd3:	8b f0                	mov    %eax,%esi
415fd5:	ff 15 98 a0 41 00    	call   *0x41a098
415fdb:	89 06                	mov    %eax,(%esi)
415fdd:	8b 75 f0             	mov    -0x10(%ebp),%esi
415fe0:	23 75 f4             	and    -0xc(%ebp),%esi
415fe3:	83 fe ff             	cmp    $0xffffffff,%esi
415fe6:	0f 84 f6 fe ff ff    	je     0x415ee2
415fec:	53                   	push   %ebx
415fed:	ff 75 ec             	push   -0x14(%ebp)
415ff0:	ff 75 e8             	push   -0x18(%ebp)
415ff3:	ff 75 08             	push   0x8(%ebp)
415ff6:	e8 93 c1 ff ff       	call   0x41218e
415ffb:	23 c2                	and    %edx,%eax
415ffd:	83 c4 10             	add    $0x10,%esp
416000:	83 f8 ff             	cmp    $0xffffffff,%eax
416003:	0f 84 d9 fe ff ff    	je     0x415ee2
416009:	33 c0                	xor    %eax,%eax
41600b:	e9 d9 fe ff ff       	jmp    0x415ee9
416010:	8b ff                	mov    %edi,%edi
416012:	55                   	push   %ebp
416013:	8b ec                	mov    %esp,%ebp
416015:	83 ec 1c             	sub    $0x1c,%esp
416018:	8b 55 10             	mov    0x10(%ebp),%edx
41601b:	56                   	push   %esi
41601c:	8b 75 08             	mov    0x8(%ebp),%esi
41601f:	6a fe                	push   $0xfffffffe
416021:	58                   	pop    %eax
416022:	89 45 ec             	mov    %eax,-0x14(%ebp)
416025:	89 55 e4             	mov    %edx,-0x1c(%ebp)
416028:	3b f0                	cmp    %eax,%esi
41602a:	75 1b                	jne    0x416047
41602c:	e8 b7 fa fe ff       	call   0x405ae8
416031:	83 20 00             	andl   $0x0,(%eax)
416034:	e8 9c fa fe ff       	call   0x405ad5
416039:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
41603f:	83 c8 ff             	or     $0xffffffff,%eax
416042:	e9 88 05 00 00       	jmp    0x4165cf
416047:	53                   	push   %ebx
416048:	33 db                	xor    %ebx,%ebx
41604a:	3b f3                	cmp    %ebx,%esi
41604c:	7c 08                	jl     0x416056
41604e:	3b 35 44 12 c7 00    	cmp    0xc71244,%esi
416054:	72 27                	jb     0x41607d
416056:	e8 8d fa fe ff       	call   0x405ae8
41605b:	89 18                	mov    %ebx,(%eax)
41605d:	e8 73 fa fe ff       	call   0x405ad5
416062:	53                   	push   %ebx
416063:	53                   	push   %ebx
416064:	53                   	push   %ebx
416065:	53                   	push   %ebx
416066:	53                   	push   %ebx
416067:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
41606d:	e8 b3 f1 fe ff       	call   0x405225
416072:	83 c4 14             	add    $0x14,%esp
416075:	83 c8 ff             	or     $0xffffffff,%eax
416078:	e9 51 05 00 00       	jmp    0x4165ce
41607d:	8b c6                	mov    %esi,%eax
41607f:	c1 f8 05             	sar    $0x5,%eax
416082:	57                   	push   %edi
416083:	8d 3c 85 60 12 c7 00 	lea    0xc71260(,%eax,4),%edi
41608a:	8b 07                	mov    (%edi),%eax
41608c:	83 e6 1f             	and    $0x1f,%esi
41608f:	c1 e6 06             	shl    $0x6,%esi
416092:	03 c6                	add    %esi,%eax
416094:	8a 48 04             	mov    0x4(%eax),%cl
416097:	f6 c1 01             	test   $0x1,%cl
41609a:	75 14                	jne    0x4160b0
41609c:	e8 47 fa fe ff       	call   0x405ae8
4160a1:	89 18                	mov    %ebx,(%eax)
4160a3:	e8 2d fa fe ff       	call   0x405ad5
4160a8:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4160ae:	eb 6a                	jmp    0x41611a
4160b0:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
4160b6:	77 50                	ja     0x416108
4160b8:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4160bb:	3b d3                	cmp    %ebx,%edx
4160bd:	0f 84 08 05 00 00    	je     0x4165cb
4160c3:	f6 c1 02             	test   $0x2,%cl
4160c6:	0f 85 ff 04 00 00    	jne    0x4165cb
4160cc:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
4160cf:	74 37                	je     0x416108
4160d1:	8a 40 24             	mov    0x24(%eax),%al
4160d4:	02 c0                	add    %al,%al
4160d6:	d0 f8                	sar    $1,%al
4160d8:	88 45 fe             	mov    %al,-0x2(%ebp)
4160db:	0f be c0             	movsbl %al,%eax
4160de:	48                   	dec    %eax
4160df:	6a 04                	push   $0x4
4160e1:	59                   	pop    %ecx
4160e2:	74 1c                	je     0x416100
4160e4:	48                   	dec    %eax
4160e5:	75 0e                	jne    0x4160f5
4160e7:	8b c2                	mov    %edx,%eax
4160e9:	f7 d0                	not    %eax
4160eb:	a8 01                	test   $0x1,%al
4160ed:	74 19                	je     0x416108
4160ef:	83 e2 fe             	and    $0xfffffffe,%edx
4160f2:	89 55 10             	mov    %edx,0x10(%ebp)
4160f5:	8b 45 0c             	mov    0xc(%ebp),%eax
4160f8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4160fb:	e9 81 00 00 00       	jmp    0x416181
416100:	8b c2                	mov    %edx,%eax
416102:	f7 d0                	not    %eax
416104:	a8 01                	test   $0x1,%al
416106:	75 21                	jne    0x416129
416108:	e8 db f9 fe ff       	call   0x405ae8
41610d:	89 18                	mov    %ebx,(%eax)
41610f:	e8 c1 f9 fe ff       	call   0x405ad5
416114:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41611a:	53                   	push   %ebx
41611b:	53                   	push   %ebx
41611c:	53                   	push   %ebx
41611d:	53                   	push   %ebx
41611e:	53                   	push   %ebx
41611f:	e8 01 f1 fe ff       	call   0x405225
416124:	83 c4 14             	add    $0x14,%esp
416127:	eb 34                	jmp    0x41615d
416129:	8b c2                	mov    %edx,%eax
41612b:	d1 e8                	shr    $1,%eax
41612d:	89 4d 10             	mov    %ecx,0x10(%ebp)
416130:	3b c1                	cmp    %ecx,%eax
416132:	72 03                	jb     0x416137
416134:	89 45 10             	mov    %eax,0x10(%ebp)
416137:	ff 75 10             	push   0x10(%ebp)
41613a:	e8 21 1a ff ff       	call   0x407b60
41613f:	59                   	pop    %ecx
416140:	89 45 f4             	mov    %eax,-0xc(%ebp)
416143:	3b c3                	cmp    %ebx,%eax
416145:	75 1e                	jne    0x416165
416147:	e8 89 f9 fe ff       	call   0x405ad5
41614c:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
416152:	e8 91 f9 fe ff       	call   0x405ae8
416157:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
41615d:	83 c8 ff             	or     $0xffffffff,%eax
416160:	e9 68 04 00 00       	jmp    0x4165cd
416165:	6a 01                	push   $0x1
416167:	53                   	push   %ebx
416168:	53                   	push   %ebx
416169:	ff 75 08             	push   0x8(%ebp)
41616c:	e8 1d c0 ff ff       	call   0x41218e
416171:	8b 0f                	mov    (%edi),%ecx
416173:	89 44 0e 28          	mov    %eax,0x28(%esi,%ecx,1)
416177:	8b 45 f4             	mov    -0xc(%ebp),%eax
41617a:	83 c4 10             	add    $0x10,%esp
41617d:	89 54 0e 2c          	mov    %edx,0x2c(%esi,%ecx,1)
416181:	8b 0f                	mov    (%edi),%ecx
416183:	03 ce                	add    %esi,%ecx
416185:	f6 41 04 48          	testb  $0x48,0x4(%ecx)
416189:	74 74                	je     0x4161ff
41618b:	8a 49 05             	mov    0x5(%ecx),%cl
41618e:	80 f9 0a             	cmp    $0xa,%cl
416191:	74 6c                	je     0x4161ff
416193:	39 5d 10             	cmp    %ebx,0x10(%ebp)
416196:	74 67                	je     0x4161ff
416198:	88 08                	mov    %cl,(%eax)
41619a:	8b 0f                	mov    (%edi),%ecx
41619c:	40                   	inc    %eax
41619d:	ff 4d 10             	decl   0x10(%ebp)
4161a0:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
4161a7:	c6 44 0e 05 0a       	movb   $0xa,0x5(%esi,%ecx,1)
4161ac:	38 5d fe             	cmp    %bl,-0x2(%ebp)
4161af:	74 4e                	je     0x4161ff
4161b1:	8b 0f                	mov    (%edi),%ecx
4161b3:	8a 4c 0e 25          	mov    0x25(%esi,%ecx,1),%cl
4161b7:	80 f9 0a             	cmp    $0xa,%cl
4161ba:	74 43                	je     0x4161ff
4161bc:	39 5d 10             	cmp    %ebx,0x10(%ebp)
4161bf:	74 3e                	je     0x4161ff
4161c1:	88 08                	mov    %cl,(%eax)
4161c3:	8b 0f                	mov    (%edi),%ecx
4161c5:	40                   	inc    %eax
4161c6:	ff 4d 10             	decl   0x10(%ebp)
4161c9:	80 7d fe 01          	cmpb   $0x1,-0x2(%ebp)
4161cd:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
4161d4:	c6 44 0e 25 0a       	movb   $0xa,0x25(%esi,%ecx,1)
4161d9:	75 24                	jne    0x4161ff
4161db:	8b 0f                	mov    (%edi),%ecx
4161dd:	8a 4c 0e 26          	mov    0x26(%esi,%ecx,1),%cl
4161e1:	80 f9 0a             	cmp    $0xa,%cl
4161e4:	74 19                	je     0x4161ff
4161e6:	39 5d 10             	cmp    %ebx,0x10(%ebp)
4161e9:	74 14                	je     0x4161ff
4161eb:	88 08                	mov    %cl,(%eax)
4161ed:	8b 0f                	mov    (%edi),%ecx
4161ef:	40                   	inc    %eax
4161f0:	ff 4d 10             	decl   0x10(%ebp)
4161f3:	c7 45 f0 03 00 00 00 	movl   $0x3,-0x10(%ebp)
4161fa:	c6 44 0e 26 0a       	movb   $0xa,0x26(%esi,%ecx,1)
4161ff:	53                   	push   %ebx
416200:	8d 4d e8             	lea    -0x18(%ebp),%ecx
416203:	51                   	push   %ecx
416204:	ff 75 10             	push   0x10(%ebp)
416207:	50                   	push   %eax
416208:	8b 07                	mov    (%edi),%eax
41620a:	ff 34 06             	push   (%esi,%eax,1)
41620d:	ff 15 8c a1 41 00    	call   *0x41a18c
416213:	85 c0                	test   %eax,%eax
416215:	0f 84 7b 03 00 00    	je     0x416596
41621b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41621e:	3b cb                	cmp    %ebx,%ecx
416220:	0f 8c 70 03 00 00    	jl     0x416596
416226:	3b 4d 10             	cmp    0x10(%ebp),%ecx
416229:	0f 87 67 03 00 00    	ja     0x416596
41622f:	8b 07                	mov    (%edi),%eax
416231:	01 4d f0             	add    %ecx,-0x10(%ebp)
416234:	8d 44 06 04          	lea    0x4(%esi,%eax,1),%eax
416238:	f6 00 80             	testb  $0x80,(%eax)
41623b:	0f 84 e6 01 00 00    	je     0x416427
416241:	80 7d fe 02          	cmpb   $0x2,-0x2(%ebp)
416245:	0f 84 16 02 00 00    	je     0x416461
41624b:	3b cb                	cmp    %ebx,%ecx
41624d:	74 0d                	je     0x41625c
41624f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
416252:	80 39 0a             	cmpb   $0xa,(%ecx)
416255:	75 05                	jne    0x41625c
416257:	80 08 04             	orb    $0x4,(%eax)
41625a:	eb 03                	jmp    0x41625f
41625c:	80 20 fb             	andb   $0xfb,(%eax)
41625f:	8b 5d f4             	mov    -0xc(%ebp),%ebx
416262:	8b 45 f0             	mov    -0x10(%ebp),%eax
416265:	03 c3                	add    %ebx,%eax
416267:	89 5d 10             	mov    %ebx,0x10(%ebp)
41626a:	89 45 f0             	mov    %eax,-0x10(%ebp)
41626d:	3b d8                	cmp    %eax,%ebx
41626f:	0f 83 d0 00 00 00    	jae    0x416345
416275:	8b 4d 10             	mov    0x10(%ebp),%ecx
416278:	8a 01                	mov    (%ecx),%al
41627a:	3c 1a                	cmp    $0x1a,%al
41627c:	0f 84 ae 00 00 00    	je     0x416330
416282:	3c 0d                	cmp    $0xd,%al
416284:	74 0c                	je     0x416292
416286:	88 03                	mov    %al,(%ebx)
416288:	43                   	inc    %ebx
416289:	41                   	inc    %ecx
41628a:	89 4d 10             	mov    %ecx,0x10(%ebp)
41628d:	e9 90 00 00 00       	jmp    0x416322
416292:	8b 45 f0             	mov    -0x10(%ebp),%eax