46dea8:	d1 e8                	shr    $1,%eax
46deaa:	f7 d0                	not    %eax
46deac:	33 41 08             	xor    0x8(%ecx),%eax
46deaf:	83 e0 04             	and    $0x4,%eax
46deb2:	31 41 08             	xor    %eax,0x8(%ecx)
46deb5:	8b 4d 08             	mov    0x8(%ebp),%ecx
46deb8:	8b 06                	mov    (%esi),%eax
46deba:	c1 e8 03             	shr    $0x3,%eax
46debd:	f7 d0                	not    %eax
46debf:	33 41 08             	xor    0x8(%ecx),%eax
46dec2:	83 e0 02             	and    $0x2,%eax
46dec5:	31 41 08             	xor    %eax,0x8(%ecx)
46dec8:	8b 06                	mov    (%esi),%eax
46deca:	8b 4d 08             	mov    0x8(%ebp),%ecx
46decd:	c1 e8 05             	shr    $0x5,%eax
46ded0:	f7 d0                	not    %eax
46ded2:	33 41 08             	xor    0x8(%ecx),%eax
46ded5:	23 c3                	and    %ebx,%eax
46ded7:	31 41 08             	xor    %eax,0x8(%ecx)
46deda:	e8 35 66 00 00       	call   0x474514
46dedf:	8b d0                	mov    %eax,%edx
46dee1:	f6 c2 01             	test   $0x1,%dl
46dee4:	74 07                	je     0x46deed
46dee6:	8b 4d 08             	mov    0x8(%ebp),%ecx
46dee9:	83 49 0c 10          	orl    $0x10,0xc(%ecx)
46deed:	f6 c2 04             	test   $0x4,%dl
46def0:	74 07                	je     0x46def9
46def2:	8b 45 08             	mov    0x8(%ebp),%eax
46def5:	83 48 0c 08          	orl    $0x8,0xc(%eax)
46def9:	f6 c2 08             	test   $0x8,%dl
46defc:	74 07                	je     0x46df05
46defe:	8b 45 08             	mov    0x8(%ebp),%eax
46df01:	83 48 0c 04          	orl    $0x4,0xc(%eax)
46df05:	f6 c2 10             	test   $0x10,%dl
46df08:	74 07                	je     0x46df11
46df0a:	8b 45 08             	mov    0x8(%ebp),%eax
46df0d:	83 48 0c 02          	orl    $0x2,0xc(%eax)
46df11:	f6 c2 20             	test   $0x20,%dl
46df14:	74 06                	je     0x46df1c
46df16:	8b 45 08             	mov    0x8(%ebp),%eax
46df19:	09 58 0c             	or     %ebx,0xc(%eax)
46df1c:	8b 06                	mov    (%esi),%eax
46df1e:	b9 00 0c 00 00       	mov    $0xc00,%ecx
46df23:	23 c1                	and    %ecx,%eax
46df25:	74 35                	je     0x46df5c
46df27:	3d 00 04 00 00       	cmp    $0x400,%eax
46df2c:	74 22                	je     0x46df50
46df2e:	3d 00 08 00 00       	cmp    $0x800,%eax
46df33:	74 0c                	je     0x46df41
46df35:	3b c1                	cmp    %ecx,%eax
46df37:	75 29                	jne    0x46df62
46df39:	8b 45 08             	mov    0x8(%ebp),%eax
46df3c:	83 08 03             	orl    $0x3,(%eax)
46df3f:	eb 21                	jmp    0x46df62
46df41:	8b 4d 08             	mov    0x8(%ebp),%ecx
46df44:	8b 01                	mov    (%ecx),%eax
46df46:	83 e0 fe             	and    $0xfffffffe,%eax
46df49:	83 c8 02             	or     $0x2,%eax
46df4c:	89 01                	mov    %eax,(%ecx)
46df4e:	eb 12                	jmp    0x46df62
46df50:	8b 4d 08             	mov    0x8(%ebp),%ecx
46df53:	8b 01                	mov    (%ecx),%eax
46df55:	83 e0 fd             	and    $0xfffffffd,%eax
46df58:	0b c3                	or     %ebx,%eax
46df5a:	eb f0                	jmp    0x46df4c
46df5c:	8b 45 08             	mov    0x8(%ebp),%eax
46df5f:	83 20 fc             	andl   $0xfffffffc,(%eax)
46df62:	8b 06                	mov    (%esi),%eax
46df64:	b9 00 03 00 00       	mov    $0x300,%ecx
46df69:	23 c1                	and    %ecx,%eax
46df6b:	74 20                	je     0x46df8d
46df6d:	3d 00 02 00 00       	cmp    $0x200,%eax
46df72:	74 0c                	je     0x46df80
46df74:	3b c1                	cmp    %ecx,%eax
46df76:	75 22                	jne    0x46df9a
46df78:	8b 45 08             	mov    0x8(%ebp),%eax
46df7b:	83 20 e3             	andl   $0xffffffe3,(%eax)
46df7e:	eb 1a                	jmp    0x46df9a
46df80:	8b 4d 08             	mov    0x8(%ebp),%ecx
46df83:	8b 01                	mov    (%ecx),%eax
46df85:	83 e0 e7             	and    $0xffffffe7,%eax
46df88:	83 c8 04             	or     $0x4,%eax
46df8b:	eb 0b                	jmp    0x46df98
46df8d:	8b 4d 08             	mov    0x8(%ebp),%ecx
46df90:	8b 01                	mov    (%ecx),%eax
46df92:	83 e0 eb             	and    $0xffffffeb,%eax
46df95:	83 c8 08             	or     $0x8,%eax
46df98:	89 01                	mov    %eax,(%ecx)
46df9a:	8b 45 08             	mov    0x8(%ebp),%eax
46df9d:	8b 4d 14             	mov    0x14(%ebp),%ecx
46dfa0:	c1 e1 05             	shl    $0x5,%ecx
46dfa3:	33 08                	xor    (%eax),%ecx
46dfa5:	81 e1 e0 ff 01 00    	and    $0x1ffe0,%ecx
46dfab:	31 08                	xor    %ecx,(%eax)
46dfad:	8b 45 08             	mov    0x8(%ebp),%eax
46dfb0:	09 58 20             	or     %ebx,0x20(%eax)
46dfb3:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
46dfb7:	74 2c                	je     0x46dfe5
46dfb9:	8b 45 08             	mov    0x8(%ebp),%eax
46dfbc:	83 60 20 e1          	andl   $0xffffffe1,0x20(%eax)
46dfc0:	8b 45 18             	mov    0x18(%ebp),%eax
46dfc3:	d9 00                	flds   (%eax)
46dfc5:	8b 45 08             	mov    0x8(%ebp),%eax
46dfc8:	d9 58 10             	fstps  0x10(%eax)
46dfcb:	8b 45 08             	mov    0x8(%ebp),%eax
46dfce:	09 58 60             	or     %ebx,0x60(%eax)
46dfd1:	8b 45 08             	mov    0x8(%ebp),%eax
46dfd4:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
46dfd7:	83 60 60 e1          	andl   $0xffffffe1,0x60(%eax)
46dfdb:	8b 45 08             	mov    0x8(%ebp),%eax
46dfde:	d9 03                	flds   (%ebx)
46dfe0:	d9 58 50             	fstps  0x50(%eax)
46dfe3:	eb 3a                	jmp    0x46e01f
46dfe5:	8b 4d 08             	mov    0x8(%ebp),%ecx
46dfe8:	8b 41 20             	mov    0x20(%ecx),%eax
46dfeb:	83 e0 e3             	and    $0xffffffe3,%eax
46dfee:	83 c8 02             	or     $0x2,%eax
46dff1:	89 41 20             	mov    %eax,0x20(%ecx)
46dff4:	8b 45 18             	mov    0x18(%ebp),%eax
46dff7:	dd 00                	fldl   (%eax)
46dff9:	8b 45 08             	mov    0x8(%ebp),%eax
46dffc:	dd 58 10             	fstpl  0x10(%eax)
46dfff:	8b 45 08             	mov    0x8(%ebp),%eax
46e002:	09 58 60             	or     %ebx,0x60(%eax)
46e005:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e008:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
46e00b:	8b 41 60             	mov    0x60(%ecx),%eax
46e00e:	83 e0 e3             	and    $0xffffffe3,%eax
46e011:	83 c8 02             	or     $0x2,%eax
46e014:	89 41 60             	mov    %eax,0x60(%ecx)
46e017:	8b 45 08             	mov    0x8(%ebp),%eax
46e01a:	dd 03                	fldl   (%ebx)
46e01c:	dd 58 50             	fstpl  0x50(%eax)
46e01f:	e8 56 64 00 00       	call   0x47447a
46e024:	8d 45 08             	lea    0x8(%ebp),%eax
46e027:	50                   	push   %eax
46e028:	6a 01                	push   $0x1
46e02a:	6a 00                	push   $0x0
46e02c:	57                   	push   %edi
46e02d:	ff 15 90 41 49 00    	call   *0x494190
46e033:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e036:	f6 41 08 10          	testb  $0x10,0x8(%ecx)
46e03a:	74 03                	je     0x46e03f
46e03c:	83 26 fe             	andl   $0xfffffffe,(%esi)
46e03f:	f6 41 08 08          	testb  $0x8,0x8(%ecx)
46e043:	74 03                	je     0x46e048
46e045:	83 26 fb             	andl   $0xfffffffb,(%esi)
46e048:	f6 41 08 04          	testb  $0x4,0x8(%ecx)
46e04c:	74 03                	je     0x46e051
46e04e:	83 26 f7             	andl   $0xfffffff7,(%esi)
46e051:	f6 41 08 02          	testb  $0x2,0x8(%ecx)
46e055:	74 03                	je     0x46e05a
46e057:	83 26 ef             	andl   $0xffffffef,(%esi)
46e05a:	f6 41 08 01          	testb  $0x1,0x8(%ecx)
46e05e:	74 03                	je     0x46e063
46e060:	83 26 df             	andl   $0xffffffdf,(%esi)
46e063:	8b 01                	mov    (%ecx),%eax
46e065:	ba ff f3 ff ff       	mov    $0xfffff3ff,%edx
46e06a:	83 e0 03             	and    $0x3,%eax
46e06d:	83 e8 00             	sub    $0x0,%eax
46e070:	74 35                	je     0x46e0a7
46e072:	83 e8 01             	sub    $0x1,%eax
46e075:	74 22                	je     0x46e099
46e077:	83 e8 01             	sub    $0x1,%eax
46e07a:	74 0d                	je     0x46e089
46e07c:	83 e8 01             	sub    $0x1,%eax
46e07f:	75 28                	jne    0x46e0a9
46e081:	81 0e 00 0c 00 00    	orl    $0xc00,(%esi)
46e087:	eb 20                	jmp    0x46e0a9
46e089:	8b 06                	mov    (%esi),%eax
46e08b:	25 ff fb ff ff       	and    $0xfffffbff,%eax
46e090:	0d 00 08 00 00       	or     $0x800,%eax
46e095:	89 06                	mov    %eax,(%esi)
46e097:	eb 10                	jmp    0x46e0a9
46e099:	8b 06                	mov    (%esi),%eax
46e09b:	25 ff f7 ff ff       	and    $0xfffff7ff,%eax
46e0a0:	0d 00 04 00 00       	or     $0x400,%eax
46e0a5:	eb ee                	jmp    0x46e095
46e0a7:	21 16                	and    %edx,(%esi)
46e0a9:	8b 01                	mov    (%ecx),%eax
46e0ab:	c1 e8 02             	shr    $0x2,%eax
46e0ae:	83 e0 07             	and    $0x7,%eax
46e0b1:	83 e8 00             	sub    $0x0,%eax
46e0b4:	74 19                	je     0x46e0cf
46e0b6:	83 e8 01             	sub    $0x1,%eax
46e0b9:	74 09                	je     0x46e0c4
46e0bb:	83 e8 01             	sub    $0x1,%eax
46e0be:	75 1a                	jne    0x46e0da
46e0c0:	21 16                	and    %edx,(%esi)
46e0c2:	eb 16                	jmp    0x46e0da
46e0c4:	8b 06                	mov    (%esi),%eax
46e0c6:	23 c2                	and    %edx,%eax
46e0c8:	0d 00 02 00 00       	or     $0x200,%eax
46e0cd:	eb 09                	jmp    0x46e0d8
46e0cf:	8b 06                	mov    (%esi),%eax
46e0d1:	23 c2                	and    %edx,%eax
46e0d3:	0d 00 03 00 00       	or     $0x300,%eax
46e0d8:	89 06                	mov    %eax,(%esi)
46e0da:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
46e0de:	5e                   	pop    %esi
46e0df:	74 07                	je     0x46e0e8
46e0e1:	d9 41 50             	flds   0x50(%ecx)
46e0e4:	d9 1b                	fstps  (%ebx)
46e0e6:	eb 05                	jmp    0x46e0ed
46e0e8:	dd 41 50             	fldl   0x50(%ecx)
46e0eb:	dd 1b                	fstpl  (%ebx)
46e0ed:	5f                   	pop    %edi
46e0ee:	5b                   	pop    %ebx
46e0ef:	5d                   	pop    %ebp
46e0f0:	c3                   	ret
46e0f1:	8b ff                	mov    %edi,%edi
46e0f3:	55                   	push   %ebp
46e0f4:	8b ec                	mov    %esp,%ebp
46e0f6:	6a 01                	push   $0x1
46e0f8:	ff 75 1c             	push   0x1c(%ebp)
46e0fb:	ff 75 18             	push   0x18(%ebp)
46e0fe:	ff 75 14             	push   0x14(%ebp)
46e101:	ff 75 10             	push   0x10(%ebp)
46e104:	ff 75 0c             	push   0xc(%ebp)
46e107:	ff 75 08             	push   0x8(%ebp)
46e10a:	e8 f1 fc ff ff       	call   0x46de00
46e10f:	83 c4 1c             	add    $0x1c,%esp
46e112:	5d                   	pop    %ebp
46e113:	c3                   	ret
46e114:	8b ff                	mov    %edi,%edi
46e116:	55                   	push   %ebp
46e117:	8b ec                	mov    %esp,%ebp
46e119:	8b 45 08             	mov    0x8(%ebp),%eax
46e11c:	83 f8 01             	cmp    $0x1,%eax
46e11f:	74 15                	je     0x46e136
46e121:	83 c0 fe             	add    $0xfffffffe,%eax
46e124:	83 f8 01             	cmp    $0x1,%eax
46e127:	77 18                	ja     0x46e141
46e129:	e8 01 ed fd ff       	call   0x44ce2f
46e12e:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
46e134:	5d                   	pop    %ebp
46e135:	c3                   	ret
46e136:	e8 f4 ec fd ff       	call   0x44ce2f
46e13b:	c7 00 21 00 00 00    	movl   $0x21,(%eax)
46e141:	5d                   	pop    %ebp
46e142:	c3                   	ret
46e143:	8b ff                	mov    %edi,%edi
46e145:	55                   	push   %ebp
46e146:	8b ec                	mov    %esp,%ebp
46e148:	8b 55 0c             	mov    0xc(%ebp),%edx
46e14b:	83 ec 20             	sub    $0x20,%esp
46e14e:	33 c9                	xor    %ecx,%ecx
46e150:	8b c1                	mov    %ecx,%eax
46e152:	39 14 c5 a0 d5 49 00 	cmp    %edx,0x49d5a0(,%eax,8)
46e159:	74 08                	je     0x46e163
46e15b:	40                   	inc    %eax
46e15c:	83 f8 1d             	cmp    $0x1d,%eax
46e15f:	7c f1                	jl     0x46e152
46e161:	eb 07                	jmp    0x46e16a
46e163:	8b 0c c5 a4 d5 49 00 	mov    0x49d5a4(,%eax,8),%ecx
46e16a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
46e16d:	85 c9                	test   %ecx,%ecx
46e16f:	74 55                	je     0x46e1c6
46e171:	8b 45 10             	mov    0x10(%ebp),%eax
46e174:	89 45 e8             	mov    %eax,-0x18(%ebp)
46e177:	8b 45 14             	mov    0x14(%ebp),%eax
46e17a:	89 45 ec             	mov    %eax,-0x14(%ebp)
46e17d:	8b 45 18             	mov    0x18(%ebp),%eax
46e180:	89 45 f0             	mov    %eax,-0x10(%ebp)
46e183:	8b 45 1c             	mov    0x1c(%ebp),%eax
46e186:	56                   	push   %esi
46e187:	8b 75 08             	mov    0x8(%ebp),%esi
46e18a:	89 45 f4             	mov    %eax,-0xc(%ebp)
46e18d:	8b 45 20             	mov    0x20(%ebp),%eax
46e190:	68 ff ff 00 00       	push   $0xffff
46e195:	ff 75 28             	push   0x28(%ebp)
46e198:	89 45 f8             	mov    %eax,-0x8(%ebp)
46e19b:	8b 45 24             	mov    0x24(%ebp),%eax
46e19e:	89 75 e0             	mov    %esi,-0x20(%ebp)
46e1a1:	89 45 fc             	mov    %eax,-0x4(%ebp)
46e1a4:	e8 e4 62 00 00       	call   0x47448d
46e1a9:	8d 45 e0             	lea    -0x20(%ebp),%eax
46e1ac:	50                   	push   %eax
46e1ad:	e8 9d 02 00 00       	call   0x46e44f
46e1b2:	83 c4 0c             	add    $0xc,%esp
46e1b5:	85 c0                	test   %eax,%eax
46e1b7:	75 07                	jne    0x46e1c0
46e1b9:	56                   	push   %esi
46e1ba:	e8 55 ff ff ff       	call   0x46e114
46e1bf:	59                   	pop    %ecx
46e1c0:	dd 45 f8             	fldl   -0x8(%ebp)
46e1c3:	5e                   	pop    %esi
46e1c4:	eb 1b                	jmp    0x46e1e1
46e1c6:	68 ff ff 00 00       	push   $0xffff
46e1cb:	ff 75 28             	push   0x28(%ebp)
46e1ce:	e8 ba 62 00 00       	call   0x47448d
46e1d3:	ff 75 08             	push   0x8(%ebp)
46e1d6:	e8 39 ff ff ff       	call   0x46e114
46e1db:	dd 45 20             	fldl   0x20(%ebp)
46e1de:	83 c4 0c             	add    $0xc,%esp
46e1e1:	8b e5                	mov    %ebp,%esp
46e1e3:	5d                   	pop    %ebp
46e1e4:	c3                   	ret
46e1e5:	32 c0                	xor    %al,%al
46e1e7:	c3                   	ret
46e1e8:	6a 03                	push   $0x3
46e1ea:	e8 f0 0b 01 00       	call   0x47eddf
46e1ef:	59                   	pop    %ecx
46e1f0:	83 f8 01             	cmp    $0x1,%eax
46e1f3:	75 03                	jne    0x46e1f8
46e1f5:	b0 01                	mov    $0x1,%al
46e1f7:	c3                   	ret
46e1f8:	85 c0                	test   %eax,%eax
46e1fa:	75 09                	jne    0x46e205
46e1fc:	83 3d bc b8 4b 00 01 	cmpl   $0x1,0x4bb8bc
46e203:	74 f0                	je     0x46e1f5
46e205:	32 c0                	xor    %al,%al
46e207:	c3                   	ret
46e208:	8b ff                	mov    %edi,%edi
46e20a:	55                   	push   %ebp
46e20b:	8b ec                	mov    %esp,%ebp
46e20d:	81 ec fc 01 00 00    	sub    $0x1fc,%esp
46e213:	a1 94 80 4b 00       	mov    0x4b8094,%eax
46e218:	33 c5                	xor    %ebp,%eax
46e21a:	89 45 fc             	mov    %eax,-0x4(%ebp)
46e21d:	56                   	push   %esi
46e21e:	6a f4                	push   $0xfffffff4
46e220:	ff 15 90 40 49 00    	call   *0x494090
46e226:	8b f0                	mov    %eax,%esi
46e228:	85 f6                	test   %esi,%esi
46e22a:	74 4a                	je     0x46e276
46e22c:	83 fe ff             	cmp    $0xffffffff,%esi
46e22f:	74 45                	je     0x46e276
46e231:	8b 55 08             	mov    0x8(%ebp),%edx
46e234:	8d 8d 08 fe ff ff    	lea    -0x1f8(%ebp),%ecx
46e23a:	8a 02                	mov    (%edx),%al
46e23c:	88 01                	mov    %al,(%ecx)
46e23e:	41                   	inc    %ecx
46e23f:	8d 45 fc             	lea    -0x4(%ebp),%eax
46e242:	3b c8                	cmp    %eax,%ecx
46e244:	74 0b                	je     0x46e251
46e246:	66 8b 02             	mov    (%edx),%ax
46e249:	83 c2 02             	add    $0x2,%edx
46e24c:	66 85 c0             	test   %ax,%ax
46e24f:	75 e9                	jne    0x46e23a
46e251:	33 c0                	xor    %eax,%eax
46e253:	50                   	push   %eax
46e254:	88 45 fb             	mov    %al,-0x5(%ebp)
46e257:	89 85 04 fe ff ff    	mov    %eax,-0x1fc(%ebp)
46e25d:	8d 85 04 fe ff ff    	lea    -0x1fc(%ebp),%eax
46e263:	50                   	push   %eax
46e264:	8d 85 08 fe ff ff    	lea    -0x1f8(%ebp),%eax
46e26a:	2b c8                	sub    %eax,%ecx
46e26c:	49                   	dec    %ecx
46e26d:	51                   	push   %ecx