409050:	5b                   	pop    %ebx
409051:	c9                   	leave
409052:	c2 10 00             	ret    $0x10
409055:	8b ff                	mov    %edi,%edi
409057:	55                   	push   %ebp
409058:	8b ec                	mov    %esp,%ebp
40905a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40905d:	8d 41 01             	lea    0x1(%ecx),%eax
409060:	3d 00 01 00 00       	cmp    $0x100,%eax
409065:	77 0c                	ja     0x409073
409067:	8b 45 08             	mov    0x8(%ebp),%eax
40906a:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
40906e:	23 45 10             	and    0x10(%ebp),%eax
409071:	5d                   	pop    %ebp
409072:	c3                   	ret
409073:	33 c0                	xor    %eax,%eax
409075:	5d                   	pop    %ebp
409076:	c3                   	ret
409077:	8b ff                	mov    %edi,%edi
409079:	55                   	push   %ebp
40907a:	8b ec                	mov    %esp,%ebp
40907c:	83 ec 5c             	sub    $0x5c,%esp
40907f:	56                   	push   %esi
409080:	ff 75 18             	push   0x18(%ebp)
409083:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
409086:	e8 df d6 ff ff       	call   0x40676a
40908b:	8b 45 1c             	mov    0x1c(%ebp),%eax
40908e:	8b 55 10             	mov    0x10(%ebp),%edx
409091:	8b 75 14             	mov    0x14(%ebp),%esi
409094:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409097:	89 45 f0             	mov    %eax,-0x10(%ebp)
40909a:	8b 45 08             	mov    0x8(%ebp),%eax
40909d:	89 75 f4             	mov    %esi,-0xc(%ebp)
4090a0:	89 55 f8             	mov    %edx,-0x8(%ebp)
4090a3:	89 45 e0             	mov    %eax,-0x20(%ebp)
4090a6:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4090a9:	85 d2                	test   %edx,%edx
4090ab:	75 23                	jne    0x4090d0
4090ad:	8d 45 a4             	lea    -0x5c(%ebp),%eax
4090b0:	c6 45 c0 01          	movb   $0x1,-0x40(%ebp)
4090b4:	50                   	push   %eax
4090b5:	33 c0                	xor    %eax,%eax
4090b7:	c7 45 bc 16 00 00 00 	movl   $0x16,-0x44(%ebp)
4090be:	50                   	push   %eax
4090bf:	50                   	push   %eax
4090c0:	50                   	push   %eax
4090c1:	50                   	push   %eax
4090c2:	50                   	push   %eax
4090c3:	e8 84 e3 ff ff       	call   0x40744c
4090c8:	83 c4 18             	add    $0x18,%esp
4090cb:	83 ce ff             	or     $0xffffffff,%esi
4090ce:	eb 3e                	jmp    0x40910e
4090d0:	85 f6                	test   %esi,%esi
4090d2:	74 d9                	je     0x4090ad
4090d4:	8d 45 f8             	lea    -0x8(%ebp),%eax
4090d7:	89 55 ec             	mov    %edx,-0x14(%ebp)
4090da:	89 45 cc             	mov    %eax,-0x34(%ebp)
4090dd:	8d 4d ff             	lea    -0x1(%ebp),%ecx
4090e0:	8d 45 a4             	lea    -0x5c(%ebp),%eax
4090e3:	89 55 e8             	mov    %edx,-0x18(%ebp)
4090e6:	89 45 d0             	mov    %eax,-0x30(%ebp)
4090e9:	8d 45 e0             	lea    -0x20(%ebp),%eax
4090ec:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4090ef:	8d 45 f4             	lea    -0xc(%ebp),%eax
4090f2:	89 45 d8             	mov    %eax,-0x28(%ebp)
4090f5:	8d 45 f0             	lea    -0x10(%ebp),%eax
4090f8:	89 45 dc             	mov    %eax,-0x24(%ebp)
4090fb:	8d 45 ec             	lea    -0x14(%ebp),%eax
4090fe:	50                   	push   %eax
4090ff:	8d 45 cc             	lea    -0x34(%ebp),%eax
409102:	50                   	push   %eax
409103:	8d 45 e8             	lea    -0x18(%ebp),%eax
409106:	50                   	push   %eax
409107:	e8 1e e4 ff ff       	call   0x40752a
40910c:	8b f0                	mov    %eax,%esi
40910e:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
409111:	e8 9c d6 ff ff       	call   0x4067b2
409116:	8b c6                	mov    %esi,%eax
409118:	5e                   	pop    %esi
409119:	c9                   	leave
40911a:	c3                   	ret
40911b:	8b ff                	mov    %edi,%edi
40911d:	55                   	push   %ebp
40911e:	8b ec                	mov    %esp,%ebp
409120:	8b 0d c0 10 42 00    	mov    0x4210c0,%ecx
409126:	8b 45 08             	mov    0x8(%ebp),%eax
409129:	83 e1 1f             	and    $0x1f,%ecx
40912c:	33 05 c0 10 42 00    	xor    0x4210c0,%eax
409132:	d3 c8                	ror    %cl,%eax
409134:	5d                   	pop    %ebp
409135:	c3                   	ret
409136:	8b ff                	mov    %edi,%edi
409138:	55                   	push   %ebp
409139:	8b ec                	mov    %esp,%ebp
40913b:	8b 45 08             	mov    0x8(%ebp),%eax
40913e:	a3 4c 1e 42 00       	mov    %eax,0x421e4c
409143:	5d                   	pop    %ebp
409144:	c3                   	ret
409145:	8b ff                	mov    %edi,%edi
409147:	55                   	push   %ebp
409148:	8b ec                	mov    %esp,%ebp
40914a:	56                   	push   %esi
40914b:	e8 21 00 00 00       	call   0x409171
409150:	8b f0                	mov    %eax,%esi
409152:	85 f6                	test   %esi,%esi
409154:	74 16                	je     0x40916c
409156:	ff 75 08             	push   0x8(%ebp)
409159:	8b ce                	mov    %esi,%ecx
40915b:	ff 15 54 91 41 00    	call   *0x419154
409161:	ff d6                	call   *%esi
409163:	f7 d8                	neg    %eax
409165:	59                   	pop    %ecx
409166:	1b c0                	sbb    %eax,%eax
409168:	f7 d8                	neg    %eax
40916a:	eb 02                	jmp    0x40916e
40916c:	33 c0                	xor    %eax,%eax
40916e:	5e                   	pop    %esi
40916f:	5d                   	pop    %ebp
409170:	c3                   	ret
409171:	6a 0c                	push   $0xc
409173:	68 c0 fe 41 00       	push   $0x41fec0
409178:	e8 23 ad ff ff       	call   0x403ea0
40917d:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
409181:	6a 00                	push   $0x0
409183:	e8 04 4e 00 00       	call   0x40df8c
409188:	59                   	pop    %ecx
409189:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40918d:	ff 35 4c 1e 42 00    	push   0x421e4c
409193:	e8 83 ff ff ff       	call   0x40911b
409198:	59                   	pop    %ecx
409199:	8b f0                	mov    %eax,%esi
40919b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40919e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4091a5:	e8 15 00 00 00       	call   0x4091bf
4091aa:	8b c6                	mov    %esi,%eax
4091ac:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4091af:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4091b6:	59                   	pop    %ecx
4091b7:	5f                   	pop    %edi
4091b8:	5e                   	pop    %esi
4091b9:	5b                   	pop    %ebx
4091ba:	c9                   	leave
4091bb:	c3                   	ret
4091bc:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4091bf:	6a 00                	push   $0x0
4091c1:	e8 0e 4e 00 00       	call   0x40dfd4
4091c6:	59                   	pop    %ecx
4091c7:	c3                   	ret
4091c8:	8b ff                	mov    %edi,%edi
4091ca:	55                   	push   %ebp
4091cb:	8b ec                	mov    %esp,%ebp
4091cd:	5d                   	pop    %ebp
4091ce:	e9 ff 3d 00 00       	jmp    0x40cfd2
4091d3:	8b ff                	mov    %edi,%edi
4091d5:	55                   	push   %ebp
4091d6:	8b ec                	mov    %esp,%ebp
4091d8:	51                   	push   %ecx
4091d9:	ff 75 08             	push   0x8(%ebp)
4091dc:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4091e3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4091e6:	e8 b4 15 00 00       	call   0x40a79f
4091eb:	59                   	pop    %ecx
4091ec:	c9                   	leave
4091ed:	c3                   	ret
4091ee:	8b ff                	mov    %edi,%edi
4091f0:	55                   	push   %ebp
4091f1:	8b ec                	mov    %esp,%ebp
4091f3:	51                   	push   %ecx
4091f4:	56                   	push   %esi
4091f5:	57                   	push   %edi
4091f6:	e8 03 33 00 00       	call   0x40c4fe
4091fb:	8b f0                	mov    %eax,%esi
4091fd:	85 f6                	test   %esi,%esi
4091ff:	74 1c                	je     0x40921d
409201:	8b 16                	mov    (%esi),%edx
409203:	8b ca                	mov    %edx,%ecx
409205:	8d 82 90 00 00 00    	lea    0x90(%edx),%eax
40920b:	3b d0                	cmp    %eax,%edx
40920d:	74 0e                	je     0x40921d
40920f:	8b 7d 08             	mov    0x8(%ebp),%edi
409212:	39 39                	cmp    %edi,(%ecx)
409214:	74 0d                	je     0x409223
409216:	83 c1 0c             	add    $0xc,%ecx
409219:	3b c8                	cmp    %eax,%ecx
40921b:	75 f5                	jne    0x409212
40921d:	33 c0                	xor    %eax,%eax
40921f:	5f                   	pop    %edi
409220:	5e                   	pop    %esi
409221:	c9                   	leave
409222:	c3                   	ret
409223:	85 c9                	test   %ecx,%ecx
409225:	74 f6                	je     0x40921d
409227:	8b 79 08             	mov    0x8(%ecx),%edi
40922a:	85 ff                	test   %edi,%edi
40922c:	74 ef                	je     0x40921d
40922e:	83 ff 05             	cmp    $0x5,%edi
409231:	75 09                	jne    0x40923c
409233:	83 61 08 00          	andl   $0x0,0x8(%ecx)
409237:	33 c0                	xor    %eax,%eax
409239:	40                   	inc    %eax
40923a:	eb e3                	jmp    0x40921f
40923c:	83 ff 01             	cmp    $0x1,%edi
40923f:	75 05                	jne    0x409246
409241:	83 c8 ff             	or     $0xffffffff,%eax
409244:	eb d9                	jmp    0x40921f
409246:	8b 46 04             	mov    0x4(%esi),%eax
409249:	89 45 fc             	mov    %eax,-0x4(%ebp)
40924c:	8b 45 0c             	mov    0xc(%ebp),%eax
40924f:	89 46 04             	mov    %eax,0x4(%esi)
409252:	83 79 04 08          	cmpl   $0x8,0x4(%ecx)
409256:	0f 85 bb 00 00 00    	jne    0x409317
40925c:	83 c2 24             	add    $0x24,%edx
40925f:	8d 42 6c             	lea    0x6c(%edx),%eax
409262:	eb 07                	jmp    0x40926b
409264:	83 62 08 00          	andl   $0x0,0x8(%edx)
409268:	83 c2 0c             	add    $0xc,%edx
40926b:	3b d0                	cmp    %eax,%edx
40926d:	75 f5                	jne    0x409264
40926f:	b8 91 00 00 c0       	mov    $0xc0000091,%eax
409274:	53                   	push   %ebx
409275:	8b 5e 08             	mov    0x8(%esi),%ebx
409278:	39 01                	cmp    %eax,(%ecx)
40927a:	77 47                	ja     0x4092c3
40927c:	74 3e                	je     0x4092bc
40927e:	81 39 8d 00 00 c0    	cmpl   $0xc000008d,(%ecx)
409284:	74 2f                	je     0x4092b5
409286:	81 39 8e 00 00 c0    	cmpl   $0xc000008e,(%ecx)
40928c:	74 20                	je     0x4092ae
40928e:	81 39 8f 00 00 c0    	cmpl   $0xc000008f,(%ecx)
409294:	74 11                	je     0x4092a7
409296:	81 39 90 00 00 c0    	cmpl   $0xc0000090,(%ecx)
40929c:	8b c3                	mov    %ebx,%eax
40929e:	75 62                	jne    0x409302
4092a0:	b8 81 00 00 00       	mov    $0x81,%eax
4092a5:	eb 58                	jmp    0x4092ff
4092a7:	b8 86 00 00 00       	mov    $0x86,%eax
4092ac:	eb 51                	jmp    0x4092ff
4092ae:	b8 83 00 00 00       	mov    $0x83,%eax
4092b3:	eb 4a                	jmp    0x4092ff
4092b5:	b8 82 00 00 00       	mov    $0x82,%eax
4092ba:	eb 43                	jmp    0x4092ff
4092bc:	b8 84 00 00 00       	mov    $0x84,%eax
4092c1:	eb 3c                	jmp    0x4092ff
4092c3:	81 39 92 00 00 c0    	cmpl   $0xc0000092,(%ecx)
4092c9:	74 2f                	je     0x4092fa
4092cb:	81 39 93 00 00 c0    	cmpl   $0xc0000093,(%ecx)
4092d1:	74 20                	je     0x4092f3
4092d3:	81 39 b4 02 00 c0    	cmpl   $0xc00002b4,(%ecx)
4092d9:	74 11                	je     0x4092ec
4092db:	81 39 b5 02 00 c0    	cmpl   $0xc00002b5,(%ecx)
4092e1:	8b c3                	mov    %ebx,%eax
4092e3:	75 1d                	jne    0x409302
4092e5:	b8 8d 00 00 00       	mov    $0x8d,%eax
4092ea:	eb 13                	jmp    0x4092ff
4092ec:	b8 8e 00 00 00       	mov    $0x8e,%eax
4092f1:	eb 0c                	jmp    0x4092ff
4092f3:	b8 85 00 00 00       	mov    $0x85,%eax
4092f8:	eb 05                	jmp    0x4092ff
4092fa:	b8 8a 00 00 00       	mov    $0x8a,%eax
4092ff:	89 46 08             	mov    %eax,0x8(%esi)
409302:	50                   	push   %eax
409303:	6a 08                	push   $0x8
409305:	8b cf                	mov    %edi,%ecx
409307:	ff 15 54 91 41 00    	call   *0x419154
40930d:	ff d7                	call   *%edi
40930f:	59                   	pop    %ecx
409310:	59                   	pop    %ecx
409311:	89 5e 08             	mov    %ebx,0x8(%esi)
409314:	5b                   	pop    %ebx
409315:	eb 12                	jmp    0x409329
409317:	83 61 08 00          	andl   $0x0,0x8(%ecx)
40931b:	ff 71 04             	push   0x4(%ecx)
40931e:	8b cf                	mov    %edi,%ecx
409320:	ff 15 54 91 41 00    	call   *0x419154
409326:	ff d7                	call   *%edi
409328:	59                   	pop    %ecx
409329:	8b 45 fc             	mov    -0x4(%ebp),%eax
40932c:	89 46 04             	mov    %eax,0x4(%esi)
40932f:	e9 0d ff ff ff       	jmp    0x409241
409334:	a1 50 1e 42 00       	mov    0x421e50,%eax
409339:	c3                   	ret
40933a:	8b ff                	mov    %edi,%edi
40933c:	55                   	push   %ebp
40933d:	8b ec                	mov    %esp,%ebp
40933f:	8b 45 08             	mov    0x8(%ebp),%eax
409342:	a3 50 1e 42 00       	mov    %eax,0x421e50
409347:	5d                   	pop    %ebp
409348:	c3                   	ret
409349:	8b ff                	mov    %edi,%edi
40934b:	55                   	push   %ebp
40934c:	8b ec                	mov    %esp,%ebp
40934e:	a1 c0 10 42 00       	mov    0x4210c0,%eax
409353:	83 e0 1f             	and    $0x1f,%eax
409356:	6a 20                	push   $0x20
409358:	59                   	pop    %ecx
409359:	2b c8                	sub    %eax,%ecx
40935b:	8b 45 08             	mov    0x8(%ebp),%eax
40935e:	d3 c8                	ror    %cl,%eax
409360:	33 05 c0 10 42 00    	xor    0x4210c0,%eax
409366:	5d                   	pop    %ebp
409367:	c3                   	ret
409368:	8b 0d c0 10 42 00    	mov    0x4210c0,%ecx
40936e:	8b 15 54 1e 42 00    	mov    0x421e54,%edx
409374:	83 e1 1f             	and    $0x1f,%ecx
409377:	33 15 c0 10 42 00    	xor    0x4210c0,%edx
40937d:	d3 ca                	ror    %cl,%edx
40937f:	85 d2                	test   %edx,%edx
409381:	0f 95 c0             	setne  %al
409384:	c3                   	ret
409385:	8b ff                	mov    %edi,%edi
409387:	55                   	push   %ebp
409388:	8b ec                	mov    %esp,%ebp
40938a:	8b 45 08             	mov    0x8(%ebp),%eax
40938d:	a3 54 1e 42 00       	mov    %eax,0x421e54
409392:	5d                   	pop    %ebp
409393:	c3                   	ret
409394:	8b ff                	mov    %edi,%edi
409396:	55                   	push   %ebp
409397:	8b ec                	mov    %esp,%ebp
409399:	8b 0d c0 10 42 00    	mov    0x4210c0,%ecx
40939f:	56                   	push   %esi
4093a0:	8b 35 54 1e 42 00    	mov    0x421e54,%esi
4093a6:	83 e1 1f             	and    $0x1f,%ecx
4093a9:	33 35 c0 10 42 00    	xor    0x4210c0,%esi
4093af:	d3 ce                	ror    %cl,%esi
4093b1:	85 f6                	test   %esi,%esi
4093b3:	75 04                	jne    0x4093b9
4093b5:	33 c0                	xor    %eax,%eax
4093b7:	eb 0e                	jmp    0x4093c7
4093b9:	ff 75 08             	push   0x8(%ebp)
4093bc:	8b ce                	mov    %esi,%ecx
4093be:	ff 15 54 91 41 00    	call   *0x419154
4093c4:	ff d6                	call   *%esi
4093c6:	59                   	pop    %ecx
4093c7:	5e                   	pop    %esi
4093c8:	5d                   	pop    %ebp
4093c9:	c3                   	ret
4093ca:	8b ff                	mov    %edi,%edi
4093cc:	55                   	push   %ebp
4093cd:	8b ec                	mov    %esp,%ebp
4093cf:	ff 75 08             	push   0x8(%ebp)
4093d2:	e8 72 ff ff ff       	call   0x409349
4093d7:	59                   	pop    %ecx
4093d8:	a3 54 1e 42 00       	mov    %eax,0x421e54
4093dd:	5d                   	pop    %ebp
4093de:	c3                   	ret
4093df:	8b ff                	mov    %edi,%edi
4093e1:	55                   	push   %ebp
4093e2:	8b ec                	mov    %esp,%ebp
4093e4:	83 ec 0c             	sub    $0xc,%esp