422297:	89 14 24             	mov    %edx,(%esp)
42229a:	e8 ca eb ff ff       	call   0x420e69
42229f:	dd 44 24 10          	fldl   0x10(%esp)
4222a3:	83 c4 1c             	add    $0x1c,%esp
4222a6:	c3                   	ret
4222a7:	66 0f 12 54 24 04    	movlpd 0x4(%esp),%xmm2
4222ad:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
4222b3:	66 0f 7e d0          	movd   %xmm2,%eax
4222b7:	66 0f 73 d2 20       	psrlq  $0x20,%xmm2
4222bc:	66 0f 7e d1          	movd   %xmm2,%ecx
4222c0:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
4222c6:	0b c1                	or     %ecx,%eax
4222c8:	83 f8 00             	cmp    $0x0,%eax
4222cb:	74 a0                	je     0x42226d
4222cd:	ba e9 03 00 00       	mov    $0x3e9,%edx
4222d2:	eb a6                	jmp    0x42227a
4222d4:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4222db:	eb 03                	jmp    0x4222e0
4222dd:	cc                   	int3
4222de:	cc                   	int3
4222df:	cc                   	int3
4222e0:	8b ff                	mov    %edi,%edi
4222e2:	55                   	push   %ebp
4222e3:	8b ec                	mov    %esp,%ebp
4222e5:	51                   	push   %ecx
4222e6:	51                   	push   %ecx
4222e7:	53                   	push   %ebx
4222e8:	56                   	push   %esi
4222e9:	be ff ff 00 00       	mov    $0xffff,%esi
4222ee:	56                   	push   %esi
4222ef:	68 3f 1b 00 00       	push   $0x1b3f
4222f4:	e8 c5 36 ff ff       	call   0x4159be
4222f9:	dd 45 08             	fldl   0x8(%ebp)
4222fc:	8b d8                	mov    %eax,%ebx
4222fe:	59                   	pop    %ecx
4222ff:	59                   	pop    %ecx
422300:	0f b7 4d 0e          	movzwl 0xe(%ebp),%ecx
422304:	b8 f0 7f 00 00       	mov    $0x7ff0,%eax
422309:	23 c8                	and    %eax,%ecx
42230b:	51                   	push   %ecx
42230c:	51                   	push   %ecx
42230d:	dd 1c 24             	fstpl  (%esp)
422310:	66 3b c8             	cmp    %ax,%cx
422313:	75 3d                	jne    0x422352
422315:	e8 b5 35 ff ff       	call   0x4158cf
42231a:	48                   	dec    %eax
42231b:	59                   	pop    %ecx
42231c:	59                   	pop    %ecx
42231d:	83 f8 02             	cmp    $0x2,%eax
422320:	77 0c                	ja     0x42232e
422322:	56                   	push   %esi
422323:	53                   	push   %ebx
422324:	e8 95 36 ff ff       	call   0x4159be
422329:	dd 45 08             	fldl   0x8(%ebp)
42232c:	eb 61                	jmp    0x42238f
42232e:	dd 45 08             	fldl   0x8(%ebp)
422331:	dd 05 d0 60 42 00    	fldl   0x4260d0
422337:	53                   	push   %ebx
422338:	83 ec 10             	sub    $0x10,%esp
42233b:	d8 c1                	fadd   %st(1),%st
42233d:	dd 5c 24 08          	fstpl  0x8(%esp)
422341:	dd 1c 24             	fstpl  (%esp)
422344:	6a 0c                	push   $0xc
422346:	6a 08                	push   $0x8
422348:	e8 e2 2d ff ff       	call   0x41512f
42234d:	83 c4 1c             	add    $0x1c,%esp
422350:	eb 3f                	jmp    0x422391
422352:	e8 10 ee ff ff       	call   0x421167
422357:	dd 55 f8             	fstl   -0x8(%ebp)
42235a:	dd 45 08             	fldl   0x8(%ebp)
42235d:	83 c4 08             	add    $0x8,%esp
422360:	dd e1                	fucom  %st(1)
422362:	df e0                	fnstsw %ax
422364:	f6 c4 44             	test   $0x44,%ah
422367:	7b 18                	jnp    0x422381
422369:	f6 c3 20             	test   $0x20,%bl
42236c:	75 13                	jne    0x422381
42236e:	53                   	push   %ebx
42236f:	83 ec 10             	sub    $0x10,%esp
422372:	d9 c9                	fxch   %st(1)
422374:	dd 5c 24 08          	fstpl  0x8(%esp)
422378:	dd 1c 24             	fstpl  (%esp)
42237b:	6a 0c                	push   $0xc
42237d:	6a 10                	push   $0x10
42237f:	eb c7                	jmp    0x422348
422381:	56                   	push   %esi
422382:	dd d9                	fstp   %st(1)
422384:	53                   	push   %ebx
422385:	dd d8                	fstp   %st(0)
422387:	e8 32 36 ff ff       	call   0x4159be
42238c:	dd 45 f8             	fldl   -0x8(%ebp)
42238f:	59                   	pop    %ecx
422390:	59                   	pop    %ecx
422391:	5e                   	pop    %esi
422392:	5b                   	pop    %ebx
422393:	c9                   	leave
422394:	c3                   	ret
422395:	cc                   	int3
422396:	cc                   	int3
422397:	cc                   	int3
422398:	cc                   	int3
422399:	cc                   	int3
42239a:	cc                   	int3
42239b:	cc                   	int3
42239c:	cc                   	int3
42239d:	cc                   	int3
42239e:	cc                   	int3
42239f:	cc                   	int3
4223a0:	55                   	push   %ebp
4223a1:	8b ec                	mov    %esp,%ebp
4223a3:	8b 45 08             	mov    0x8(%ebp),%eax
4223a6:	33 d2                	xor    %edx,%edx
4223a8:	53                   	push   %ebx
4223a9:	56                   	push   %esi
4223aa:	57                   	push   %edi
4223ab:	8b 48 3c             	mov    0x3c(%eax),%ecx
4223ae:	03 c8                	add    %eax,%ecx
4223b0:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
4223b4:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
4223b8:	83 c0 18             	add    $0x18,%eax
4223bb:	03 c1                	add    %ecx,%eax
4223bd:	85 db                	test   %ebx,%ebx
4223bf:	74 1b                	je     0x4223dc
4223c1:	8b 7d 0c             	mov    0xc(%ebp),%edi
4223c4:	8b 70 0c             	mov    0xc(%eax),%esi
4223c7:	3b fe                	cmp    %esi,%edi
4223c9:	72 09                	jb     0x4223d4
4223cb:	8b 48 08             	mov    0x8(%eax),%ecx
4223ce:	03 ce                	add    %esi,%ecx
4223d0:	3b f9                	cmp    %ecx,%edi
4223d2:	72 0a                	jb     0x4223de
4223d4:	42                   	inc    %edx
4223d5:	83 c0 28             	add    $0x28,%eax
4223d8:	3b d3                	cmp    %ebx,%edx
4223da:	72 e8                	jb     0x4223c4
4223dc:	33 c0                	xor    %eax,%eax
4223de:	5f                   	pop    %edi
4223df:	5e                   	pop    %esi
4223e0:	5b                   	pop    %ebx
4223e1:	5d                   	pop    %ebp
4223e2:	c3                   	ret
4223e3:	cc                   	int3
4223e4:	cc                   	int3
4223e5:	cc                   	int3
4223e6:	cc                   	int3
4223e7:	cc                   	int3
4223e8:	cc                   	int3
4223e9:	cc                   	int3
4223ea:	cc                   	int3
4223eb:	cc                   	int3
4223ec:	cc                   	int3
4223ed:	cc                   	int3
4223ee:	cc                   	int3
4223ef:	cc                   	int3
4223f0:	55                   	push   %ebp
4223f1:	8b ec                	mov    %esp,%ebp
4223f3:	6a fe                	push   $0xfffffffe
4223f5:	68 40 1a 43 00       	push   $0x431a40
4223fa:	68 b0 9f 40 00       	push   $0x409fb0
4223ff:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
422405:	50                   	push   %eax
422406:	83 ec 08             	sub    $0x8,%esp
422409:	53                   	push   %ebx
42240a:	56                   	push   %esi
42240b:	57                   	push   %edi
42240c:	a1 14 30 43 00       	mov    0x433014,%eax
422411:	31 45 f8             	xor    %eax,-0x8(%ebp)
422414:	33 c5                	xor    %ebp,%eax
422416:	50                   	push   %eax
422417:	8d 45 f0             	lea    -0x10(%ebp),%eax
42241a:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
422420:	89 65 e8             	mov    %esp,-0x18(%ebp)
422423:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
42242a:	68 00 00 40 00       	push   $0x400000
42242f:	e8 7c 00 00 00       	call   0x4224b0
422434:	83 c4 04             	add    $0x4,%esp
422437:	85 c0                	test   %eax,%eax
422439:	74 54                	je     0x42248f
42243b:	8b 45 08             	mov    0x8(%ebp),%eax
42243e:	2d 00 00 40 00       	sub    $0x400000,%eax
422443:	50                   	push   %eax
422444:	68 00 00 40 00       	push   $0x400000
422449:	e8 52 ff ff ff       	call   0x4223a0
42244e:	83 c4 08             	add    $0x8,%esp
422451:	85 c0                	test   %eax,%eax
422453:	74 3a                	je     0x42248f
422455:	8b 40 24             	mov    0x24(%eax),%eax
422458:	c1 e8 1f             	shr    $0x1f,%eax
42245b:	f7 d0                	not    %eax
42245d:	83 e0 01             	and    $0x1,%eax
422460:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
422467:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42246a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
422471:	59                   	pop    %ecx
422472:	5f                   	pop    %edi
422473:	5e                   	pop    %esi
422474:	5b                   	pop    %ebx
422475:	8b e5                	mov    %ebp,%esp
422477:	5d                   	pop    %ebp
422478:	c3                   	ret
422479:	8b 45 ec             	mov    -0x14(%ebp),%eax
42247c:	8b 00                	mov    (%eax),%eax
42247e:	33 c9                	xor    %ecx,%ecx
422480:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
422486:	0f 94 c1             	sete   %cl
422489:	8b c1                	mov    %ecx,%eax
42248b:	c3                   	ret
42248c:	8b 65 e8             	mov    -0x18(%ebp),%esp
42248f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
422496:	33 c0                	xor    %eax,%eax
422498:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42249b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4224a2:	59                   	pop    %ecx
4224a3:	5f                   	pop    %edi
4224a4:	5e                   	pop    %esi
4224a5:	5b                   	pop    %ebx
4224a6:	8b e5                	mov    %ebp,%esp
4224a8:	5d                   	pop    %ebp
4224a9:	c3                   	ret
4224aa:	cc                   	int3
4224ab:	cc                   	int3
4224ac:	cc                   	int3
4224ad:	cc                   	int3
4224ae:	cc                   	int3
4224af:	cc                   	int3
4224b0:	55                   	push   %ebp
4224b1:	8b ec                	mov    %esp,%ebp
4224b3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4224b6:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
4224bb:	66 39 01             	cmp    %ax,(%ecx)
4224be:	75 1f                	jne    0x4224df
4224c0:	8b 41 3c             	mov    0x3c(%ecx),%eax
4224c3:	03 c1                	add    %ecx,%eax
4224c5:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
4224cb:	75 12                	jne    0x4224df
4224cd:	b9 0b 01 00 00       	mov    $0x10b,%ecx
4224d2:	66 39 48 18          	cmp    %cx,0x18(%eax)
4224d6:	75 07                	jne    0x4224df
4224d8:	b8 01 00 00 00       	mov    $0x1,%eax
4224dd:	5d                   	pop    %ebp
4224de:	c3                   	ret
4224df:	33 c0                	xor    %eax,%eax
4224e1:	5d                   	pop    %ebp
4224e2:	c3                   	ret
4224e3:	cc                   	int3
4224e4:	cc                   	int3
4224e5:	cc                   	int3
4224e6:	cc                   	int3
4224e7:	cc                   	int3
4224e8:	cc                   	int3
4224e9:	cc                   	int3
4224ea:	cc                   	int3
4224eb:	cc                   	int3
4224ec:	cc                   	int3
4224ed:	cc                   	int3
4224ee:	cc                   	int3
4224ef:	cc                   	int3
4224f0:	56                   	push   %esi
4224f1:	8b 44 24 14          	mov    0x14(%esp),%eax
4224f5:	0b c0                	or     %eax,%eax
4224f7:	75 28                	jne    0x422521
4224f9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4224fd:	8b 44 24 0c          	mov    0xc(%esp),%eax
422501:	33 d2                	xor    %edx,%edx
422503:	f7 f1                	div    %ecx
422505:	8b d8                	mov    %eax,%ebx
422507:	8b 44 24 08          	mov    0x8(%esp),%eax
42250b:	f7 f1                	div    %ecx
42250d:	8b f0                	mov    %eax,%esi
42250f:	8b c3                	mov    %ebx,%eax
422511:	f7 64 24 10          	mull   0x10(%esp)
422515:	8b c8                	mov    %eax,%ecx
422517:	8b c6                	mov    %esi,%eax
422519:	f7 64 24 10          	mull   0x10(%esp)
42251d:	03 d1                	add    %ecx,%edx
42251f:	eb 47                	jmp    0x422568
422521:	8b c8                	mov    %eax,%ecx
422523:	8b 5c 24 10          	mov    0x10(%esp),%ebx
422527:	8b 54 24 0c          	mov    0xc(%esp),%edx
42252b:	8b 44 24 08          	mov    0x8(%esp),%eax
42252f:	d1 e9                	shr    $1,%ecx
422531:	d1 db                	rcr    $1,%ebx
422533:	d1 ea                	shr    $1,%edx
422535:	d1 d8                	rcr    $1,%eax
422537:	0b c9                	or     %ecx,%ecx
422539:	75 f4                	jne    0x42252f
42253b:	f7 f3                	div    %ebx
42253d:	8b f0                	mov    %eax,%esi
42253f:	f7 64 24 14          	mull   0x14(%esp)
422543:	8b c8                	mov    %eax,%ecx
422545:	8b 44 24 10          	mov    0x10(%esp),%eax
422549:	f7 e6                	mul    %esi
42254b:	03 d1                	add    %ecx,%edx
42254d:	72 0e                	jb     0x42255d
42254f:	3b 54 24 0c          	cmp    0xc(%esp),%edx
422553:	77 08                	ja     0x42255d
422555:	72 0f                	jb     0x422566
422557:	3b 44 24 08          	cmp    0x8(%esp),%eax
42255b:	76 09                	jbe    0x422566
42255d:	4e                   	dec    %esi
42255e:	2b 44 24 10          	sub    0x10(%esp),%eax
422562:	1b 54 24 14          	sbb    0x14(%esp),%edx
422566:	33 db                	xor    %ebx,%ebx
422568:	2b 44 24 08          	sub    0x8(%esp),%eax
42256c:	1b 54 24 0c          	sbb    0xc(%esp),%edx
422570:	f7 da                	neg    %edx
422572:	f7 d8                	neg    %eax
422574:	83 da 00             	sbb    $0x0,%edx
422577:	8b ca                	mov    %edx,%ecx
422579:	8b d3                	mov    %ebx,%edx
42257b:	8b d9                	mov    %ecx,%ebx
42257d:	8b c8                	mov    %eax,%ecx
42257f:	8b c6                	mov    %esi,%eax
422581:	5e                   	pop    %esi
422582:	c2 10 00             	ret    $0x10
422585:	cc                   	int3
422586:	cc                   	int3
422587:	cc                   	int3
422588:	cc                   	int3
422589:	cc                   	int3
42258a:	cc                   	int3
42258b:	cc                   	int3
42258c:	cc                   	int3
42258d:	cc                   	int3
42258e:	cc                   	int3
42258f:	cc                   	int3
422590:	80 f9 40             	cmp    $0x40,%cl
422593:	73 15                	jae    0x4225aa
422595:	80 f9 20             	cmp    $0x20,%cl
422598:	73 06                	jae    0x4225a0
42259a:	0f a5 c2             	shld   %cl,%eax,%edx
42259d:	d3 e0                	shl    %cl,%eax
42259f:	c3                   	ret
4225a0:	8b d0                	mov    %eax,%edx
4225a2:	33 c0                	xor    %eax,%eax
4225a4:	80 e1 1f             	and    $0x1f,%cl
4225a7:	d3 e2                	shl    %cl,%edx
4225a9:	c3                   	ret
4225aa:	33 c0                	xor    %eax,%eax
4225ac:	33 d2                	xor    %edx,%edx
4225ae:	c3                   	ret
4225af:	cc                   	int3
4225b0:	80 f9 40             	cmp    $0x40,%cl
4225b3:	73 15                	jae    0x4225ca
4225b5:	80 f9 20             	cmp    $0x20,%cl
4225b8:	73 06                	jae    0x4225c0
4225ba:	0f ad d0             	shrd   %cl,%edx,%eax
4225bd:	d3 ea                	shr    %cl,%edx
4225bf:	c3                   	ret
4225c0:	8b c2                	mov    %edx,%eax