402fc3:	89 78 0c             	mov    %edi,0xc(%eax)
402fc6:	f6 c1 10             	test   $0x10,%cl
402fc9:	74 0d                	je     0x402fd8
402fcb:	8b 45 08             	mov    0x8(%ebp),%eax
402fce:	09 58 04             	or     %ebx,0x4(%eax)
402fd1:	c7 45 10 8f 00 00 c0 	movl   $0xc000008f,0x10(%ebp)
402fd8:	f6 c1 02             	test   $0x2,%cl
402fdb:	74 0e                	je     0x402feb
402fdd:	8b 45 08             	mov    0x8(%ebp),%eax
402fe0:	83 48 04 02          	orl    $0x2,0x4(%eax)
402fe4:	c7 45 10 93 00 00 c0 	movl   $0xc0000093,0x10(%ebp)
402feb:	84 cb                	test   %cl,%bl
402fed:	74 0e                	je     0x402ffd
402fef:	8b 45 08             	mov    0x8(%ebp),%eax
402ff2:	83 48 04 04          	orl    $0x4,0x4(%eax)
402ff6:	c7 45 10 91 00 00 c0 	movl   $0xc0000091,0x10(%ebp)
402ffd:	f6 c1 04             	test   $0x4,%cl
403000:	74 0e                	je     0x403010
403002:	8b 45 08             	mov    0x8(%ebp),%eax
403005:	83 48 04 08          	orl    $0x8,0x4(%eax)
403009:	c7 45 10 8e 00 00 c0 	movl   $0xc000008e,0x10(%ebp)
403010:	f6 c1 08             	test   $0x8,%cl
403013:	74 0e                	je     0x403023
403015:	8b 45 08             	mov    0x8(%ebp),%eax
403018:	83 48 04 10          	orl    $0x10,0x4(%eax)
40301c:	c7 45 10 90 00 00 c0 	movl   $0xc0000090,0x10(%ebp)
403023:	8b 75 0c             	mov    0xc(%ebp),%esi
403026:	8b 0e                	mov    (%esi),%ecx
403028:	8b 45 08             	mov    0x8(%ebp),%eax
40302b:	c1 e1 04             	shl    $0x4,%ecx
40302e:	f7 d1                	not    %ecx
403030:	33 48 08             	xor    0x8(%eax),%ecx
403033:	83 e1 10             	and    $0x10,%ecx
403036:	31 48 08             	xor    %ecx,0x8(%eax)
403039:	8b 0e                	mov    (%esi),%ecx
40303b:	8b 45 08             	mov    0x8(%ebp),%eax
40303e:	03 c9                	add    %ecx,%ecx
403040:	f7 d1                	not    %ecx
403042:	33 48 08             	xor    0x8(%eax),%ecx
403045:	83 e1 08             	and    $0x8,%ecx
403048:	31 48 08             	xor    %ecx,0x8(%eax)
40304b:	8b 0e                	mov    (%esi),%ecx
40304d:	8b 45 08             	mov    0x8(%ebp),%eax
403050:	d1 e9                	shr    $1,%ecx
403052:	f7 d1                	not    %ecx
403054:	33 48 08             	xor    0x8(%eax),%ecx
403057:	83 e1 04             	and    $0x4,%ecx
40305a:	31 48 08             	xor    %ecx,0x8(%eax)
40305d:	8b 0e                	mov    (%esi),%ecx
40305f:	8b 45 08             	mov    0x8(%ebp),%eax
403062:	c1 e9 03             	shr    $0x3,%ecx
403065:	f7 d1                	not    %ecx
403067:	33 48 08             	xor    0x8(%eax),%ecx
40306a:	83 e1 02             	and    $0x2,%ecx
40306d:	31 48 08             	xor    %ecx,0x8(%eax)
403070:	8b 0e                	mov    (%esi),%ecx
403072:	8b 45 08             	mov    0x8(%ebp),%eax
403075:	c1 e9 05             	shr    $0x5,%ecx
403078:	f7 d1                	not    %ecx
40307a:	33 48 08             	xor    0x8(%eax),%ecx
40307d:	23 cb                	and    %ebx,%ecx
40307f:	31 48 08             	xor    %ecx,0x8(%eax)
403082:	e8 76 07 00 00       	call   0x4037fd
403087:	84 c3                	test   %al,%bl
403089:	74 07                	je     0x403092
40308b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40308e:	83 49 0c 10          	orl    $0x10,0xc(%ecx)
403092:	a8 04                	test   $0x4,%al
403094:	74 07                	je     0x40309d
403096:	8b 4d 08             	mov    0x8(%ebp),%ecx
403099:	83 49 0c 08          	orl    $0x8,0xc(%ecx)
40309d:	a8 08                	test   $0x8,%al
40309f:	74 07                	je     0x4030a8
4030a1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4030a4:	83 49 0c 04          	orl    $0x4,0xc(%ecx)
4030a8:	a8 10                	test   $0x10,%al
4030aa:	74 07                	je     0x4030b3
4030ac:	8b 4d 08             	mov    0x8(%ebp),%ecx
4030af:	83 49 0c 02          	orl    $0x2,0xc(%ecx)
4030b3:	a8 20                	test   $0x20,%al
4030b5:	74 06                	je     0x4030bd
4030b7:	8b 45 08             	mov    0x8(%ebp),%eax
4030ba:	09 58 0c             	or     %ebx,0xc(%eax)
4030bd:	8b 06                	mov    (%esi),%eax
4030bf:	b9 00 0c 00 00       	mov    $0xc00,%ecx
4030c4:	23 c1                	and    %ecx,%eax
4030c6:	74 35                	je     0x4030fd
4030c8:	3d 00 04 00 00       	cmp    $0x400,%eax
4030cd:	74 22                	je     0x4030f1
4030cf:	3d 00 08 00 00       	cmp    $0x800,%eax
4030d4:	74 0c                	je     0x4030e2
4030d6:	3b c1                	cmp    %ecx,%eax
4030d8:	75 29                	jne    0x403103
4030da:	8b 45 08             	mov    0x8(%ebp),%eax
4030dd:	83 08 03             	orl    $0x3,(%eax)
4030e0:	eb 21                	jmp    0x403103
4030e2:	8b 45 08             	mov    0x8(%ebp),%eax
4030e5:	8b 08                	mov    (%eax),%ecx
4030e7:	83 e1 fe             	and    $0xfffffffe,%ecx
4030ea:	83 c9 02             	or     $0x2,%ecx
4030ed:	89 08                	mov    %ecx,(%eax)
4030ef:	eb 12                	jmp    0x403103
4030f1:	8b 45 08             	mov    0x8(%ebp),%eax
4030f4:	8b 08                	mov    (%eax),%ecx
4030f6:	83 e1 fd             	and    $0xfffffffd,%ecx
4030f9:	0b cb                	or     %ebx,%ecx
4030fb:	eb f0                	jmp    0x4030ed
4030fd:	8b 45 08             	mov    0x8(%ebp),%eax
403100:	83 20 fc             	andl   $0xfffffffc,(%eax)
403103:	8b 06                	mov    (%esi),%eax
403105:	b9 00 03 00 00       	mov    $0x300,%ecx
40310a:	23 c1                	and    %ecx,%eax
40310c:	74 20                	je     0x40312e
40310e:	3d 00 02 00 00       	cmp    $0x200,%eax
403113:	74 0c                	je     0x403121
403115:	3b c1                	cmp    %ecx,%eax
403117:	75 22                	jne    0x40313b
403119:	8b 45 08             	mov    0x8(%ebp),%eax
40311c:	83 20 e3             	andl   $0xffffffe3,(%eax)
40311f:	eb 1a                	jmp    0x40313b
403121:	8b 45 08             	mov    0x8(%ebp),%eax
403124:	8b 08                	mov    (%eax),%ecx
403126:	83 e1 e7             	and    $0xffffffe7,%ecx
403129:	83 c9 04             	or     $0x4,%ecx
40312c:	eb 0b                	jmp    0x403139
40312e:	8b 45 08             	mov    0x8(%ebp),%eax
403131:	8b 08                	mov    (%eax),%ecx
403133:	83 e1 eb             	and    $0xffffffeb,%ecx
403136:	83 c9 08             	or     $0x8,%ecx
403139:	89 08                	mov    %ecx,(%eax)
40313b:	8b 45 08             	mov    0x8(%ebp),%eax
40313e:	8b 4d 14             	mov    0x14(%ebp),%ecx
403141:	c1 e1 05             	shl    $0x5,%ecx
403144:	33 08                	xor    (%eax),%ecx
403146:	81 e1 e0 ff 01 00    	and    $0x1ffe0,%ecx
40314c:	31 08                	xor    %ecx,(%eax)
40314e:	8b 45 08             	mov    0x8(%ebp),%eax
403151:	09 58 20             	or     %ebx,0x20(%eax)
403154:	39 7d 20             	cmp    %edi,0x20(%ebp)
403157:	8b 45 08             	mov    0x8(%ebp),%eax
40315a:	8b 7d 1c             	mov    0x1c(%ebp),%edi
40315d:	74 26                	je     0x403185
40315f:	83 60 20 e1          	andl   $0xffffffe1,0x20(%eax)
403163:	8b 45 18             	mov    0x18(%ebp),%eax
403166:	d9 00                	flds   (%eax)
403168:	8b 45 08             	mov    0x8(%ebp),%eax
40316b:	d9 58 10             	fstps  0x10(%eax)
40316e:	8b 45 08             	mov    0x8(%ebp),%eax
403171:	09 58 60             	or     %ebx,0x60(%eax)
403174:	8b 45 08             	mov    0x8(%ebp),%eax
403177:	83 60 60 e1          	andl   $0xffffffe1,0x60(%eax)
40317b:	d9 07                	flds   (%edi)
40317d:	8b 45 08             	mov    0x8(%ebp),%eax
403180:	d9 58 50             	fstps  0x50(%eax)
403183:	eb 34                	jmp    0x4031b9
403185:	8b 48 20             	mov    0x20(%eax),%ecx
403188:	83 e1 e3             	and    $0xffffffe3,%ecx
40318b:	83 c9 02             	or     $0x2,%ecx
40318e:	89 48 20             	mov    %ecx,0x20(%eax)
403191:	8b 45 18             	mov    0x18(%ebp),%eax
403194:	dd 00                	fldl   (%eax)
403196:	8b 45 08             	mov    0x8(%ebp),%eax
403199:	dd 58 10             	fstpl  0x10(%eax)
40319c:	8b 45 08             	mov    0x8(%ebp),%eax
40319f:	09 58 60             	or     %ebx,0x60(%eax)
4031a2:	8b 45 08             	mov    0x8(%ebp),%eax
4031a5:	8b 48 60             	mov    0x60(%eax),%ecx
4031a8:	83 e1 e3             	and    $0xffffffe3,%ecx
4031ab:	83 c9 02             	or     $0x2,%ecx
4031ae:	89 48 60             	mov    %ecx,0x60(%eax)
4031b1:	dd 07                	fldl   (%edi)
4031b3:	8b 45 08             	mov    0x8(%ebp),%eax
4031b6:	dd 58 50             	fstpl  0x50(%eax)
4031b9:	e8 4f 06 00 00       	call   0x40380d
4031be:	8d 45 08             	lea    0x8(%ebp),%eax
4031c1:	50                   	push   %eax
4031c2:	53                   	push   %ebx
4031c3:	6a 00                	push   $0x0
4031c5:	ff 75 10             	push   0x10(%ebp)
4031c8:	ff 15 e0 d0 41 00    	call   *0x41d0e0
4031ce:	8b 4d 08             	mov    0x8(%ebp),%ecx
4031d1:	f6 41 08 10          	testb  $0x10,0x8(%ecx)
4031d5:	74 03                	je     0x4031da
4031d7:	83 26 fe             	andl   $0xfffffffe,(%esi)
4031da:	f6 41 08 08          	testb  $0x8,0x8(%ecx)
4031de:	74 03                	je     0x4031e3
4031e0:	83 26 fb             	andl   $0xfffffffb,(%esi)
4031e3:	f6 41 08 04          	testb  $0x4,0x8(%ecx)
4031e7:	74 03                	je     0x4031ec
4031e9:	83 26 f7             	andl   $0xfffffff7,(%esi)
4031ec:	f6 41 08 02          	testb  $0x2,0x8(%ecx)
4031f0:	74 03                	je     0x4031f5
4031f2:	83 26 ef             	andl   $0xffffffef,(%esi)
4031f5:	84 59 08             	test   %bl,0x8(%ecx)
4031f8:	74 03                	je     0x4031fd
4031fa:	83 26 df             	andl   $0xffffffdf,(%esi)
4031fd:	8b 01                	mov    (%ecx),%eax
4031ff:	83 e0 03             	and    $0x3,%eax
403202:	33 db                	xor    %ebx,%ebx
403204:	2b c3                	sub    %ebx,%eax
403206:	ba ff f3 ff ff       	mov    $0xfffff3ff,%edx
40320b:	74 2f                	je     0x40323c
40320d:	48                   	dec    %eax
40320e:	74 1e                	je     0x40322e
403210:	48                   	dec    %eax
403211:	74 0b                	je     0x40321e
403213:	48                   	dec    %eax
403214:	75 28                	jne    0x40323e
403216:	81 0e 00 0c 00 00    	orl    $0xc00,(%esi)
40321c:	eb 20                	jmp    0x40323e
40321e:	8b 06                	mov    (%esi),%eax
403220:	25 ff fb ff ff       	and    $0xfffffbff,%eax
403225:	0d 00 08 00 00       	or     $0x800,%eax
40322a:	89 06                	mov    %eax,(%esi)
40322c:	eb 10                	jmp    0x40323e
40322e:	8b 06                	mov    (%esi),%eax
403230:	25 ff f7 ff ff       	and    $0xfffff7ff,%eax
403235:	0d 00 04 00 00       	or     $0x400,%eax
40323a:	eb ee                	jmp    0x40322a
40323c:	21 16                	and    %edx,(%esi)
40323e:	8b 01                	mov    (%ecx),%eax
403240:	c1 e8 02             	shr    $0x2,%eax
403243:	83 e0 07             	and    $0x7,%eax
403246:	2b c3                	sub    %ebx,%eax
403248:	74 15                	je     0x40325f
40324a:	48                   	dec    %eax
40324b:	74 07                	je     0x403254
40324d:	48                   	dec    %eax
40324e:	75 1a                	jne    0x40326a
403250:	21 16                	and    %edx,(%esi)
403252:	eb 16                	jmp    0x40326a
403254:	8b 06                	mov    (%esi),%eax
403256:	23 c2                	and    %edx,%eax
403258:	0d 00 02 00 00       	or     $0x200,%eax
40325d:	eb 09                	jmp    0x403268
40325f:	8b 06                	mov    (%esi),%eax
403261:	23 c2                	and    %edx,%eax
403263:	0d 00 03 00 00       	or     $0x300,%eax
403268:	89 06                	mov    %eax,(%esi)
40326a:	39 5d 20             	cmp    %ebx,0x20(%ebp)
40326d:	74 07                	je     0x403276
40326f:	d9 41 50             	flds   0x50(%ecx)
403272:	d9 1f                	fstps  (%edi)
403274:	eb 05                	jmp    0x40327b
403276:	dd 41 50             	fldl   0x50(%ecx)
403279:	dd 1f                	fstpl  (%edi)
40327b:	5f                   	pop    %edi
40327c:	5e                   	pop    %esi
40327d:	5b                   	pop    %ebx
40327e:	5d                   	pop    %ebp
40327f:	c3                   	ret
403280:	8b ff                	mov    %edi,%edi
403282:	55                   	push   %ebp
403283:	8b ec                	mov    %esp,%ebp
403285:	6a 00                	push   $0x0
403287:	ff 75 1c             	push   0x1c(%ebp)
40328a:	ff 75 18             	push   0x18(%ebp)
40328d:	ff 75 14             	push   0x14(%ebp)
403290:	ff 75 10             	push   0x10(%ebp)
403293:	ff 75 0c             	push   0xc(%ebp)
403296:	ff 75 08             	push   0x8(%ebp)
403299:	e8 06 fd ff ff       	call   0x402fa4
40329e:	83 c4 1c             	add    $0x1c,%esp
4032a1:	5d                   	pop    %ebp
4032a2:	c3                   	ret
4032a3:	8b ff                	mov    %edi,%edi
4032a5:	55                   	push   %ebp
4032a6:	8b ec                	mov    %esp,%ebp
4032a8:	83 ec 14             	sub    $0x14,%esp
4032ab:	8b 45 08             	mov    0x8(%ebp),%eax
4032ae:	53                   	push   %ebx
4032af:	56                   	push   %esi
4032b0:	33 db                	xor    %ebx,%ebx
4032b2:	8b f0                	mov    %eax,%esi
4032b4:	83 e6 1f             	and    $0x1f,%esi
4032b7:	43                   	inc    %ebx
4032b8:	89 75 fc             	mov    %esi,-0x4(%ebp)
4032bb:	a8 08                	test   $0x8,%al
4032bd:	74 14                	je     0x4032d3
4032bf:	84 5d 10             	test   %bl,0x10(%ebp)
4032c2:	74 0f                	je     0x4032d3
4032c4:	53                   	push   %ebx
4032c5:	e8 7d 05 00 00       	call   0x403847
4032ca:	59                   	pop    %ecx
4032cb:	83 e6 f7             	and    $0xfffffff7,%esi
4032ce:	e9 90 01 00 00       	jmp    0x403463
4032d3:	a8 04                	test   $0x4,%al
4032d5:	74 16                	je     0x4032ed
4032d7:	f6 45 10 04          	testb  $0x4,0x10(%ebp)
4032db:	74 10                	je     0x4032ed
4032dd:	6a 04                	push   $0x4
4032df:	e8 63 05 00 00       	call   0x403847
4032e4:	59                   	pop    %ecx
4032e5:	83 e6 fb             	and    $0xfffffffb,%esi
4032e8:	e9 76 01 00 00       	jmp    0x403463
4032ed:	84 c3                	test   %al,%bl
4032ef:	0f 84 9a 00 00 00    	je     0x40338f
4032f5:	f6 45 10 08          	testb  $0x8,0x10(%ebp)
4032f9:	0f 84 90 00 00 00    	je     0x40338f
4032ff:	6a 08                	push   $0x8
403301:	e8 41 05 00 00       	call   0x403847
403306:	8b 45 10             	mov    0x10(%ebp),%eax
403309:	59                   	pop    %ecx
40330a:	b9 00 0c 00 00       	mov    $0xc00,%ecx
40330f:	23 c1                	and    %ecx,%eax
403311:	74 54                	je     0x403367
403313:	3d 00 04 00 00       	cmp    $0x400,%eax
403318:	74 37                	je     0x403351
40331a:	3d 00 08 00 00       	cmp    $0x800,%eax
40331f:	74 1a                	je     0x40333b
403321:	3b c1                	cmp    %ecx,%eax
403323:	75 62                	jne    0x403387
403325:	d9 ee                	fldz
403327:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40332a:	dc 19                	fcompl (%ecx)
40332c:	df e0                	fnstsw %ax
40332e:	dd 05 a8 f3 41 00    	fldl   0x41f3a8
403334:	f6 c4 05             	test   $0x5,%ah
403337:	7b 4c                	jnp    0x403385
403339:	eb 48                	jmp    0x403383
40333b:	d9 ee                	fldz
40333d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403340:	dc 19                	fcompl (%ecx)
403342:	df e0                	fnstsw %ax
403344:	f6 c4 05             	test   $0x5,%ah
403347:	7b 2c                	jnp    0x403375
403349:	dd 05 a8 f3 41 00    	fldl   0x41f3a8
40334f:	eb 32                	jmp    0x403383
403351:	d9 ee                	fldz
403353:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403356:	dc 19                	fcompl (%ecx)
403358:	df e0                	fnstsw %ax
40335a:	f6 c4 05             	test   $0x5,%ah
40335d:	7a 1e                	jp     0x40337d
40335f:	dd 05 a8 f3 41 00    	fldl   0x41f3a8
403365:	eb 1e                	jmp    0x403385
403367:	d9 ee                	fldz
403369:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40336c:	dc 19                	fcompl (%ecx)
40336e:	df e0                	fnstsw %ax
403370:	f6 c4 05             	test   $0x5,%ah
403373:	7a 08                	jp     0x40337d
403375:	dd 05 98 f3 41 00    	fldl   0x41f398
40337b:	eb 08                	jmp    0x403385
40337d:	dd 05 98 f3 41 00    	fldl   0x41f398
403383:	d9 e0                	fchs
403385:	dd 19                	fstpl  (%ecx)
403387:	83 e6 fe             	and    $0xfffffffe,%esi
40338a:	e9 d4 00 00 00       	jmp    0x403463
40338f:	a8 02                	test   $0x2,%al