40837e:	57                   	push   %edi
40837f:	6a 01                	push   $0x1
408381:	e8 5b 02 00 00       	call   0x4085e1
408386:	59                   	pop    %ecx
408387:	59                   	pop    %ecx
408388:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40838f:	8b c6                	mov    %esi,%eax
408391:	eb 35                	jmp    0x4083c8
408393:	8b 4d ec             	mov    -0x14(%ebp),%ecx
408396:	8b 01                	mov    (%ecx),%eax
408398:	8b 00                	mov    (%eax),%eax
40839a:	89 45 e0             	mov    %eax,-0x20(%ebp)
40839d:	51                   	push   %ecx
40839e:	50                   	push   %eax
40839f:	e8 1c 2d 00 00       	call   0x40b0c0
4083a4:	59                   	pop    %ecx
4083a5:	59                   	pop    %ecx
4083a6:	c3                   	ret
4083a7:	8b 65 e8             	mov    -0x18(%ebp),%esp
4083aa:	e8 11 05 00 00       	call   0x4088c0
4083af:	84 c0                	test   %al,%al
4083b1:	74 32                	je     0x4083e5
4083b3:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)
4083b7:	75 05                	jne    0x4083be
4083b9:	e8 54 37 00 00       	call   0x40bb12
4083be:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4083c5:	8b 45 e0             	mov    -0x20(%ebp),%eax
4083c8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4083cb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4083d2:	59                   	pop    %ecx
4083d3:	5f                   	pop    %edi
4083d4:	5e                   	pop    %esi
4083d5:	5b                   	pop    %ebx
4083d6:	c9                   	leave
4083d7:	c3                   	ret
4083d8:	6a 07                	push   $0x7
4083da:	e8 90 03 00 00       	call   0x40876f
4083df:	56                   	push   %esi
4083e0:	e8 87 37 00 00       	call   0x40bb6c
4083e5:	ff 75 e0             	push   -0x20(%ebp)
4083e8:	e8 43 37 00 00       	call   0x40bb30
4083ed:	cc                   	int3
4083ee:	cc                   	int3
4083ef:	cc                   	int3
4083f0:	e8 a3 02 00 00       	call   0x408698
4083f5:	e9 78 fe ff ff       	jmp    0x408272
4083fa:	55                   	push   %ebp
4083fb:	8b ec                	mov    %esp,%ebp
4083fd:	8b 45 08             	mov    0x8(%ebp),%eax
408400:	56                   	push   %esi
408401:	8b 48 3c             	mov    0x3c(%eax),%ecx
408404:	03 c8                	add    %eax,%ecx
408406:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
40840a:	8d 51 18             	lea    0x18(%ecx),%edx
40840d:	03 d0                	add    %eax,%edx
40840f:	0f b7 41 06          	movzwl 0x6(%ecx),%eax
408413:	6b f0 28             	imul   $0x28,%eax,%esi
408416:	03 f2                	add    %edx,%esi
408418:	3b d6                	cmp    %esi,%edx
40841a:	74 19                	je     0x408435
40841c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40841f:	3b 4a 0c             	cmp    0xc(%edx),%ecx
408422:	72 0a                	jb     0x40842e
408424:	8b 42 08             	mov    0x8(%edx),%eax
408427:	03 42 0c             	add    0xc(%edx),%eax
40842a:	3b c8                	cmp    %eax,%ecx
40842c:	72 0c                	jb     0x40843a
40842e:	83 c2 28             	add    $0x28,%edx
408431:	3b d6                	cmp    %esi,%edx
408433:	75 ea                	jne    0x40841f
408435:	33 c0                	xor    %eax,%eax
408437:	5e                   	pop    %esi
408438:	5d                   	pop    %ebp
408439:	c3                   	ret
40843a:	8b c2                	mov    %edx,%eax
40843c:	eb f9                	jmp    0x408437
40843e:	56                   	push   %esi
40843f:	e8 a5 07 00 00       	call   0x408be9
408444:	85 c0                	test   %eax,%eax
408446:	74 20                	je     0x408468
408448:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
40844e:	be 2c 69 42 00       	mov    $0x42692c,%esi
408453:	8b 50 04             	mov    0x4(%eax),%edx
408456:	eb 04                	jmp    0x40845c
408458:	3b d0                	cmp    %eax,%edx
40845a:	74 10                	je     0x40846c
40845c:	33 c0                	xor    %eax,%eax
40845e:	8b ca                	mov    %edx,%ecx
408460:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
408464:	85 c0                	test   %eax,%eax
408466:	75 f0                	jne    0x408458
408468:	32 c0                	xor    %al,%al
40846a:	5e                   	pop    %esi
40846b:	c3                   	ret
40846c:	b0 01                	mov    $0x1,%al
40846e:	5e                   	pop    %esi
40846f:	c3                   	ret
408470:	55                   	push   %ebp
408471:	8b ec                	mov    %esp,%ebp
408473:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
408477:	75 07                	jne    0x408480
408479:	c6 05 30 69 42 00 01 	movb   $0x1,0x426930
408480:	e8 90 05 00 00       	call   0x408a15
408485:	e8 47 0a 00 00       	call   0x408ed1
40848a:	84 c0                	test   %al,%al
40848c:	75 04                	jne    0x408492
40848e:	32 c0                	xor    %al,%al
408490:	5d                   	pop    %ebp
408491:	c3                   	ret
408492:	e8 07 3d 00 00       	call   0x40c19e
408497:	84 c0                	test   %al,%al
408499:	75 0a                	jne    0x4084a5
40849b:	6a 00                	push   $0x0
40849d:	e8 4e 0a 00 00       	call   0x408ef0
4084a2:	59                   	pop    %ecx
4084a3:	eb e9                	jmp    0x40848e
4084a5:	b0 01                	mov    $0x1,%al
4084a7:	5d                   	pop    %ebp
4084a8:	c3                   	ret
4084a9:	55                   	push   %ebp
4084aa:	8b ec                	mov    %esp,%ebp
4084ac:	80 3d 31 69 42 00 00 	cmpb   $0x0,0x426931
4084b3:	74 04                	je     0x4084b9
4084b5:	b0 01                	mov    $0x1,%al
4084b7:	5d                   	pop    %ebp
4084b8:	c3                   	ret
4084b9:	56                   	push   %esi
4084ba:	8b 75 08             	mov    0x8(%ebp),%esi
4084bd:	85 f6                	test   %esi,%esi
4084bf:	74 05                	je     0x4084c6
4084c1:	83 fe 01             	cmp    $0x1,%esi
4084c4:	75 62                	jne    0x408528
4084c6:	e8 1e 07 00 00       	call   0x408be9
4084cb:	85 c0                	test   %eax,%eax
4084cd:	74 26                	je     0x4084f5
4084cf:	85 f6                	test   %esi,%esi
4084d1:	75 22                	jne    0x4084f5
4084d3:	68 34 69 42 00       	push   $0x426934
4084d8:	e8 44 3b 00 00       	call   0x40c021
4084dd:	59                   	pop    %ecx
4084de:	85 c0                	test   %eax,%eax
4084e0:	75 0f                	jne    0x4084f1
4084e2:	68 40 69 42 00       	push   $0x426940
4084e7:	e8 35 3b 00 00       	call   0x40c021
4084ec:	59                   	pop    %ecx
4084ed:	85 c0                	test   %eax,%eax
4084ef:	74 2b                	je     0x40851c
4084f1:	32 c0                	xor    %al,%al
4084f3:	eb 30                	jmp    0x408525
4084f5:	83 c9 ff             	or     $0xffffffff,%ecx
4084f8:	89 0d 34 69 42 00    	mov    %ecx,0x426934
4084fe:	89 0d 38 69 42 00    	mov    %ecx,0x426938
408504:	89 0d 3c 69 42 00    	mov    %ecx,0x42693c
40850a:	89 0d 40 69 42 00    	mov    %ecx,0x426940
408510:	89 0d 44 69 42 00    	mov    %ecx,0x426944
408516:	89 0d 48 69 42 00    	mov    %ecx,0x426948
40851c:	c6 05 31 69 42 00 01 	movb   $0x1,0x426931
408523:	b0 01                	mov    $0x1,%al
408525:	5e                   	pop    %esi
408526:	5d                   	pop    %ebp
408527:	c3                   	ret
408528:	6a 05                	push   $0x5
40852a:	e8 40 02 00 00       	call   0x40876f
40852f:	cc                   	int3
408530:	6a 08                	push   $0x8
408532:	68 c8 3c 42 00       	push   $0x423cc8
408537:	e8 94 04 00 00       	call   0x4089d0
40853c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408540:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
408545:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
40854c:	75 5d                	jne    0x4085ab
40854e:	a1 3c 00 40 00       	mov    0x40003c,%eax
408553:	81 b8 00 00 40 00 50 	cmpl   $0x4550,0x400000(%eax)
40855a:	45 00 00
40855d:	75 4c                	jne    0x4085ab
40855f:	b9 0b 01 00 00       	mov    $0x10b,%ecx
408564:	66 39 88 18 00 40 00 	cmp    %cx,0x400018(%eax)
40856b:	75 3e                	jne    0x4085ab
40856d:	8b 45 08             	mov    0x8(%ebp),%eax
408570:	b9 00 00 40 00       	mov    $0x400000,%ecx
408575:	2b c1                	sub    %ecx,%eax
408577:	50                   	push   %eax
408578:	51                   	push   %ecx
408579:	e8 7c fe ff ff       	call   0x4083fa
40857e:	59                   	pop    %ecx
40857f:	59                   	pop    %ecx
408580:	85 c0                	test   %eax,%eax
408582:	74 27                	je     0x4085ab
408584:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
408588:	7c 21                	jl     0x4085ab
40858a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
408591:	b0 01                	mov    $0x1,%al
408593:	eb 1f                	jmp    0x4085b4
408595:	8b 45 ec             	mov    -0x14(%ebp),%eax
408598:	8b 00                	mov    (%eax),%eax
40859a:	33 c9                	xor    %ecx,%ecx
40859c:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
4085a2:	0f 94 c1             	sete   %cl
4085a5:	8b c1                	mov    %ecx,%eax
4085a7:	c3                   	ret
4085a8:	8b 65 e8             	mov    -0x18(%ebp),%esp
4085ab:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4085b2:	32 c0                	xor    %al,%al
4085b4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4085b7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4085be:	59                   	pop    %ecx
4085bf:	5f                   	pop    %edi
4085c0:	5e                   	pop    %esi
4085c1:	5b                   	pop    %ebx
4085c2:	c9                   	leave
4085c3:	c3                   	ret
4085c4:	55                   	push   %ebp
4085c5:	8b ec                	mov    %esp,%ebp
4085c7:	e8 1d 06 00 00       	call   0x408be9
4085cc:	85 c0                	test   %eax,%eax
4085ce:	74 0f                	je     0x4085df
4085d0:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4085d4:	75 09                	jne    0x4085df
4085d6:	33 c0                	xor    %eax,%eax
4085d8:	b9 2c 69 42 00       	mov    $0x42692c,%ecx
4085dd:	87 01                	xchg   %eax,(%ecx)
4085df:	5d                   	pop    %ebp
4085e0:	c3                   	ret
4085e1:	55                   	push   %ebp
4085e2:	8b ec                	mov    %esp,%ebp
4085e4:	80 3d 30 69 42 00 00 	cmpb   $0x0,0x426930
4085eb:	74 06                	je     0x4085f3
4085ed:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4085f1:	75 12                	jne    0x408605
4085f3:	ff 75 08             	push   0x8(%ebp)
4085f6:	e8 b5 3b 00 00       	call   0x40c1b0
4085fb:	ff 75 08             	push   0x8(%ebp)
4085fe:	e8 ed 08 00 00       	call   0x408ef0
408603:	59                   	pop    %ecx
408604:	59                   	pop    %ecx
408605:	b0 01                	mov    $0x1,%al
408607:	5d                   	pop    %ebp
408608:	c3                   	ret
408609:	55                   	push   %ebp
40860a:	8b ec                	mov    %esp,%ebp
40860c:	83 3d 34 69 42 00 ff 	cmpl   $0xffffffff,0x426934
408613:	ff 75 08             	push   0x8(%ebp)
408616:	75 07                	jne    0x40861f
408618:	e8 c1 39 00 00       	call   0x40bfde
40861d:	eb 0b                	jmp    0x40862a
40861f:	68 34 69 42 00       	push   $0x426934
408624:	e8 21 3a 00 00       	call   0x40c04a
408629:	59                   	pop    %ecx
40862a:	f7 d8                	neg    %eax
40862c:	59                   	pop    %ecx
40862d:	1b c0                	sbb    %eax,%eax
40862f:	f7 d0                	not    %eax
408631:	23 45 08             	and    0x8(%ebp),%eax
408634:	5d                   	pop    %ebp
408635:	c3                   	ret
408636:	55                   	push   %ebp
408637:	8b ec                	mov    %esp,%ebp
408639:	ff 75 08             	push   0x8(%ebp)
40863c:	e8 c8 ff ff ff       	call   0x408609
408641:	f7 d8                	neg    %eax
408643:	59                   	pop    %ecx
408644:	1b c0                	sbb    %eax,%eax
408646:	f7 d8                	neg    %eax
408648:	48                   	dec    %eax
408649:	5d                   	pop    %ebp
40864a:	c3                   	ret
40864b:	55                   	push   %ebp
40864c:	8b ec                	mov    %esp,%ebp
40864e:	83 ec 14             	sub    $0x14,%esp
408651:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
408655:	8d 45 f4             	lea    -0xc(%ebp),%eax
408658:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40865c:	50                   	push   %eax
40865d:	ff 15 74 c1 41 00    	call   *0x41c174
408663:	8b 45 f8             	mov    -0x8(%ebp),%eax
408666:	33 45 f4             	xor    -0xc(%ebp),%eax
408669:	89 45 fc             	mov    %eax,-0x4(%ebp)
40866c:	ff 15 78 c1 41 00    	call   *0x41c178
408672:	31 45 fc             	xor    %eax,-0x4(%ebp)
408675:	ff 15 7c c1 41 00    	call   *0x41c17c
40867b:	31 45 fc             	xor    %eax,-0x4(%ebp)
40867e:	8d 45 ec             	lea    -0x14(%ebp),%eax
408681:	50                   	push   %eax
408682:	ff 15 18 c1 41 00    	call   *0x41c118
408688:	8b 45 f0             	mov    -0x10(%ebp),%eax
40868b:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40868e:	33 45 ec             	xor    -0x14(%ebp),%eax
408691:	33 45 fc             	xor    -0x4(%ebp),%eax
408694:	33 c1                	xor    %ecx,%eax
408696:	c9                   	leave
408697:	c3                   	ret
408698:	8b 0d 18 60 42 00    	mov    0x426018,%ecx
40869e:	56                   	push   %esi
40869f:	57                   	push   %edi
4086a0:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
4086a5:	be 00 00 ff ff       	mov    $0xffff0000,%esi
4086aa:	3b cf                	cmp    %edi,%ecx
4086ac:	74 04                	je     0x4086b2
4086ae:	85 ce                	test   %ecx,%esi
4086b0:	75 26                	jne    0x4086d8
4086b2:	e8 94 ff ff ff       	call   0x40864b
4086b7:	8b c8                	mov    %eax,%ecx
4086b9:	3b cf                	cmp    %edi,%ecx
4086bb:	75 07                	jne    0x4086c4
4086bd:	b9 4f e6 40 bb       	mov    $0xbb40e64f,%ecx
4086c2:	eb 0e                	jmp    0x4086d2
4086c4:	85 ce                	test   %ecx,%esi
4086c6:	75 0a                	jne    0x4086d2
4086c8:	0d 11 47 00 00       	or     $0x4711,%eax
4086cd:	c1 e0 10             	shl    $0x10,%eax
4086d0:	0b c8                	or     %eax,%ecx
4086d2:	89 0d 18 60 42 00    	mov    %ecx,0x426018
4086d8:	f7 d1                	not    %ecx
4086da:	5f                   	pop    %edi
4086db:	89 0d 14 60 42 00    	mov    %ecx,0x426014
4086e1:	5e                   	pop    %esi
4086e2:	c3                   	ret
4086e3:	cc                   	int3
4086e4:	cc                   	int3
4086e5:	cc                   	int3
4086e6:	cc                   	int3
4086e7:	cc                   	int3
4086e8:	cc                   	int3
4086e9:	cc                   	int3
4086ea:	cc                   	int3
4086eb:	cc                   	int3
4086ec:	cc                   	int3
4086ed:	cc                   	int3
4086ee:	cc                   	int3
4086ef:	cc                   	int3
4086f0:	33 c0                	xor    %eax,%eax
4086f2:	c3                   	ret
4086f3:	33 c0                	xor    %eax,%eax
4086f5:	40                   	inc    %eax
4086f6:	c3                   	ret
4086f7:	b8 00 40 00 00       	mov    $0x4000,%eax
4086fc:	c3                   	ret
4086fd:	68 50 69 42 00       	push   $0x426950
408702:	ff 15 70 c1 41 00    	call   *0x41c170
408708:	c3                   	ret
408709:	cc                   	int3
40870a:	cc                   	int3
40870b:	cc                   	int3
40870c:	cc                   	int3
40870d:	cc                   	int3
40870e:	cc                   	int3
40870f:	cc                   	int3
408710:	b0 01                	mov    $0x1,%al
408712:	c3                   	ret
408713:	68 00 00 03 00       	push   $0x30000