401567:	78 74                	js     0x4015dd
401569:	24 6d                	and    $0x6d,%al
40156b:	6e                   	outsb  %ds:(%esi),(%dx)
40156c:	00 00                	add    %al,(%eax)
40156e:	00 00                	add    %al,(%eax)
401570:	c8 2d 00 00          	enter  $0x2d,$0x0
401574:	7c 00                	jl     0x401576
401576:	00 00                	add    %al,(%eax)
401578:	2e 78 64             	js,pn  0x4015df
40157b:	61                   	popa
40157c:	74 61                	je     0x4015df
40157e:	24 78                	and    $0x78,%al
401580:	00 00                	add    %al,(%eax)
401582:	00 00                	add    %al,(%eax)
401584:	00 30                	add    %dh,(%eax)
401586:	00 00                	add    %al,(%eax)
401588:	18 00                	sbb    %al,(%eax)
40158a:	00 00                	add    %al,(%eax)
40158c:	2e 64 61             	cs fs popa
40158f:	74 61                	je     0x4015f2
401591:	00 00                	add    %al,(%eax)
401593:	00 18                	add    %bl,(%eax)
401595:	30 00                	xor    %al,(%eax)
401597:	00 a4 03 00 00 2e 62 	add    %ah,0x622e0000(%ebx,%eax,1)
40159e:	73 73                	jae    0x401613
4015a0:	00 00                	add    %al,(%eax)
4015a2:	00 00                	add    %al,(%eax)
4015a4:	00 40 00             	add    %al,0x0(%eax)
4015a7:	00 48 01             	add    %cl,0x1(%eax)
4015aa:	00 00                	add    %al,(%eax)
4015ac:	2e 69 64 61 74 61 24 	imul   $0x352461,%cs:0x74(%ecx,%eiz,2),%esp
4015b3:	35 00
4015b5:	00 00                	add    %al,(%eax)
4015b7:	00 48 41             	add    %cl,0x41(%eax)
4015ba:	00 00                	add    %al,(%eax)
4015bc:	04 00                	add    $0x0,%al
4015be:	00 00                	add    %al,(%eax)
4015c0:	2e 30 30             	xor    %dh,%cs:(%eax)
4015c3:	63 66 67             	arpl   %esp,0x67(%esi)
4015c6:	00 00                	add    %al,(%eax)
4015c8:	4c                   	dec    %esp
4015c9:	41                   	inc    %ecx
4015ca:	00 00                	add    %al,(%eax)
4015cc:	78 00                	js     0x4015ce
4015ce:	00 00                	add    %al,(%eax)
4015d0:	2e 69 64 61 74 61 24 	imul   $0x322461,%cs:0x74(%ecx,%eiz,2),%esp
4015d7:	32 00
4015d9:	00 00                	add    %al,(%eax)
4015db:	00 c4                	add    %al,%ah
4015dd:	41                   	inc    %ecx
4015de:	00 00                	add    %al,(%eax)
4015e0:	14 00                	adc    $0x0,%al
4015e2:	00 00                	add    %al,(%eax)
4015e4:	2e 69 64 61 74 61 24 	imul   $0x332461,%cs:0x74(%ecx,%eiz,2),%esp
4015eb:	33 00
4015ed:	00 00                	add    %al,(%eax)
4015ef:	00 d8                	add    %bl,%al
4015f1:	41                   	inc    %ecx
4015f2:	00 00                	add    %al,(%eax)
4015f4:	48                   	dec    %eax
4015f5:	01 00                	add    %eax,(%eax)
4015f7:	00 2e                	add    %ch,(%esi)
4015f9:	69 64 61 74 61 24 34 	imul   $0x342461,0x74(%ecx,%eiz,2),%esp
401600:	00
401601:	00 00                	add    %al,(%eax)
401603:	00 20                	add    %ah,(%eax)
401605:	43                   	inc    %ebx
401606:	00 00                	add    %al,(%eax)
401608:	6a 05                	push   $0x5
40160a:	00 00                	add    %al,(%eax)
40160c:	2e 69 64 61 74 61 24 	imul   $0x362461,%cs:0x74(%ecx,%eiz,2),%esp
401613:	36 00
401615:	00 00                	add    %al,(%eax)
401617:	00 00                	add    %al,(%eax)
401619:	50                   	push   %eax
40161a:	00 00                	add    %al,(%eax)
40161c:	20 04 00             	and    %al,(%eax,%eax,1)
40161f:	00 2e                	add    %ch,(%esi)
401621:	72 73                	jb     0x401696
401623:	72 63                	jb     0x401688
401625:	24 30                	and    $0x30,%al
401627:	31 00                	xor    %eax,(%eax)
401629:	00 00                	add    %al,(%eax)
40162b:	00 20                	add    %ah,(%eax)
40162d:	54                   	push   %esp
40162e:	00 00                	add    %al,(%eax)
401630:	70 28                	jo     0x40165a
401632:	03 00                	add    (%eax),%eax
401634:	2e 72 73             	jb,pn  0x4016aa
401637:	72 63                	jb     0x40169c
401639:	24 30                	and    $0x30,%al
40163b:	32 00                	xor    (%eax),%al
40163d:	00 00                	add    %al,(%eax)
40163f:	00 20                	add    %ah,(%eax)
401641:	00 00                	add    %al,(%eax)
401643:	00 33                	add    %dh,(%ebx)
401645:	7f 02                	jg     0x401649
401647:	5d                   	pop    %ebp
401648:	92                   	xchg   %eax,%edx
401649:	f6 41 62 61          	testb  $0x61,0x62(%ecx)
40164d:	8b 37                	mov    (%edi),%esi
40164f:	88 ae 54 58 ff 1b    	mov    %ch,0x1bff5854(%esi)
401655:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401656:	72 54                	jb     0x4016ac
401658:	0d 7e 33 0f ea       	or     $0xea0f337e,%eax
40165d:	ac                   	lods   %ds:(%esi),%al
40165e:	a9 eb 15 54 9a       	test   $0x9a5415eb,%eax
401663:	c6 00 00             	movb   $0x0,(%eax)
40166e:	00 00                	add    %al,(%eax)
401670:	8b ff                	mov    %edi,%edi
401672:	56                   	push   %esi
401673:	57                   	push   %edi
401674:	be 50 11 40 00       	mov    $0x401150,%esi
401679:	bf 8c 33 40 00       	mov    $0x40338c,%edi
40167e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40167f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401680:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401681:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401682:	5f                   	pop    %edi
401683:	5e                   	pop    %esi
401684:	c3                   	ret
401685:	cc                   	int3
401686:	cc                   	int3
401687:	cc                   	int3
401688:	cc                   	int3
401689:	cc                   	int3
40168a:	cc                   	int3
40168b:	cc                   	int3
40168c:	cc                   	int3
40168d:	cc                   	int3
40168e:	cc                   	int3
40168f:	cc                   	int3
401690:	8b ff                	mov    %edi,%edi
401692:	55                   	push   %ebp
401693:	8b ec                	mov    %esp,%ebp
401695:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
401699:	74 12                	je     0x4016ad
40169b:	ff 75 08             	push   0x8(%ebp)
40169e:	6a 00                	push   $0x0
4016a0:	ff 15 1c 40 40 00    	call   *0x40401c
4016a6:	50                   	push   %eax
4016a7:	ff 15 98 40 40 00    	call   *0x404098
4016ad:	5d                   	pop    %ebp
4016ae:	c3                   	ret
4016af:	8b ff                	mov    %edi,%edi
4016b1:	55                   	push   %ebp
4016b2:	8b ec                	mov    %esp,%ebp
4016b4:	83 ec 20             	sub    $0x20,%esp
4016b7:	a1 78 33 40 00       	mov    0x403378,%eax
4016bc:	56                   	push   %esi
4016bd:	89 45 fc             	mov    %eax,-0x4(%ebp)
4016c0:	33 f6                	xor    %esi,%esi
4016c2:	eb 2d                	jmp    0x4016f1
4016c4:	85 c0                	test   %eax,%eax
4016c6:	74 42                	je     0x40170a
4016c8:	eb 14                	jmp    0x4016de
4016ca:	8d 45 e0             	lea    -0x20(%ebp),%eax
4016cd:	50                   	push   %eax
4016ce:	ff 15 b0 40 40 00    	call   *0x4040b0
4016d4:	8d 45 e0             	lea    -0x20(%ebp),%eax
4016d7:	50                   	push   %eax
4016d8:	ff 15 ac 40 40 00    	call   *0x4040ac
4016de:	6a 01                	push   $0x1
4016e0:	56                   	push   %esi
4016e1:	56                   	push   %esi
4016e2:	56                   	push   %esi
4016e3:	8d 45 e0             	lea    -0x20(%ebp),%eax
4016e6:	50                   	push   %eax
4016e7:	ff 15 b4 40 40 00    	call   *0x4040b4
4016ed:	85 c0                	test   %eax,%eax
4016ef:	75 d9                	jne    0x4016ca
4016f1:	68 ff 1c 00 00       	push   $0x1cff
4016f6:	6a ff                	push   $0xffffffff
4016f8:	56                   	push   %esi
4016f9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4016fc:	50                   	push   %eax
4016fd:	6a 01                	push   $0x1
4016ff:	ff 15 a4 40 40 00    	call   *0x4040a4
401705:	83 f8 ff             	cmp    $0xffffffff,%eax
401708:	75 ba                	jne    0x4016c4
40170a:	5e                   	pop    %esi
40170b:	c9                   	leave
40170c:	c3                   	ret
40170d:	8b ff                	mov    %edi,%edi
40170f:	53                   	push   %ebx
401710:	56                   	push   %esi
401711:	57                   	push   %edi
401712:	bb 05 40 00 80       	mov    $0x80004005,%ebx
401717:	e8 e7 09 00 00       	call   0x402103
40171c:	84 c0                	test   %al,%al
40171e:	0f 84 b1 00 00 00    	je     0x4017d5
401724:	e8 da 09 00 00       	call   0x402103
401729:	84 c0                	test   %al,%al
40172b:	0f 84 a4 00 00 00    	je     0x4017d5
401731:	ba 8c 33 40 00       	mov    $0x40338c,%edx
401736:	be 60 11 40 00       	mov    $0x401160,%esi
40173b:	33 c9                	xor    %ecx,%ecx
40173d:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
401740:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
401743:	75 08                	jne    0x40174d
401745:	41                   	inc    %ecx
401746:	83 f9 04             	cmp    $0x4,%ecx
401749:	75 f2                	jne    0x40173d
40174b:	eb 15                	jmp    0x401762
40174d:	be 70 11 40 00       	mov    $0x401170,%esi
401752:	33 c9                	xor    %ecx,%ecx
401754:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
401757:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
40175a:	75 79                	jne    0x4017d5
40175c:	41                   	inc    %ecx
40175d:	83 f9 04             	cmp    $0x4,%ecx
401760:	75 f2                	jne    0x401754
401762:	33 ff                	xor    %edi,%edi
401764:	33 db                	xor    %ebx,%ebx
401766:	47                   	inc    %edi
401767:	b9 74 33 40 00       	mov    $0x403374,%ecx
40176c:	8b c7                	mov    %edi,%eax
40176e:	87 01                	xchg   %eax,(%ecx)
401770:	85 c0                	test   %eax,%eax
401772:	75 61                	jne    0x4017d5
401774:	6a 0c                	push   $0xc
401776:	6a 08                	push   $0x8
401778:	ff 15 1c 40 40 00    	call   *0x40401c
40177e:	50                   	push   %eax
40177f:	ff 15 20 40 40 00    	call   *0x404020
401785:	8b f0                	mov    %eax,%esi
401787:	85 f6                	test   %esi,%esi
401789:	74 50                	je     0x4017db
40178b:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
401791:	89 7e 04             	mov    %edi,0x4(%esi)
401794:	c7 46 08 05 00 07 80 	movl   $0x80070005,0x8(%esi)
40179b:	f0 ff 05 68 33 40 00 	lock incl 0x403368
4017a2:	68 70 33 40 00       	push   $0x403370
4017a7:	57                   	push   %edi
4017a8:	6a 04                	push   $0x4
4017aa:	56                   	push   %esi
4017ab:	68 8c 33 40 00       	push   $0x40338c
4017b0:	ff 15 38 41 40 00    	call   *0x404138
4017b6:	8b 0e                	mov    (%esi),%ecx
4017b8:	8b fc                	mov    %esp,%edi
4017ba:	56                   	push   %esi
4017bb:	8b d8                	mov    %eax,%ebx
4017bd:	8b 71 08             	mov    0x8(%ecx),%esi
4017c0:	8b ce                	mov    %esi,%ecx
4017c2:	ff 15 48 41 40 00    	call   *0x404148
4017c8:	ff d6                	call   *%esi
4017ca:	3b fc                	cmp    %esp,%edi
4017cc:	74 07                	je     0x4017d5
4017ce:	b9 04 00 00 00       	mov    $0x4,%ecx
4017d3:	cd 29                	int    $0x29
4017d5:	5f                   	pop    %edi
4017d6:	5e                   	pop    %esi
4017d7:	8b c3                	mov    %ebx,%eax
4017d9:	5b                   	pop    %ebx
4017da:	c3                   	ret
4017db:	e8 b0 0c 00 00       	call   0x402490
4017e0:	cc                   	int3
4017e1:	8b ff                	mov    %edi,%edi
4017e3:	56                   	push   %esi
4017e4:	33 d2                	xor    %edx,%edx
4017e6:	be 8c 33 40 00       	mov    $0x40338c,%esi
4017eb:	57                   	push   %edi
4017ec:	bf 60 11 40 00       	mov    $0x401160,%edi
4017f1:	8b ca                	mov    %edx,%ecx
4017f3:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
4017f6:	3b 04 8f             	cmp    (%edi,%ecx,4),%eax
4017f9:	75 08                	jne    0x401803
4017fb:	41                   	inc    %ecx
4017fc:	83 f9 04             	cmp    $0x4,%ecx
4017ff:	75 f2                	jne    0x4017f3
401801:	eb 15                	jmp    0x401818
401803:	bf 70 11 40 00       	mov    $0x401170,%edi
401808:	8b ca                	mov    %edx,%ecx
40180a:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
40180d:	3b 04 8f             	cmp    (%edi,%ecx,4),%eax
401810:	75 0d                	jne    0x40181f
401812:	41                   	inc    %ecx
401813:	83 f9 04             	cmp    $0x4,%ecx
401816:	75 f2                	jne    0x40180a
401818:	e8 f0 fe ff ff       	call   0x40170d
40181d:	8b d0                	mov    %eax,%edx
40181f:	5f                   	pop    %edi
401820:	8b c2                	mov    %edx,%eax
401822:	5e                   	pop    %esi
401823:	c3                   	ret
401824:	8b ff                	mov    %edi,%edi
401826:	56                   	push   %esi
401827:	33 c0                	xor    %eax,%eax
401829:	b9 74 33 40 00       	mov    $0x403374,%ecx
40182e:	87 01                	xchg   %eax,(%ecx)
401830:	83 f8 01             	cmp    $0x1,%eax
401833:	75 20                	jne    0x401855
401835:	ff 35 70 33 40 00    	push   0x403370
40183b:	ff 15 34 41 40 00    	call   *0x404134
401841:	8b f0                	mov    %eax,%esi
401843:	a1 64 33 40 00       	mov    0x403364,%eax
401848:	85 c0                	test   %eax,%eax
40184a:	74 0b                	je     0x401857
40184c:	50                   	push   %eax
40184d:	ff 15 28 40 40 00    	call   *0x404028
401853:	eb 02                	jmp    0x401857
401855:	33 f6                	xor    %esi,%esi
401857:	8b c6                	mov    %esi,%eax
401859:	5e                   	pop    %esi
40185a:	c3                   	ret
40185b:	cc                   	int3
40185c:	cc                   	int3
40185d:	cc                   	int3
40185e:	cc                   	int3
40185f:	cc                   	int3
401860:	8b ff                	mov    %edi,%edi
401862:	55                   	push   %ebp
401863:	8b ec                	mov    %esp,%ebp
401865:	8b 45 08             	mov    0x8(%ebp),%eax
401868:	83 c0 04             	add    $0x4,%eax
40186b:	f0 ff 00             	lock incl (%eax)
40186e:	8b 00                	mov    (%eax),%eax
401870:	5d                   	pop    %ebp
401871:	c2 04 00             	ret    $0x4
401874:	cc                   	int3
401875:	cc                   	int3
401876:	cc                   	int3
401877:	cc                   	int3
401878:	cc                   	int3
401879:	cc                   	int3
40187a:	cc                   	int3
40187b:	cc                   	int3
40187c:	cc                   	int3
40187d:	cc                   	int3
40187e:	cc                   	int3
40187f:	cc                   	int3
401880:	8b ff                	mov    %edi,%edi
401882:	55                   	push   %ebp
401883:	8b ec                	mov    %esp,%ebp
401885:	56                   	push   %esi
401886:	8b 75 08             	mov    0x8(%ebp),%esi
401889:	83 c8 ff             	or     $0xffffffff,%eax
40188c:	57                   	push   %edi
40188d:	8b f8                	mov    %eax,%edi
40188f:	f0 0f c1 7e 04       	lock xadd %edi,0x4(%esi)
401894:	4f                   	dec    %edi
401895:	75 34                	jne    0x4018cb
401897:	85 f6                	test   %esi,%esi
401899:	74 30                	je     0x4018cb
40189b:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
4018a1:	f0 0f c1 05 68 33 40 	lock xadd %eax,0x403368
4018a8:	00
4018a9:	48                   	dec    %eax
4018aa:	75 18                	jne    0x4018c4
4018ac:	a1 78 33 40 00       	mov    0x403378,%eax