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
403391:	0f 84 cc 00 00 00    	je     0x403463
403397:	f6 45 10 10          	testb  $0x10,0x10(%ebp)
40339b:	0f 84 c2 00 00 00    	je     0x403463
4033a1:	33 f6                	xor    %esi,%esi
4033a3:	a8 10                	test   $0x10,%al
4033a5:	74 02                	je     0x4033a9
4033a7:	8b f3                	mov    %ebx,%esi
4033a9:	d9 ee                	fldz
4033ab:	57                   	push   %edi
4033ac:	8b 7d 0c             	mov    0xc(%ebp),%edi
4033af:	dc 1f                	fcompl (%edi)
4033b1:	df e0                	fnstsw %ax
4033b3:	f6 c4 44             	test   $0x44,%ah
4033b6:	0f 8b 91 00 00 00    	jnp    0x40344d
4033bc:	dd 07                	fldl   (%edi)
4033be:	8d 45 f8             	lea    -0x8(%ebp),%eax
4033c1:	50                   	push   %eax
4033c2:	51                   	push   %ecx
4033c3:	51                   	push   %ecx
4033c4:	dd 1c 24             	fstpl  (%esp)
4033c7:	e8 78 03 00 00       	call   0x403744
4033cc:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4033cf:	dd 5d ec             	fstpl  -0x14(%ebp)
4033d2:	81 c1 00 fa ff ff    	add    $0xfffffa00,%ecx
4033d8:	83 c4 0c             	add    $0xc,%esp
4033db:	81 f9 ce fb ff ff    	cmp    $0xfffffbce,%ecx
4033e1:	7d 0d                	jge    0x4033f0
4033e3:	dd 45 ec             	fldl   -0x14(%ebp)
4033e6:	8b f3                	mov    %ebx,%esi
4033e8:	dc 0d 00 da 41 00    	fmull  0x41da00
4033ee:	eb 53                	jmp    0x403443
4033f0:	d9 ee                	fldz
4033f2:	dc 5d ec             	fcompl -0x14(%ebp)
4033f5:	df e0                	fnstsw %ax
4033f7:	f6 c4 41             	test   $0x41,%ah
4033fa:	75 04                	jne    0x403400
4033fc:	8b d3                	mov    %ebx,%edx
4033fe:	eb 02                	jmp    0x403402
403400:	33 d2                	xor    %edx,%edx
403402:	8b 45 f2             	mov    -0xe(%ebp),%eax
403405:	83 e0 0f             	and    $0xf,%eax
403408:	83 c8 10             	or     $0x10,%eax
40340b:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
40340f:	b8 03 fc ff ff       	mov    $0xfffffc03,%eax
403414:	3b c8                	cmp    %eax,%ecx
403416:	7d 22                	jge    0x40343a
403418:	2b c1                	sub    %ecx,%eax
40341a:	84 5d ec             	test   %bl,-0x14(%ebp)
40341d:	74 06                	je     0x403425
40341f:	85 f6                	test   %esi,%esi
403421:	75 02                	jne    0x403425
403423:	8b f3                	mov    %ebx,%esi
403425:	d1 6d ec             	shrl   $1,-0x14(%ebp)
403428:	84 5d f0             	test   %bl,-0x10(%ebp)
40342b:	74 07                	je     0x403434
40342d:	81 4d ec 00 00 00 80 	orl    $0x80000000,-0x14(%ebp)
403434:	d1 6d f0             	shrl   $1,-0x10(%ebp)
403437:	48                   	dec    %eax
403438:	75 e0                	jne    0x40341a
40343a:	85 d2                	test   %edx,%edx
40343c:	74 08                	je     0x403446
40343e:	dd 45 ec             	fldl   -0x14(%ebp)
403441:	d9 e0                	fchs
403443:	dd 5d ec             	fstpl  -0x14(%ebp)
403446:	dd 45 ec             	fldl   -0x14(%ebp)
403449:	dd 1f                	fstpl  (%edi)
40344b:	eb 02                	jmp    0x40344f
40344d:	8b f3                	mov    %ebx,%esi
40344f:	5f                   	pop    %edi
403450:	85 f6                	test   %esi,%esi
403452:	74 08                	je     0x40345c
403454:	6a 10                	push   $0x10
403456:	e8 ec 03 00 00       	call   0x403847
40345b:	59                   	pop    %ecx
40345c:	83 65 fc fd          	andl   $0xfffffffd,-0x4(%ebp)
403460:	8b 75 fc             	mov    -0x4(%ebp),%esi
403463:	f6 45 08 10          	testb  $0x10,0x8(%ebp)
403467:	74 11                	je     0x40347a
403469:	f6 45 10 20          	testb  $0x20,0x10(%ebp)
40346d:	74 0b                	je     0x40347a
40346f:	6a 20                	push   $0x20
403471:	e8 d1 03 00 00       	call   0x403847
403476:	59                   	pop    %ecx
403477:	83 e6 ef             	and    $0xffffffef,%esi
40347a:	33 c0                	xor    %eax,%eax
40347c:	85 f6                	test   %esi,%esi
40347e:	5e                   	pop    %esi
40347f:	0f 94 c0             	sete   %al
403482:	5b                   	pop    %ebx
403483:	c9                   	leave
403484:	c3                   	ret
403485:	8b ff                	mov    %edi,%edi
403487:	55                   	push   %ebp
403488:	8b ec                	mov    %esp,%ebp
40348a:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
40348e:	74 15                	je     0x4034a5
403490:	7e 1e                	jle    0x4034b0
403492:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
403496:	7f 18                	jg     0x4034b0
403498:	e8 af f9 ff ff       	call   0x402e4c
40349d:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4034a3:	5d                   	pop    %ebp
4034a4:	c3                   	ret
4034a5:	e8 a2 f9 ff ff       	call   0x402e4c
4034aa:	c7 00 21 00 00 00    	movl   $0x21,(%eax)
4034b0:	5d                   	pop    %ebp
4034b1:	c3                   	ret
4034b2:	8b ff                	mov    %edi,%edi
4034b4:	55                   	push   %ebp
4034b5:	8b ec                	mov    %esp,%ebp
4034b7:	8a 45 08             	mov    0x8(%ebp),%al
4034ba:	a8 20                	test   $0x20,%al
4034bc:	74 04                	je     0x4034c2
4034be:	6a 05                	push   $0x5
4034c0:	eb 17                	jmp    0x4034d9
4034c2:	a8 08                	test   $0x8,%al
4034c4:	74 05                	je     0x4034cb
4034c6:	33 c0                	xor    %eax,%eax
4034c8:	40                   	inc    %eax
4034c9:	5d                   	pop    %ebp
4034ca:	c3                   	ret
4034cb:	a8 04                	test   $0x4,%al
4034cd:	74 04                	je     0x4034d3
4034cf:	6a 02                	push   $0x2
4034d1:	eb 06                	jmp    0x4034d9
4034d3:	a8 01                	test   $0x1,%al
4034d5:	74 05                	je     0x4034dc
4034d7:	6a 03                	push   $0x3
4034d9:	58                   	pop    %eax
4034da:	5d                   	pop    %ebp
4034db:	c3                   	ret
4034dc:	0f b6 c0             	movzbl %al,%eax
4034df:	83 e0 02             	and    $0x2,%eax
4034e2:	03 c0                	add    %eax,%eax
4034e4:	5d                   	pop    %ebp
4034e5:	c3                   	ret
4034e6:	8b ff                	mov    %edi,%edi
4034e8:	55                   	push   %ebp
4034e9:	8b ec                	mov    %esp,%ebp
4034eb:	83 ec 20             	sub    $0x20,%esp
4034ee:	33 c0                	xor    %eax,%eax
4034f0:	8b 0c c5 b0 f2 41 00 	mov    0x41f2b0(,%eax,8),%ecx
4034f7:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
4034fa:	74 64                	je     0x403560
4034fc:	40                   	inc    %eax
4034fd:	83 f8 1d             	cmp    $0x1d,%eax
403500:	7c ee                	jl     0x4034f0
403502:	33 c0                	xor    %eax,%eax
403504:	89 45 e4             	mov    %eax,-0x1c(%ebp)
403507:	85 c0                	test   %eax,%eax
403509:	74 5e                	je     0x403569
40350b:	8b 45 10             	mov    0x10(%ebp),%eax
40350e:	89 45 e8             	mov    %eax,-0x18(%ebp)
403511:	8b 45 14             	mov    0x14(%ebp),%eax
403514:	89 45 ec             	mov    %eax,-0x14(%ebp)
403517:	8b 45 18             	mov    0x18(%ebp),%eax
40351a:	89 45 f0             	mov    %eax,-0x10(%ebp)
40351d:	8b 45 1c             	mov    0x1c(%ebp),%eax
403520:	56                   	push   %esi
403521:	8b 75 08             	mov    0x8(%ebp),%esi
403524:	89 45 f4             	mov    %eax,-0xc(%ebp)
403527:	8b 45 20             	mov    0x20(%ebp),%eax
40352a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40352d:	8b 45 24             	mov    0x24(%ebp),%eax
403530:	68 ff ff 00 00       	push   $0xffff
403535:	ff 75 28             	push   0x28(%ebp)
403538:	89 75 e0             	mov    %esi,-0x20(%ebp)
40353b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40353e:	e8 db 02 00 00       	call   0x40381e
403543:	8d 45 e0             	lea    -0x20(%ebp),%eax
403546:	50                   	push   %eax
403547:	e8 13 f9 ff ff       	call   0x402e5f
40354c:	83 c4 0c             	add    $0xc,%esp
40354f:	85 c0                	test   %eax,%eax
403551:	75 07                	jne    0x40355a