41009c:	dc 19                	fcompl (%ecx)
41009e:	df e0                	fnstsw %ax
4100a0:	dd 05 80 10 42 00    	fldl   0x421080
4100a6:	f6 c4 05             	test   $0x5,%ah
4100a9:	7b 4c                	jnp    0x4100f7
4100ab:	eb 48                	jmp    0x4100f5
4100ad:	d9 ee                	fldz
4100af:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4100b2:	dc 19                	fcompl (%ecx)
4100b4:	df e0                	fnstsw %ax
4100b6:	f6 c4 05             	test   $0x5,%ah
4100b9:	7b 2c                	jnp    0x4100e7
4100bb:	dd 05 80 10 42 00    	fldl   0x421080
4100c1:	eb 32                	jmp    0x4100f5
4100c3:	d9 ee                	fldz
4100c5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4100c8:	dc 19                	fcompl (%ecx)
4100ca:	df e0                	fnstsw %ax
4100cc:	f6 c4 05             	test   $0x5,%ah
4100cf:	7a 1e                	jp     0x4100ef
4100d1:	dd 05 80 10 42 00    	fldl   0x421080
4100d7:	eb 1e                	jmp    0x4100f7
4100d9:	d9 ee                	fldz
4100db:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4100de:	dc 19                	fcompl (%ecx)
4100e0:	df e0                	fnstsw %ax
4100e2:	f6 c4 05             	test   $0x5,%ah
4100e5:	7a 08                	jp     0x4100ef
4100e7:	dd 05 70 10 42 00    	fldl   0x421070
4100ed:	eb 08                	jmp    0x4100f7
4100ef:	dd 05 70 10 42 00    	fldl   0x421070
4100f5:	d9 e0                	fchs
4100f7:	dd 19                	fstpl  (%ecx)
4100f9:	83 e6 fe             	and    $0xfffffffe,%esi
4100fc:	e9 d2 00 00 00       	jmp    0x4101d3
410101:	f6 c3 02             	test   $0x2,%bl
410104:	0f 84 c9 00 00 00    	je     0x4101d3
41010a:	f6 45 10 10          	testb  $0x10,0x10(%ebp)
41010e:	0f 84 bf 00 00 00    	je     0x4101d3
410114:	57                   	push   %edi
410115:	33 ff                	xor    %edi,%edi
410117:	f6 c3 10             	test   $0x10,%bl
41011a:	74 01                	je     0x41011d
41011c:	47                   	inc    %edi
41011d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410120:	dd 01                	fldl   (%ecx)
410122:	d9 ee                	fldz
410124:	da e9                	fucompp
410126:	df e0                	fnstsw %ax
410128:	f6 c4 44             	test   $0x44,%ah
41012b:	0f 8b 8f 00 00 00    	jnp    0x4101c0
410131:	dd 01                	fldl   (%ecx)
410133:	8d 45 08             	lea    0x8(%ebp),%eax
410136:	50                   	push   %eax
410137:	51                   	push   %ecx
410138:	51                   	push   %ecx
410139:	dd 1c 24             	fstpl  (%esp)
41013c:	e8 da fd ff ff       	call   0x40ff1b
410141:	8b 45 08             	mov    0x8(%ebp),%eax
410144:	dd 55 f4             	fstl   -0xc(%ebp)
410147:	d9 ee                	fldz
410149:	05 00 fa ff ff       	add    $0xfffffa00,%eax
41014e:	83 c4 0c             	add    $0xc,%esp
410151:	89 45 08             	mov    %eax,0x8(%ebp)
410154:	3d ce fb ff ff       	cmp    $0xfffffbce,%eax
410159:	7d 07                	jge    0x410162
41015b:	33 ff                	xor    %edi,%edi
41015d:	de c9                	fmulp  %st,%st(1)
41015f:	47                   	inc    %edi
410160:	eb 57                	jmp    0x4101b9
410162:	de d9                	fcompp
410164:	33 d2                	xor    %edx,%edx
410166:	df e0                	fnstsw %ax
410168:	f6 c4 41             	test   $0x41,%ah
41016b:	75 01                	jne    0x41016e
41016d:	42                   	inc    %edx
41016e:	8b 45 fa             	mov    -0x6(%ebp),%eax
410171:	83 e0 0f             	and    $0xf,%eax
410174:	83 c8 10             	or     $0x10,%eax
410177:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
41017b:	8b 45 08             	mov    0x8(%ebp),%eax
41017e:	b9 03 fc ff ff       	mov    $0xfffffc03,%ecx
410183:	3b c1                	cmp    %ecx,%eax
410185:	7d 29                	jge    0x4101b0
410187:	2b c8                	sub    %eax,%ecx
410189:	8b 45 f4             	mov    -0xc(%ebp),%eax
41018c:	f6 45 f4 01          	testb  $0x1,-0xc(%ebp)
410190:	74 05                	je     0x410197
410192:	85 ff                	test   %edi,%edi
410194:	75 01                	jne    0x410197
410196:	47                   	inc    %edi
410197:	d1 e8                	shr    $1,%eax
410199:	f6 45 f8 01          	testb  $0x1,-0x8(%ebp)
41019d:	89 45 f4             	mov    %eax,-0xc(%ebp)
4101a0:	74 08                	je     0x4101aa
4101a2:	0d 00 00 00 80       	or     $0x80000000,%eax
4101a7:	89 45 f4             	mov    %eax,-0xc(%ebp)
4101aa:	d1 6d f8             	shrl   $1,-0x8(%ebp)
4101ad:	49                   	dec    %ecx
4101ae:	75 dc                	jne    0x41018c
4101b0:	dd 45 f4             	fldl   -0xc(%ebp)
4101b3:	85 d2                	test   %edx,%edx
4101b5:	74 02                	je     0x4101b9
4101b7:	d9 e0                	fchs
4101b9:	8b 45 0c             	mov    0xc(%ebp),%eax
4101bc:	dd 18                	fstpl  (%eax)
4101be:	eb 03                	jmp    0x4101c3
4101c0:	33 ff                	xor    %edi,%edi
4101c2:	47                   	inc    %edi
4101c3:	85 ff                	test   %edi,%edi
4101c5:	5f                   	pop    %edi
4101c6:	74 08                	je     0x4101d0
4101c8:	6a 10                	push   $0x10
4101ca:	e8 06 04 00 00       	call   0x4105d5
4101cf:	59                   	pop    %ecx
4101d0:	83 e6 fd             	and    $0xfffffffd,%esi
4101d3:	f6 c3 10             	test   $0x10,%bl
4101d6:	74 11                	je     0x4101e9
4101d8:	f6 45 10 20          	testb  $0x20,0x10(%ebp)
4101dc:	74 0b                	je     0x4101e9
4101de:	6a 20                	push   $0x20
4101e0:	e8 f0 03 00 00       	call   0x4105d5
4101e5:	59                   	pop    %ecx
4101e6:	83 e6 ef             	and    $0xffffffef,%esi
4101e9:	33 c0                	xor    %eax,%eax
4101eb:	85 f6                	test   %esi,%esi
4101ed:	5e                   	pop    %esi
4101ee:	0f 94 c0             	sete   %al
4101f1:	5b                   	pop    %ebx
4101f2:	c9                   	leave
4101f3:	c3                   	ret
4101f4:	55                   	push   %ebp
4101f5:	8b ec                	mov    %esp,%ebp
4101f7:	6a 00                	push   $0x0
4101f9:	ff 75 1c             	push   0x1c(%ebp)
4101fc:	ff 75 18             	push   0x18(%ebp)
4101ff:	ff 75 14             	push   0x14(%ebp)
410202:	ff 75 10             	push   0x10(%ebp)
410205:	ff 75 0c             	push   0xc(%ebp)
410208:	ff 75 08             	push   0x8(%ebp)
41020b:	e8 05 00 00 00       	call   0x410215
410210:	83 c4 1c             	add    $0x1c,%esp
410213:	5d                   	pop    %ebp
410214:	c3                   	ret
410215:	55                   	push   %ebp
410216:	8b ec                	mov    %esp,%ebp
410218:	8b 45 08             	mov    0x8(%ebp),%eax
41021b:	33 c9                	xor    %ecx,%ecx
41021d:	89 48 04             	mov    %ecx,0x4(%eax)
410220:	8b 45 08             	mov    0x8(%ebp),%eax
410223:	53                   	push   %ebx
410224:	89 48 08             	mov    %ecx,0x8(%eax)
410227:	8b 45 08             	mov    0x8(%ebp),%eax
41022a:	33 db                	xor    %ebx,%ebx
41022c:	89 48 0c             	mov    %ecx,0xc(%eax)
41022f:	8b 4d 10             	mov    0x10(%ebp),%ecx
410232:	43                   	inc    %ebx
410233:	57                   	push   %edi
410234:	f6 c1 10             	test   $0x10,%cl
410237:	74 0d                	je     0x410246
410239:	8b 45 08             	mov    0x8(%ebp),%eax
41023c:	bf 8f 00 00 c0       	mov    $0xc000008f,%edi
410241:	09 58 04             	or     %ebx,0x4(%eax)
410244:	eb 03                	jmp    0x410249
410246:	8b 7d 08             	mov    0x8(%ebp),%edi
410249:	f6 c1 02             	test   $0x2,%cl
41024c:	74 0c                	je     0x41025a
41024e:	8b 45 08             	mov    0x8(%ebp),%eax
410251:	bf 93 00 00 c0       	mov    $0xc0000093,%edi
410256:	83 48 04 02          	orl    $0x2,0x4(%eax)
41025a:	f6 c1 01             	test   $0x1,%cl
41025d:	74 0c                	je     0x41026b
41025f:	8b 45 08             	mov    0x8(%ebp),%eax
410262:	bf 91 00 00 c0       	mov    $0xc0000091,%edi
410267:	83 48 04 04          	orl    $0x4,0x4(%eax)
41026b:	f6 c1 04             	test   $0x4,%cl
41026e:	74 0c                	je     0x41027c
410270:	8b 45 08             	mov    0x8(%ebp),%eax
410273:	bf 8e 00 00 c0       	mov    $0xc000008e,%edi
410278:	83 48 04 08          	orl    $0x8,0x4(%eax)
41027c:	f6 c1 08             	test   $0x8,%cl
41027f:	74 0c                	je     0x41028d
410281:	8b 45 08             	mov    0x8(%ebp),%eax
410284:	bf 90 00 00 c0       	mov    $0xc0000090,%edi
410289:	83 48 04 10          	orl    $0x10,0x4(%eax)
41028d:	8b 4d 08             	mov    0x8(%ebp),%ecx
410290:	56                   	push   %esi
410291:	8b 75 0c             	mov    0xc(%ebp),%esi
410294:	8b 06                	mov    (%esi),%eax
410296:	c1 e0 04             	shl    $0x4,%eax
410299:	f7 d0                	not    %eax
41029b:	33 41 08             	xor    0x8(%ecx),%eax
41029e:	83 e0 10             	and    $0x10,%eax
4102a1:	31 41 08             	xor    %eax,0x8(%ecx)
4102a4:	8b 06                	mov    (%esi),%eax
4102a6:	8b 4d 08             	mov    0x8(%ebp),%ecx
4102a9:	03 c0                	add    %eax,%eax
4102ab:	f7 d0                	not    %eax
4102ad:	33 41 08             	xor    0x8(%ecx),%eax
4102b0:	83 e0 08             	and    $0x8,%eax
4102b3:	31 41 08             	xor    %eax,0x8(%ecx)
4102b6:	8b 06                	mov    (%esi),%eax
4102b8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4102bb:	d1 e8                	shr    $1,%eax
4102bd:	f7 d0                	not    %eax
4102bf:	33 41 08             	xor    0x8(%ecx),%eax
4102c2:	83 e0 04             	and    $0x4,%eax
4102c5:	31 41 08             	xor    %eax,0x8(%ecx)
4102c8:	8b 06                	mov    (%esi),%eax
4102ca:	8b 4d 08             	mov    0x8(%ebp),%ecx
4102cd:	c1 e8 03             	shr    $0x3,%eax
4102d0:	f7 d0                	not    %eax
4102d2:	33 41 08             	xor    0x8(%ecx),%eax
4102d5:	83 e0 02             	and    $0x2,%eax
4102d8:	31 41 08             	xor    %eax,0x8(%ecx)
4102db:	8b 06                	mov    (%esi),%eax
4102dd:	8b 4d 08             	mov    0x8(%ebp),%ecx
4102e0:	c1 e8 05             	shr    $0x5,%eax
4102e3:	f7 d0                	not    %eax
4102e5:	33 41 08             	xor    0x8(%ecx),%eax
4102e8:	23 c3                	and    %ebx,%eax
4102ea:	31 41 08             	xor    %eax,0x8(%ecx)
4102ed:	e8 39 03 00 00       	call   0x41062b
4102f2:	8b d0                	mov    %eax,%edx
4102f4:	f6 c2 01             	test   $0x1,%dl
4102f7:	74 07                	je     0x410300
4102f9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4102fc:	83 49 0c 10          	orl    $0x10,0xc(%ecx)
410300:	f6 c2 04             	test   $0x4,%dl
410303:	74 07                	je     0x41030c
410305:	8b 45 08             	mov    0x8(%ebp),%eax
410308:	83 48 0c 08          	orl    $0x8,0xc(%eax)
41030c:	f6 c2 08             	test   $0x8,%dl
41030f:	74 07                	je     0x410318
410311:	8b 45 08             	mov    0x8(%ebp),%eax
410314:	83 48 0c 04          	orl    $0x4,0xc(%eax)
410318:	f6 c2 10             	test   $0x10,%dl
41031b:	74 07                	je     0x410324
41031d:	8b 45 08             	mov    0x8(%ebp),%eax
410320:	83 48 0c 02          	orl    $0x2,0xc(%eax)
410324:	f6 c2 20             	test   $0x20,%dl
410327:	74 06                	je     0x41032f
410329:	8b 45 08             	mov    0x8(%ebp),%eax
41032c:	09 58 0c             	or     %ebx,0xc(%eax)
41032f:	8b 06                	mov    (%esi),%eax
410331:	b9 00 0c 00 00       	mov    $0xc00,%ecx
410336:	23 c1                	and    %ecx,%eax
410338:	74 35                	je     0x41036f
41033a:	3d 00 04 00 00       	cmp    $0x400,%eax
41033f:	74 22                	je     0x410363
410341:	3d 00 08 00 00       	cmp    $0x800,%eax
410346:	74 0c                	je     0x410354
410348:	3b c1                	cmp    %ecx,%eax
41034a:	75 29                	jne    0x410375
41034c:	8b 45 08             	mov    0x8(%ebp),%eax
41034f:	83 08 03             	orl    $0x3,(%eax)
410352:	eb 21                	jmp    0x410375
410354:	8b 4d 08             	mov    0x8(%ebp),%ecx
410357:	8b 01                	mov    (%ecx),%eax
410359:	83 e0 fe             	and    $0xfffffffe,%eax
41035c:	83 c8 02             	or     $0x2,%eax
41035f:	89 01                	mov    %eax,(%ecx)
410361:	eb 12                	jmp    0x410375
410363:	8b 4d 08             	mov    0x8(%ebp),%ecx
410366:	8b 01                	mov    (%ecx),%eax
410368:	83 e0 fd             	and    $0xfffffffd,%eax
41036b:	0b c3                	or     %ebx,%eax
41036d:	eb f0                	jmp    0x41035f
41036f:	8b 45 08             	mov    0x8(%ebp),%eax
410372:	83 20 fc             	andl   $0xfffffffc,(%eax)
410375:	8b 06                	mov    (%esi),%eax
410377:	b9 00 03 00 00       	mov    $0x300,%ecx
41037c:	23 c1                	and    %ecx,%eax
41037e:	74 20                	je     0x4103a0
410380:	3d 00 02 00 00       	cmp    $0x200,%eax
410385:	74 0c                	je     0x410393
410387:	3b c1                	cmp    %ecx,%eax
410389:	75 22                	jne    0x4103ad
41038b:	8b 45 08             	mov    0x8(%ebp),%eax
41038e:	83 20 e3             	andl   $0xffffffe3,(%eax)
410391:	eb 1a                	jmp    0x4103ad
410393:	8b 4d 08             	mov    0x8(%ebp),%ecx
410396:	8b 01                	mov    (%ecx),%eax
410398:	83 e0 e7             	and    $0xffffffe7,%eax
41039b:	83 c8 04             	or     $0x4,%eax
41039e:	eb 0b                	jmp    0x4103ab
4103a0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4103a3:	8b 01                	mov    (%ecx),%eax
4103a5:	83 e0 eb             	and    $0xffffffeb,%eax
4103a8:	83 c8 08             	or     $0x8,%eax
4103ab:	89 01                	mov    %eax,(%ecx)
4103ad:	8b 45 08             	mov    0x8(%ebp),%eax
4103b0:	8b 4d 14             	mov    0x14(%ebp),%ecx
4103b3:	c1 e1 05             	shl    $0x5,%ecx
4103b6:	33 08                	xor    (%eax),%ecx
4103b8:	81 e1 e0 ff 01 00    	and    $0x1ffe0,%ecx
4103be:	31 08                	xor    %ecx,(%eax)
4103c0:	8b 45 08             	mov    0x8(%ebp),%eax
4103c3:	09 58 20             	or     %ebx,0x20(%eax)
4103c6:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
4103ca:	74 2c                	je     0x4103f8
4103cc:	8b 45 08             	mov    0x8(%ebp),%eax
4103cf:	83 60 20 e1          	andl   $0xffffffe1,0x20(%eax)
4103d3:	8b 45 18             	mov    0x18(%ebp),%eax
4103d6:	d9 00                	flds   (%eax)
4103d8:	8b 45 08             	mov    0x8(%ebp),%eax
4103db:	d9 58 10             	fstps  0x10(%eax)
4103de:	8b 45 08             	mov    0x8(%ebp),%eax
4103e1:	09 58 60             	or     %ebx,0x60(%eax)
4103e4:	8b 45 08             	mov    0x8(%ebp),%eax
4103e7:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4103ea:	83 60 60 e1          	andl   $0xffffffe1,0x60(%eax)
4103ee:	8b 45 08             	mov    0x8(%ebp),%eax
4103f1:	d9 03                	flds   (%ebx)
4103f3:	d9 58 50             	fstps  0x50(%eax)
4103f6:	eb 3a                	jmp    0x410432
4103f8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4103fb:	8b 41 20             	mov    0x20(%ecx),%eax
4103fe:	83 e0 e3             	and    $0xffffffe3,%eax
410401:	83 c8 02             	or     $0x2,%eax
410404:	89 41 20             	mov    %eax,0x20(%ecx)
410407:	8b 45 18             	mov    0x18(%ebp),%eax
41040a:	dd 00                	fldl   (%eax)
41040c:	8b 45 08             	mov    0x8(%ebp),%eax
41040f:	dd 58 10             	fstpl  0x10(%eax)
410412:	8b 45 08             	mov    0x8(%ebp),%eax
410415:	09 58 60             	or     %ebx,0x60(%eax)
410418:	8b 4d 08             	mov    0x8(%ebp),%ecx
41041b:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
41041e:	8b 41 60             	mov    0x60(%ecx),%eax
410421:	83 e0 e3             	and    $0xffffffe3,%eax
410424:	83 c8 02             	or     $0x2,%eax
410427:	89 41 60             	mov    %eax,0x60(%ecx)
41042a:	dd 03                	fldl   (%ebx)
41042c:	8b 45 08             	mov    0x8(%ebp),%eax
41042f:	dd 58 50             	fstpl  0x50(%eax)
410432:	e8 66 01 00 00       	call   0x41059d
410437:	8d 45 08             	lea    0x8(%ebp),%eax
41043a:	50                   	push   %eax
41043b:	6a 01                	push   $0x1
41043d:	6a 00                	push   $0x0
41043f:	57                   	push   %edi
410440:	ff 15 84 90 41 00    	call   *0x419084
410446:	8b 4d 08             	mov    0x8(%ebp),%ecx
410449:	f6 41 08 10          	testb  $0x10,0x8(%ecx)
41044d:	74 03                	je     0x410452
41044f:	83 26 fe             	andl   $0xfffffffe,(%esi)
410452:	f6 41 08 08          	testb  $0x8,0x8(%ecx)
410456:	74 03                	je     0x41045b
410458:	83 26 fb             	andl   $0xfffffffb,(%esi)