407110:	66 0f d6 85 38 fc ff 	movq   %xmm0,-0x3c8(%ebp)
407117:	ff
407118:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
40711f:	c7 40 14 07 00 00 00 	movl   $0x7,0x14(%eax)
407126:	66 89 08             	mov    %cx,(%eax)
407129:	68 10 dc 44 00       	push   $0x44dc10
40712e:	8d 95 28 fc ff ff    	lea    -0x3d8(%ebp),%edx
407134:	c6 45 fc 0e          	movb   $0xe,-0x4(%ebp)
407138:	8d 8d b0 fe ff ff    	lea    -0x150(%ebp),%ecx
40713e:	e8 8d b2 ff ff       	call   0x4023d0
407143:	83 c4 04             	add    $0x4,%esp
407146:	c6 45 fc 10          	movb   $0x10,-0x4(%ebp)
40714a:	8b 8d 3c fc ff ff    	mov    -0x3c4(%ebp),%ecx
407150:	83 f9 08             	cmp    $0x8,%ecx
407153:	72 35                	jb     0x40718a
407155:	8b 95 28 fc ff ff    	mov    -0x3d8(%ebp),%edx
40715b:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407162:	8b c2                	mov    %edx,%eax
407164:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40716a:	72 14                	jb     0x407180
40716c:	8b 50 fc             	mov    -0x4(%eax),%edx
40716f:	83 c1 23             	add    $0x23,%ecx
407172:	2b c2                	sub    %edx,%eax
407174:	83 c0 fc             	add    $0xfffffffc,%eax
407177:	83 f8 1f             	cmp    $0x1f,%eax
40717a:	0f 87 45 0b 00 00    	ja     0x407cc5
407180:	51                   	push   %ecx
407181:	52                   	push   %edx
407182:	e8 87 47 01 00       	call   0x41b90e
407187:	83 c4 08             	add    $0x8,%esp
40718a:	33 c0                	xor    %eax,%eax
40718c:	c7 85 38 fc ff ff 00 	movl   $0x0,-0x3c8(%ebp)
407193:	00 00 00
407196:	c7 85 3c fc ff ff 07 	movl   $0x7,-0x3c4(%ebp)
40719d:	00 00 00
4071a0:	66 89 85 28 fc ff ff 	mov    %ax,-0x3d8(%ebp)
4071a7:	c6 45 fc 11          	movb   $0x11,-0x4(%ebp)
4071ab:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
4071ae:	83 f9 08             	cmp    $0x8,%ecx
4071b1:	72 32                	jb     0x4071e5
4071b3:	8b 55 90             	mov    -0x70(%ebp),%edx
4071b6:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4071bd:	8b c2                	mov    %edx,%eax
4071bf:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4071c5:	72 14                	jb     0x4071db
4071c7:	8b 50 fc             	mov    -0x4(%eax),%edx
4071ca:	83 c1 23             	add    $0x23,%ecx
4071cd:	2b c2                	sub    %edx,%eax
4071cf:	83 c0 fc             	add    $0xfffffffc,%eax
4071d2:	83 f8 1f             	cmp    $0x1f,%eax
4071d5:	0f 87 ea 0a 00 00    	ja     0x407cc5
4071db:	51                   	push   %ecx
4071dc:	52                   	push   %edx
4071dd:	e8 2c 47 01 00       	call   0x41b90e
4071e2:	83 c4 08             	add    $0x8,%esp
4071e5:	33 c0                	xor    %eax,%eax
4071e7:	c7 45 a0 00 00 00 00 	movl   $0x0,-0x60(%ebp)
4071ee:	83 bd c4 fe ff ff 08 	cmpl   $0x8,-0x13c(%ebp)
4071f5:	8d 8d 60 fc ff ff    	lea    -0x3a0(%ebp),%ecx
4071fb:	66 89 45 90          	mov    %ax,-0x70(%ebp)
4071ff:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
407205:	0f 43 85 b0 fe ff ff 	cmovae -0x150(%ebp),%eax
40720c:	51                   	push   %ecx
40720d:	50                   	push   %eax
40720e:	c7 45 a4 07 00 00 00 	movl   $0x7,-0x5c(%ebp)
407215:	ff 15 44 f0 43 00    	call   *0x43f044
40721b:	89 85 4c fc ff ff    	mov    %eax,-0x3b4(%ebp)
407221:	83 f8 ff             	cmp    $0xffffffff,%eax
407224:	75 1a                	jne    0x407240
407226:	ff 15 60 f0 43 00    	call   *0x43f060
40722c:	e9 29 07 00 00       	jmp    0x40795a
407231:	0f 1f 40 00          	nopl   0x0(%eax)
407235:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
40723c:	00 00 00 00
407240:	8d 8d 8c fc ff ff    	lea    -0x374(%ebp),%ecx
407246:	c6 85 5f fc ff ff 00 	movb   $0x0,-0x3a1(%ebp)
40724d:	8d 51 02             	lea    0x2(%ecx),%edx
407250:	66 8b 01             	mov    (%ecx),%ax
407253:	83 c1 02             	add    $0x2,%ecx
407256:	66 85 c0             	test   %ax,%ax
407259:	75 f5                	jne    0x407250
40725b:	8b 45 bc             	mov    -0x44(%ebp),%eax
40725e:	2b ca                	sub    %edx,%ecx
407260:	d1 f9                	sar    $1,%ecx
407262:	3b c8                	cmp    %eax,%ecx
407264:	77 29                	ja     0x40728f
407266:	83 f8 08             	cmp    $0x8,%eax
407269:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40726c:	8d 34 09             	lea    (%ecx,%ecx,1),%esi
40726f:	56                   	push   %esi
407270:	8d 85 8c fc ff ff    	lea    -0x374(%ebp),%eax
407276:	8d 7d a8             	lea    -0x58(%ebp),%edi
407279:	0f 43 7d a8          	cmovae -0x58(%ebp),%edi
40727d:	50                   	push   %eax
40727e:	57                   	push   %edi
40727f:	e8 cc 61 01 00       	call   0x41d450
407284:	83 c4 0c             	add    $0xc,%esp
407287:	33 c0                	xor    %eax,%eax
407289:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
40728d:	eb 1d                	jmp    0x4072ac
40728f:	8d 85 8c fc ff ff    	lea    -0x374(%ebp),%eax
407295:	c6 85 44 fc ff ff 00 	movb   $0x0,-0x3bc(%ebp)
40729c:	50                   	push   %eax
40729d:	ff b5 44 fc ff ff    	push   -0x3bc(%ebp)
4072a3:	51                   	push   %ecx
4072a4:	8d 4d a8             	lea    -0x58(%ebp),%ecx
4072a7:	e8 64 b3 ff ff       	call   0x402610
4072ac:	b9 14 dc 44 00       	mov    $0x44dc14,%ecx
4072b1:	8d 85 8c fc ff ff    	lea    -0x374(%ebp),%eax
4072b7:	66 8b 10             	mov    (%eax),%dx
4072ba:	66 3b 11             	cmp    (%ecx),%dx
4072bd:	75 1e                	jne    0x4072dd
4072bf:	66 85 d2             	test   %dx,%dx
4072c2:	74 15                	je     0x4072d9
4072c4:	66 8b 50 02          	mov    0x2(%eax),%dx
4072c8:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4072cc:	75 0f                	jne    0x4072dd
4072ce:	83 c0 04             	add    $0x4,%eax
4072d1:	83 c1 04             	add    $0x4,%ecx
4072d4:	66 85 d2             	test   %dx,%dx
4072d7:	75 de                	jne    0x4072b7
4072d9:	33 c0                	xor    %eax,%eax
4072db:	eb 05                	jmp    0x4072e2
4072dd:	1b c0                	sbb    %eax,%eax
4072df:	83 c8 01             	or     $0x1,%eax
4072e2:	85 c0                	test   %eax,%eax
4072e4:	0f 84 4e 05 00 00    	je     0x407838
4072ea:	b9 18 dc 44 00       	mov    $0x44dc18,%ecx
4072ef:	8d 85 8c fc ff ff    	lea    -0x374(%ebp),%eax
4072f5:	66 8b 10             	mov    (%eax),%dx
4072f8:	66 3b 11             	cmp    (%ecx),%dx
4072fb:	75 1e                	jne    0x40731b
4072fd:	66 85 d2             	test   %dx,%dx
407300:	74 15                	je     0x407317
407302:	66 8b 50 02          	mov    0x2(%eax),%dx
407306:	66 3b 51 02          	cmp    0x2(%ecx),%dx
40730a:	75 0f                	jne    0x40731b
40730c:	83 c0 04             	add    $0x4,%eax
40730f:	83 c1 04             	add    $0x4,%ecx
407312:	66 85 d2             	test   %dx,%dx
407315:	75 de                	jne    0x4072f5
407317:	33 c0                	xor    %eax,%eax
407319:	eb 05                	jmp    0x407320
40731b:	1b c0                	sbb    %eax,%eax
40731d:	83 c8 01             	or     $0x1,%eax
407320:	85 c0                	test   %eax,%eax
407322:	0f 84 10 05 00 00    	je     0x407838
407328:	8b 75 c4             	mov    -0x3c(%ebp),%esi
40732b:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
407330:	8b 7d c0             	mov    -0x40(%ebp),%edi
407333:	8b ce                	mov    %esi,%ecx
407335:	2b cf                	sub    %edi,%ecx
407337:	c7 85 50 fc ff ff 00 	movl   $0x0,-0x3b0(%ebp)
40733e:	00 00 00
407341:	f7 e9                	imul   %ecx
407343:	c1 fa 02             	sar    $0x2,%edx
407346:	8b c2                	mov    %edx,%eax
407348:	c1 e8 1f             	shr    $0x1f,%eax
40734b:	03 c2                	add    %edx,%eax
40734d:	0f 84 b9 03 00 00    	je     0x40770c
407353:	8b 8d 50 fc ff ff    	mov    -0x3b0(%ebp),%ecx
407359:	c7 85 58 fc ff ff 00 	movl   $0x0,-0x3a8(%ebp)
407360:	00 00 00
407363:	2b f7                	sub    %edi,%esi
407365:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40736a:	f7 ee                	imul   %esi
40736c:	c1 fa 02             	sar    $0x2,%edx
40736f:	8b c2                	mov    %edx,%eax
407371:	c1 e8 1f             	shr    $0x1f,%eax
407374:	03 c2                	add    %edx,%eax
407376:	3b c1                	cmp    %ecx,%eax
407378:	0f 86 51 09 00 00    	jbe    0x407ccf
40737e:	8b 85 58 fc ff ff    	mov    -0x3a8(%ebp),%eax
407384:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407387:	03 c7                	add    %edi,%eax
407389:	50                   	push   %eax
40738a:	e8 31 af ff ff       	call   0x4022c0
40738f:	c6 45 fc 12          	movb   $0x12,-0x4(%ebp)
407393:	8d bd 78 ff ff ff    	lea    -0x88(%ebp),%edi
407399:	83 7d 8c 08          	cmpl   $0x8,-0x74(%ebp)
40739d:	8d 55 a8             	lea    -0x58(%ebp),%edx
4073a0:	8b 45 b8             	mov    -0x48(%ebp),%eax
4073a3:	0f 43 bd 78 ff ff ff 	cmovae -0x88(%ebp),%edi
4073aa:	83 7d bc 08          	cmpl   $0x8,-0x44(%ebp)
4073ae:	8b 75 88             	mov    -0x78(%ebp),%esi
4073b1:	0f 43 55 a8          	cmovae -0x58(%ebp),%edx
4073b5:	0f 93 85 5e fc ff ff 	setae  -0x3a2(%ebp)
4073bc:	89 bd 54 fc ff ff    	mov    %edi,-0x3ac(%ebp)
4073c2:	89 95 48 fc ff ff    	mov    %edx,-0x3b8(%ebp)
4073c8:	3b f0                	cmp    %eax,%esi
4073ca:	0f 87 3d 01 00 00    	ja     0x40750d
4073d0:	2b c6                	sub    %esi,%eax
4073d2:	85 f6                	test   %esi,%esi
4073d4:	74 6d                	je     0x407443
4073d6:	40                   	inc    %eax
4073d7:	8d 0c 42             	lea    (%edx,%eax,2),%ecx
4073da:	8b c2                	mov    %edx,%eax
4073dc:	89 8d 40 fc ff ff    	mov    %ecx,-0x3c0(%ebp)
4073e2:	2b c8                	sub    %eax,%ecx
4073e4:	d1 f9                	sar    $1,%ecx
4073e6:	0f 84 21 01 00 00    	je     0x40750d
4073ec:	0f b7 17             	movzwl (%edi),%edx
4073ef:	90                   	nop
4073f0:	66 39 10             	cmp    %dx,(%eax)
4073f3:	74 0d                	je     0x407402
4073f5:	83 c0 02             	add    $0x2,%eax
4073f8:	83 e9 01             	sub    $0x1,%ecx
4073fb:	75 f3                	jne    0x4073f0
4073fd:	e9 0b 01 00 00       	jmp    0x40750d
407402:	85 c0                	test   %eax,%eax
407404:	0f 84 03 01 00 00    	je     0x40750d
40740a:	8b d7                	mov    %edi,%edx
40740c:	85 f6                	test   %esi,%esi
40740e:	74 25                	je     0x407435
407410:	8b f8                	mov    %eax,%edi
407412:	2b bd 54 fc ff ff    	sub    -0x3ac(%ebp),%edi
407418:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
40741f:	00
407420:	66 8b 0c 17          	mov    (%edi,%edx,1),%cx
407424:	66 3b 0a             	cmp    (%edx),%cx
407427:	0f 85 8a 02 00 00    	jne    0x4076b7
40742d:	83 c2 02             	add    $0x2,%edx
407430:	83 ee 01             	sub    $0x1,%esi
407433:	75 eb                	jne    0x407420
407435:	2b 85 48 fc ff ff    	sub    -0x3b8(%ebp),%eax
40743b:	d1 f8                	sar    $1,%eax
40743d:	0f 85 ca 00 00 00    	jne    0x40750d
407443:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407446:	8d 45 a8             	lea    -0x58(%ebp),%eax
407449:	39 4d b8             	cmp    %ecx,-0x48(%ebp)
40744c:	c6 85 5f fc ff ff 01 	movb   $0x1,-0x3a1(%ebp)
407453:	0f 42 4d b8          	cmovb  -0x48(%ebp),%ecx
407457:	80 bd 5e fc ff ff 00 	cmpb   $0x0,-0x3a2(%ebp)
40745e:	51                   	push   %ecx
40745f:	0f 45 45 a8          	cmovne -0x58(%ebp),%eax
407463:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
407469:	50                   	push   %eax
40746a:	c7 85 28 ff ff ff 00 	movl   $0x0,-0xd8(%ebp)
407471:	00 00 00
407474:	c7 85 38 ff ff ff 00 	movl   $0x0,-0xc8(%ebp)
40747b:	00 00 00
40747e:	c7 85 3c ff ff ff 00 	movl   $0x0,-0xc4(%ebp)
407485:	00 00 00
407488:	e8 83 b0 ff ff       	call   0x402510
40748d:	83 bd 3c ff ff ff 08 	cmpl   $0x8,-0xc4(%ebp)
407494:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
40749a:	8d 45 d8             	lea    -0x28(%ebp),%eax
40749d:	0f 43 8d 28 ff ff ff 	cmovae -0xd8(%ebp),%ecx
4074a4:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
4074a8:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
4074ac:	50                   	push   %eax
4074ad:	51                   	push   %ecx
4074ae:	ff 15 6c f0 43 00    	call   *0x43f06c
4074b4:	8b 8d 3c ff ff ff    	mov    -0xc4(%ebp),%ecx
4074ba:	85 c0                	test   %eax,%eax
4074bc:	0f 94 c0             	sete   %al
4074bf:	88 85 5e fc ff ff    	mov    %al,-0x3a2(%ebp)
4074c5:	83 f9 08             	cmp    $0x8,%ecx
4074c8:	72 3b                	jb     0x407505
4074ca:	8b 95 28 ff ff ff    	mov    -0xd8(%ebp),%edx
4074d0:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4074d7:	8b c2                	mov    %edx,%eax
4074d9:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4074df:	72 14                	jb     0x4074f5
4074e1:	8b 50 fc             	mov    -0x4(%eax),%edx
4074e4:	83 c1 23             	add    $0x23,%ecx
4074e7:	2b c2                	sub    %edx,%eax
4074e9:	83 c0 fc             	add    $0xfffffffc,%eax
4074ec:	83 f8 1f             	cmp    $0x1f,%eax
4074ef:	0f 87 d0 07 00 00    	ja     0x407cc5
4074f5:	51                   	push   %ecx
4074f6:	52                   	push   %edx
4074f7:	e8 12 44 01 00       	call   0x41b90e
4074fc:	8a 85 5e fc ff ff    	mov    -0x3a2(%ebp),%al
407502:	83 c4 08             	add    $0x8,%esp
407505:	84 c0                	test   %al,%al
407507:	0f 85 c1 01 00 00    	jne    0x4076ce
40750d:	c6 45 fc 11          	movb   $0x11,-0x4(%ebp)
407511:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407514:	83 f9 08             	cmp    $0x8,%ecx
407517:	72 32                	jb     0x40754b
407519:	8b 55 d8             	mov    -0x28(%ebp),%edx
40751c:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407523:	8b c2                	mov    %edx,%eax
407525:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40752b:	72 14                	jb     0x407541
40752d:	8b 50 fc             	mov    -0x4(%eax),%edx
407530:	83 c1 23             	add    $0x23,%ecx
407533:	2b c2                	sub    %edx,%eax
407535:	83 c0 fc             	add    $0xfffffffc,%eax
407538:	83 f8 1f             	cmp    $0x1f,%eax
40753b:	0f 87 84 07 00 00    	ja     0x407cc5
407541:	51                   	push   %ecx
407542:	52                   	push   %edx
407543:	e8 c6 43 01 00       	call   0x41b90e
407548:	83 c4 08             	add    $0x8,%esp
40754b:	8b 75 c4             	mov    -0x3c(%ebp),%esi
40754e:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
407553:	8b 7d c0             	mov    -0x40(%ebp),%edi
407556:	8b ce                	mov    %esi,%ecx
407558:	ff 85 50 fc ff ff    	incl   -0x3b0(%ebp)
40755e:	2b cf                	sub    %edi,%ecx
407560:	83 85 58 fc ff ff 18 	addl   $0x18,-0x3a8(%ebp)
407567:	f7 e9                	imul   %ecx
407569:	8b 8d 50 fc ff ff    	mov    -0x3b0(%ebp),%ecx
40756f:	c1 fa 02             	sar    $0x2,%edx
407572:	8b c2                	mov    %edx,%eax
407574:	c1 e8 1f             	shr    $0x1f,%eax
407577:	03 c2                	add    %edx,%eax
407579:	3b c8                	cmp    %eax,%ecx
40757b:	0f 82 e2 fd ff ff    	jb     0x407363
407581:	8a 85 5f fc ff ff    	mov    -0x3a1(%ebp),%al
407587:	3c 01                	cmp    $0x1,%al
407589:	0f 85 a9 02 00 00    	jne    0x407838
40758f:	83 bd 24 ff ff ff 08 	cmpl   $0x8,-0xdc(%ebp)
407596:	8d 8d 10 ff ff ff    	lea    -0xf0(%ebp),%ecx
40759c:	8d 45 a8             	lea    -0x58(%ebp),%eax
40759f:	0f 43 8d 10 ff ff ff 	cmovae -0xf0(%ebp),%ecx
4075a6:	83 7d bc 08          	cmpl   $0x8,-0x44(%ebp)
4075aa:	51                   	push   %ecx
4075ab:	0f 43 45 a8          	cmovae -0x58(%ebp),%eax
4075af:	50                   	push   %eax
4075b0:	ff 15 6c f0 43 00    	call   *0x43f06c
4075b6:	85 c0                	test   %eax,%eax
4075b8:	0f 84 4e 01 00 00    	je     0x40770c
4075be:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
4075c4:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
4075c9:	2b c1                	sub    %ecx,%eax
4075cb:	83 f8 01             	cmp    $0x1,%eax
4075ce:	0f 82 ec 06 00 00    	jb     0x407cc0
4075d4:	83 bd 54 ff ff ff 08 	cmpl   $0x8,-0xac(%ebp)
4075db:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
4075e1:	6a 01                	push   $0x1
4075e3:	0f 43 85 40 ff ff ff 	cmovae -0xc0(%ebp),%eax
4075ea:	68 0c dc 44 00       	push   $0x44dc0c
4075ef:	51                   	push   %ecx
4075f0:	50                   	push   %eax
4075f1:	51                   	push   %ecx
4075f2:	ff b5 4c fc ff ff    	push   -0x3b4(%ebp)
4075f8:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
4075fe:	e8 6d 58 00 00       	call   0x40ce70
407603:	c6 45 fc 13          	movb   $0x13,-0x4(%ebp)
407607:	8d 45 a8             	lea    -0x58(%ebp),%eax
40760a:	83 7d bc 08          	cmpl   $0x8,-0x44(%ebp)
40760e:	8d 95 28 ff ff ff    	lea    -0xd8(%ebp),%edx
407614:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407617:	0f 43 45 a8          	cmovae -0x58(%ebp),%eax
40761b:	50                   	push   %eax
40761c:	e8 af ad ff ff       	call   0x4023d0
407621:	c6 45 fc 11          	movb   $0x11,-0x4(%ebp)