405227:	b8 cc 72 42 00       	mov    $0x4272cc,%eax
40522c:	0f 45 41 04          	cmovne 0x4(%ecx),%eax
405230:	c3                   	ret
405231:	b8 68 6b 42 00       	mov    $0x426b68,%eax
405236:	e8 85 1b 00 00       	call   0x406dc0
40523b:	51                   	push   %ecx
40523c:	51                   	push   %ecx
40523d:	56                   	push   %esi
40523e:	8d 45 ec             	lea    -0x14(%ebp),%eax
405241:	50                   	push   %eax
405242:	e8 e5 f4 ff ff       	call   0x40472c
405247:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40524b:	50                   	push   %eax
40524c:	e8 88 d2 ff ff       	call   0x4024d9
405251:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405255:	8b f0                	mov    %eax,%esi
405257:	59                   	pop    %ecx
405258:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40525b:	e8 92 de ff ff       	call   0x4030f2
405260:	ff 75 08             	push   0x8(%ebp)
405263:	8b ce                	mov    %esi,%ecx
405265:	e8 11 00 00 00       	call   0x40527b
40526a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40526d:	5e                   	pop    %esi
40526e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405275:	8b e5                	mov    %ebp,%esp
405277:	5d                   	pop    %ebp
405278:	c2 04 00             	ret    $0x4
40527b:	8b 01                	mov    (%ecx),%eax
40527d:	ff 60 30             	jmp    *0x30(%eax)
405280:	8b 41 20             	mov    0x20(%ecx),%eax
405283:	8b 51 24             	mov    0x24(%ecx),%edx
405286:	56                   	push   %esi
405287:	8b 74 24 08          	mov    0x8(%esp),%esi
40528b:	89 71 20             	mov    %esi,0x20(%ecx)
40528e:	8b 74 24 0c          	mov    0xc(%esp),%esi
405292:	89 71 24             	mov    %esi,0x24(%ecx)
405295:	5e                   	pop    %esi
405296:	c2 08 00             	ret    $0x8
405299:	8b 41 20             	mov    0x20(%ecx),%eax
40529c:	8b 51 24             	mov    0x24(%ecx),%edx
40529f:	c3                   	ret
4052a0:	83 ec 0c             	sub    $0xc,%esp
4052a3:	53                   	push   %ebx
4052a4:	55                   	push   %ebp
4052a5:	56                   	push   %esi
4052a6:	57                   	push   %edi
4052a7:	8b 7c 24 28          	mov    0x28(%esp),%edi
4052ab:	8b c1                	mov    %ecx,%eax
4052ad:	89 44 24 10          	mov    %eax,0x10(%esp)
4052b1:	0f 57 c0             	xorps  %xmm0,%xmm0
4052b4:	66 0f 13 44 24 14    	movlpd %xmm0,0x14(%esp)
4052ba:	85 ff                	test   %edi,%edi
4052bc:	0f 8c ed 00 00 00    	jl     0x4053af
4052c2:	8b 74 24 24          	mov    0x24(%esp),%esi
4052c6:	7f 08                	jg     0x4052d0
4052c8:	85 f6                	test   %esi,%esi
4052ca:	0f 84 df 00 00 00    	je     0x4053af
4052d0:	8b 5c 24 18          	mov    0x18(%esp),%ebx
4052d4:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4052d8:	8b c8                	mov    %eax,%ecx
4052da:	e8 84 e7 ff ff       	call   0x403a63
4052df:	8b ca                	mov    %edx,%ecx
4052e1:	89 44 24 24          	mov    %eax,0x24(%esp)
4052e5:	89 4c 24 14          	mov    %ecx,0x14(%esp)
4052e9:	85 c9                	test   %ecx,%ecx
4052eb:	7c 54                	jl     0x405341
4052ed:	7f 04                	jg     0x4052f3
4052ef:	85 c0                	test   %eax,%eax
4052f1:	74 4e                	je     0x405341
4052f3:	3b f9                	cmp    %ecx,%edi
4052f5:	7f 10                	jg     0x405307
4052f7:	7c 04                	jl     0x4052fd
4052f9:	3b f0                	cmp    %eax,%esi
4052fb:	73 0a                	jae    0x405307
4052fd:	8b c6                	mov    %esi,%eax
4052ff:	89 74 24 24          	mov    %esi,0x24(%esp)
405303:	89 7c 24 14          	mov    %edi,0x14(%esp)
405307:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40530b:	50                   	push   %eax
40530c:	e8 43 f4 ff ff       	call   0x404754
405311:	8b 4c 24 24          	mov    0x24(%esp),%ecx
405315:	50                   	push   %eax
405316:	51                   	push   %ecx
405317:	e8 02 f0 ff ff       	call   0x40431e
40531c:	8b 44 24 30          	mov    0x30(%esp),%eax
405320:	83 c4 0c             	add    $0xc,%esp
405323:	8b 4c 24 10          	mov    0x10(%esp),%ecx
405327:	03 e8                	add    %eax,%ebp
405329:	13 5c 24 14          	adc    0x14(%esp),%ebx
40532d:	2b f0                	sub    %eax,%esi
40532f:	50                   	push   %eax
405330:	1b 7c 24 18          	sbb    0x18(%esp),%edi
405334:	e8 df f3 ff ff       	call   0x404718
405339:	8b 44 24 24          	mov    0x24(%esp),%eax
40533d:	03 c0                	add    %eax,%eax
40533f:	eb 52                	jmp    0x405393
405341:	8b 4c 24 10          	mov    0x10(%esp),%ecx
405345:	8b 01                	mov    (%ecx),%eax
405347:	ff 50 1c             	call   *0x1c(%eax)
40534a:	0f b7 c0             	movzwl %ax,%eax
40534d:	89 44 24 24          	mov    %eax,0x24(%esp)
405351:	e8 2c f2 ff ff       	call   0x404582
405356:	0f b7 c0             	movzwl %ax,%eax
405359:	89 44 24 14          	mov    %eax,0x14(%esp)
40535d:	8d 44 24 24          	lea    0x24(%esp),%eax
405361:	50                   	push   %eax
405362:	8d 44 24 18          	lea    0x18(%esp),%eax
405366:	50                   	push   %eax
405367:	e8 3c f2 ff ff       	call   0x4045a8
40536c:	59                   	pop    %ecx
40536d:	59                   	pop    %ecx
40536e:	84 c0                	test   %al,%al
405370:	75 45                	jne    0x4053b7
405372:	8d 44 24 24          	lea    0x24(%esp),%eax
405376:	50                   	push   %eax
405377:	e8 9f fd ff ff       	call   0x40511b
40537c:	59                   	pop    %ecx
40537d:	8b 4c 24 20          	mov    0x20(%esp),%ecx
405381:	83 c5 01             	add    $0x1,%ebp
405384:	6a 02                	push   $0x2
405386:	83 d3 00             	adc    $0x0,%ebx
405389:	83 c6 ff             	add    $0xffffffff,%esi
40538c:	66 89 01             	mov    %ax,(%ecx)
40538f:	83 d7 ff             	adc    $0xffffffff,%edi
405392:	58                   	pop    %eax
405393:	01 44 24 20          	add    %eax,0x20(%esp)
405397:	8b 44 24 10          	mov    0x10(%esp),%eax
40539b:	85 ff                	test   %edi,%edi
40539d:	0f 8f 35 ff ff ff    	jg     0x4052d8
4053a3:	7c 12                	jl     0x4053b7
4053a5:	85 f6                	test   %esi,%esi
4053a7:	0f 85 2b ff ff ff    	jne    0x4052d8
4053ad:	eb 08                	jmp    0x4053b7
4053af:	8b 5c 24 18          	mov    0x18(%esp),%ebx
4053b3:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4053b7:	5f                   	pop    %edi
4053b8:	5e                   	pop    %esi
4053b9:	8b c5                	mov    %ebp,%eax
4053bb:	8b d3                	mov    %ebx,%edx
4053bd:	5d                   	pop    %ebp
4053be:	5b                   	pop    %ebx
4053bf:	83 c4 0c             	add    $0xc,%esp
4053c2:	c2 0c 00             	ret    $0xc
4053c5:	83 ec 10             	sub    $0x10,%esp
4053c8:	53                   	push   %ebx
4053c9:	8b 5c 24 20          	mov    0x20(%esp),%ebx
4053cd:	8b c1                	mov    %ecx,%eax
4053cf:	89 44 24 04          	mov    %eax,0x4(%esp)
4053d3:	0f 57 c0             	xorps  %xmm0,%xmm0
4053d6:	66 0f 13 44 24 0c    	movlpd %xmm0,0xc(%esp)
4053dc:	55                   	push   %ebp
4053dd:	57                   	push   %edi
4053de:	85 db                	test   %ebx,%ebx
4053e0:	0f 8c 0b 01 00 00    	jl     0x4054f1
4053e6:	8b 7c 24 24          	mov    0x24(%esp),%edi
4053ea:	7f 08                	jg     0x4053f4
4053ec:	85 ff                	test   %edi,%edi
4053ee:	0f 84 fd 00 00 00    	je     0x4054f1
4053f4:	8b 6c 24 18          	mov    0x18(%esp),%ebp
4053f8:	56                   	push   %esi
4053f9:	8b 74 24 18          	mov    0x18(%esp),%esi
4053fd:	89 74 24 28          	mov    %esi,0x28(%esp)
405401:	8b c8                	mov    %eax,%ecx
405403:	e8 e6 e9 ff ff       	call   0x403dee
405408:	8b ca                	mov    %edx,%ecx
40540a:	89 44 24 14          	mov    %eax,0x14(%esp)
40540e:	89 4c 24 18          	mov    %ecx,0x18(%esp)
405412:	85 c9                	test   %ecx,%ecx
405414:	7c 57                	jl     0x40546d
405416:	7f 04                	jg     0x40541c
405418:	85 c0                	test   %eax,%eax
40541a:	74 51                	je     0x40546d
40541c:	3b d9                	cmp    %ecx,%ebx
40541e:	7f 10                	jg     0x405430
405420:	7c 04                	jl     0x405426
405422:	3b f8                	cmp    %eax,%edi
405424:	73 0a                	jae    0x405430
405426:	8b c7                	mov    %edi,%eax
405428:	89 7c 24 14          	mov    %edi,0x14(%esp)
40542c:	89 5c 24 18          	mov    %ebx,0x18(%esp)
405430:	8b 4c 24 10          	mov    0x10(%esp),%ecx
405434:	50                   	push   %eax
405435:	ff 74 24 28          	push   0x28(%esp)
405439:	e8 e1 f7 ff ff       	call   0x404c1f
40543e:	50                   	push   %eax
40543f:	e8 da ee ff ff       	call   0x40431e
405444:	8b 44 24 20          	mov    0x20(%esp),%eax
405448:	83 c4 0c             	add    $0xc,%esp
40544b:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40544f:	03 f0                	add    %eax,%esi
405451:	89 74 24 28          	mov    %esi,0x28(%esp)
405455:	13 6c 24 18          	adc    0x18(%esp),%ebp
405459:	2b f8                	sub    %eax,%edi
40545b:	50                   	push   %eax
40545c:	1b 5c 24 1c          	sbb    0x1c(%esp),%ebx
405460:	e8 79 f7 ff ff       	call   0x404bde
405465:	8b 44 24 14          	mov    0x14(%esp),%eax
405469:	03 c0                	add    %eax,%eax
40546b:	eb 5a                	jmp    0x4054c7
40546d:	8b 44 24 10          	mov    0x10(%esp),%eax
405471:	ff 74 24 24          	push   0x24(%esp)
405475:	8b 30                	mov    (%eax),%esi
405477:	e8 a7 fc ff ff       	call   0x405123
40547c:	59                   	pop    %ecx
40547d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
405481:	0f b7 c0             	movzwl %ax,%eax
405484:	50                   	push   %eax
405485:	ff 56 0c             	call   *0xc(%esi)
405488:	0f b7 c0             	movzwl %ax,%eax
40548b:	89 44 24 18          	mov    %eax,0x18(%esp)
40548f:	e8 ee f0 ff ff       	call   0x404582
405494:	0f b7 c0             	movzwl %ax,%eax
405497:	89 44 24 14          	mov    %eax,0x14(%esp)
40549b:	8d 44 24 18          	lea    0x18(%esp),%eax
40549f:	50                   	push   %eax
4054a0:	8d 44 24 18          	lea    0x18(%esp),%eax
4054a4:	50                   	push   %eax
4054a5:	e8 fe f0 ff ff       	call   0x4045a8
4054aa:	59                   	pop    %ecx
4054ab:	59                   	pop    %ecx
4054ac:	84 c0                	test   %al,%al
4054ae:	75 31                	jne    0x4054e1
4054b0:	8b 74 24 28          	mov    0x28(%esp),%esi
4054b4:	83 c6 01             	add    $0x1,%esi
4054b7:	6a 02                	push   $0x2
4054b9:	83 d5 00             	adc    $0x0,%ebp
4054bc:	89 74 24 2c          	mov    %esi,0x2c(%esp)
4054c0:	83 c7 ff             	add    $0xffffffff,%edi
4054c3:	58                   	pop    %eax
4054c4:	83 d3 ff             	adc    $0xffffffff,%ebx
4054c7:	01 44 24 24          	add    %eax,0x24(%esp)
4054cb:	8b 44 24 10          	mov    0x10(%esp),%eax
4054cf:	85 db                	test   %ebx,%ebx
4054d1:	0f 8f 2a ff ff ff    	jg     0x405401
4054d7:	7c 08                	jl     0x4054e1
4054d9:	85 ff                	test   %edi,%edi
4054db:	0f 85 20 ff ff ff    	jne    0x405401
4054e1:	8b 44 24 28          	mov    0x28(%esp),%eax
4054e5:	5e                   	pop    %esi
4054e6:	5f                   	pop    %edi
4054e7:	8b d5                	mov    %ebp,%edx
4054e9:	5d                   	pop    %ebp
4054ea:	5b                   	pop    %ebx
4054eb:	83 c4 10             	add    $0x10,%esp
4054ee:	c2 0c 00             	ret    $0xc
4054f1:	8b 6c 24 18          	mov    0x18(%esp),%ebp
4054f5:	8b 44 24 14          	mov    0x14(%esp),%eax
4054f9:	eb eb                	jmp    0x4054e6
4054fb:	b8 30 93 83 02       	mov    $0x2839330,%eax
405500:	c3                   	ret
405501:	b8 38 93 83 02       	mov    $0x2839338,%eax
405506:	c3                   	ret
405507:	ff 74 24 10          	push   0x10(%esp)
40550b:	ff 74 24 10          	push   0x10(%esp)
40550f:	ff 74 24 10          	push   0x10(%esp)
405513:	ff 74 24 10          	push   0x10(%esp)
405517:	e8 df ff ff ff       	call   0x4054fb
40551c:	ff 70 04             	push   0x4(%eax)
40551f:	ff 30                	push   (%eax)
405521:	e8 d6 9c 00 00       	call   0x40f1fc
405526:	83 c4 18             	add    $0x18,%esp
405529:	c3                   	ret
40552a:	ff 74 24 10          	push   0x10(%esp)
40552e:	ff 74 24 10          	push   0x10(%esp)
405532:	ff 74 24 10          	push   0x10(%esp)
405536:	ff 74 24 10          	push   0x10(%esp)
40553a:	e8 bc ff ff ff       	call   0x4054fb
40553f:	ff 70 04             	push   0x4(%eax)
405542:	ff 30                	push   (%eax)
405544:	e8 2a 9d 00 00       	call   0x40f273
405549:	83 c4 18             	add    $0x18,%esp
40554c:	c3                   	ret
40554d:	55                   	push   %ebp
40554e:	8b ec                	mov    %esp,%ebp
405550:	ff 75 18             	push   0x18(%ebp)
405553:	ff 75 14             	push   0x14(%ebp)
405556:	ff 75 10             	push   0x10(%ebp)
405559:	ff 75 0c             	push   0xc(%ebp)
40555c:	ff 75 08             	push   0x8(%ebp)
40555f:	e8 97 ff ff ff       	call   0x4054fb
405564:	8b 08                	mov    (%eax),%ecx
405566:	ff 70 04             	push   0x4(%eax)
405569:	83 c9 01             	or     $0x1,%ecx
40556c:	51                   	push   %ecx
40556d:	e8 78 9d 00 00       	call   0x40f2ea
405572:	83 c9 ff             	or     $0xffffffff,%ecx
405575:	83 c4 1c             	add    $0x1c,%esp
405578:	85 c0                	test   %eax,%eax
40557a:	0f 48 c1             	cmovs  %ecx,%eax
40557d:	5d                   	pop    %ebp
40557e:	c3                   	ret
40557f:	ff 74 24 10          	push   0x10(%esp)
405583:	ff 74 24 10          	push   0x10(%esp)
405587:	ff 74 24 10          	push   0x10(%esp)
40558b:	6a ff                	push   $0xffffffff
40558d:	ff 74 24 14          	push   0x14(%esp)
405591:	e8 b7 ff ff ff       	call   0x40554d
405596:	83 c4 14             	add    $0x14,%esp
405599:	c3                   	ret
40559a:	ff 74 24 10          	push   0x10(%esp)
40559e:	ff 74 24 10          	push   0x10(%esp)
4055a2:	ff 74 24 10          	push   0x10(%esp)
4055a6:	6a ff                	push   $0xffffffff
4055a8:	ff 74 24 14          	push   0x14(%esp)
4055ac:	e8 50 ff ff ff       	call   0x405501
4055b1:	ff 70 04             	push   0x4(%eax)
4055b4:	ff 30                	push   (%eax)
4055b6:	e8 d6 e7 00 00       	call   0x413d91
4055bb:	83 c4 1c             	add    $0x1c,%esp
4055be:	c3                   	ret
4055bf:	55                   	push   %ebp
4055c0:	8b ec                	mov    %esp,%ebp
4055c2:	51                   	push   %ecx
4055c3:	51                   	push   %ecx
4055c4:	f2 0f 10 45 08       	movsd  0x8(%ebp),%xmm0
4055c9:	51                   	push   %ecx
4055ca:	51                   	push   %ecx
4055cb:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
4055d0:	e8 cb e8 00 00       	call   0x413ea0
4055d5:	dd 5d f8             	fstpl  -0x8(%ebp)
4055d8:	dd 45 f8             	fldl   -0x8(%ebp)
4055db:	59                   	pop    %ecx
4055dc:	59                   	pop    %ecx
4055dd:	8b e5                	mov    %ebp,%esp
4055df:	5d                   	pop    %ebp
4055e0:	c3                   	ret
4055e1:	55                   	push   %ebp
4055e2:	8b ec                	mov    %esp,%ebp
4055e4:	51                   	push   %ecx
4055e5:	51                   	push   %ecx
4055e6:	f2 0f 10 45 08       	movsd  0x8(%ebp),%xmm0
4055eb:	51                   	push   %ecx
4055ec:	51                   	push   %ecx
4055ed:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
4055f2:	e8 f9 e9 00 00       	call   0x413ff0
4055f7:	dd 5d f8             	fstpl  -0x8(%ebp)
4055fa:	dd 45 f8             	fldl   -0x8(%ebp)
4055fd:	59                   	pop    %ecx
4055fe:	59                   	pop    %ecx
4055ff:	8b e5                	mov    %ebp,%esp
405601:	5d                   	pop    %ebp
405602:	c3                   	ret
405603:	55                   	push   %ebp
405604:	8b ec                	mov    %esp,%ebp
405606:	f3 0f 10 45 08       	movss  0x8(%ebp),%xmm0
40560b:	0f 5a c0             	cvtps2pd %xmm0,%xmm0
40560e:	51                   	push   %ecx
40560f:	51                   	push   %ecx
405610:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)