4086b2:	57                   	push   %edi
4086b3:	68 24 02 00 00       	push   $0x224
4086b8:	6a 00                	push   $0x0
4086ba:	53                   	push   %ebx
4086bb:	8b f1                	mov    %ecx,%esi
4086bd:	e8 22 0a 00 00       	call   0x4090e4
4086c2:	83 c4 0c             	add    $0xc,%esp
4086c5:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4086c8:	33 ff                	xor    %edi,%edi
4086ca:	47                   	inc    %edi
4086cb:	50                   	push   %eax
4086cc:	57                   	push   %edi
4086cd:	56                   	push   %esi
4086ce:	ff 15 b4 f0 40 00    	call   *0x40f0b4
4086d4:	8b d0                	mov    %eax,%edx
4086d6:	85 d2                	test   %edx,%edx
4086d8:	75 31                	jne    0x40870b
4086da:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
4086dd:	75 08                	jne    0x4086e7
4086df:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4086e2:	89 4b 04             	mov    %ecx,0x4(%ebx)
4086e5:	eb 19                	jmp    0x408700
4086e7:	8b 45 e8             	mov    -0x18(%ebp),%eax
4086ea:	8d 7b 08             	lea    0x8(%ebx),%edi
4086ed:	8d 75 f0             	lea    -0x10(%ebp),%esi
4086f0:	89 43 18             	mov    %eax,0x18(%ebx)
4086f3:	8b 45 ec             	mov    -0x14(%ebp),%eax
4086f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4086f7:	6a 02                	push   $0x2
4086f9:	89 43 1c             	mov    %eax,0x1c(%ebx)
4086fc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4086fd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4086fe:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4086ff:	5f                   	pop    %edi
408700:	b8 00 02 00 00       	mov    $0x200,%eax
408705:	89 3b                	mov    %edi,(%ebx)
408707:	66 89 43 20          	mov    %ax,0x20(%ebx)
40870b:	5f                   	pop    %edi
40870c:	5e                   	pop    %esi
40870d:	8b c2                	mov    %edx,%eax
40870f:	5b                   	pop    %ebx
408710:	c9                   	leave
408711:	c2 04 00             	ret    $0x4
408714:	8b ff                	mov    %edi,%edi
408716:	55                   	push   %ebp
408717:	8b ec                	mov    %esp,%ebp
408719:	51                   	push   %ecx
40871a:	51                   	push   %ecx
40871b:	53                   	push   %ebx
40871c:	56                   	push   %esi
40871d:	57                   	push   %edi
40871e:	8d 45 fc             	lea    -0x4(%ebp),%eax
408721:	8b d9                	mov    %ecx,%ebx
408723:	50                   	push   %eax
408724:	6a 00                	push   $0x0
408726:	6a 00                	push   $0x0
408728:	8b fa                	mov    %edx,%edi
40872a:	53                   	push   %ebx
40872b:	89 7d f8             	mov    %edi,-0x8(%ebp)
40872e:	ff 15 fc f0 40 00    	call   *0x40f0fc
408734:	85 c0                	test   %eax,%eax
408736:	74 04                	je     0x40873c
408738:	33 f6                	xor    %esi,%esi
40873a:	eb 61                	jmp    0x40879d
40873c:	ff 15 e0 f0 40 00    	call   *0x40f0e0
408742:	8b f0                	mov    %eax,%esi
408744:	81 fe ea 00 00 00    	cmp    $0xea,%esi
40874a:	75 4d                	jne    0x408799
40874c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40874f:	03 c0                	add    %eax,%eax
408751:	50                   	push   %eax
408752:	ff 15 a4 f0 40 00    	call   *0x40f0a4
408758:	8b f8                	mov    %eax,%edi
40875a:	85 ff                	test   %edi,%edi
40875c:	74 5c                	je     0x4087ba
40875e:	8d 45 fc             	lea    -0x4(%ebp),%eax
408761:	50                   	push   %eax
408762:	ff 75 fc             	push   -0x4(%ebp)
408765:	57                   	push   %edi
408766:	53                   	push   %ebx
408767:	ff 15 fc f0 40 00    	call   *0x40f0fc
40876d:	85 c0                	test   %eax,%eax
40876f:	74 04                	je     0x408775
408771:	33 f6                	xor    %esi,%esi
408773:	eb 0c                	jmp    0x408781
408775:	ff 15 e0 f0 40 00    	call   *0x40f0e0
40877b:	8b f0                	mov    %eax,%esi
40877d:	85 f6                	test   %esi,%esi
40877f:	75 0f                	jne    0x408790
408781:	8b 45 f8             	mov    -0x8(%ebp),%eax
408784:	8b 4d 08             	mov    0x8(%ebp),%ecx
408787:	89 38                	mov    %edi,(%eax)
408789:	8b 45 fc             	mov    -0x4(%ebp),%eax
40878c:	89 01                	mov    %eax,(%ecx)
40878e:	eb 37                	jmp    0x4087c7
408790:	57                   	push   %edi
408791:	ff 15 b0 f0 40 00    	call   *0x40f0b0
408797:	eb 2e                	jmp    0x4087c7
408799:	85 f6                	test   %esi,%esi
40879b:	75 22                	jne    0x4087bf
40879d:	6a 04                	push   $0x4
40879f:	ff 15 a4 f0 40 00    	call   *0x40f0a4
4087a5:	85 c0                	test   %eax,%eax
4087a7:	74 11                	je     0x4087ba
4087a9:	33 c9                	xor    %ecx,%ecx
4087ab:	89 07                	mov    %eax,(%edi)
4087ad:	89 08                	mov    %ecx,(%eax)
4087af:	8b 45 08             	mov    0x8(%ebp),%eax
4087b2:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
4087b8:	eb 0d                	jmp    0x4087c7
4087ba:	6a 08                	push   $0x8
4087bc:	5e                   	pop    %esi
4087bd:	eb 08                	jmp    0x4087c7
4087bf:	ff 15 e0 f0 40 00    	call   *0x40f0e0
4087c5:	8b f0                	mov    %eax,%esi
4087c7:	5f                   	pop    %edi
4087c8:	8b c6                	mov    %esi,%eax
4087ca:	5e                   	pop    %esi
4087cb:	5b                   	pop    %ebx
4087cc:	c9                   	leave
4087cd:	c2 04 00             	ret    $0x4
4087d0:	e8 48 02 00 00       	call   0x408a1d
4087d5:	6a 01                	push   $0x1
4087d7:	a3 38 a0 40 00       	mov    %eax,0x40a038
4087dc:	e8 d7 05 00 00       	call   0x408db8
4087e1:	50                   	push   %eax
4087e2:	ff 15 b0 f1 40 00    	call   *0x40f1b0
4087e8:	83 0d 74 a3 40 00 ff 	orl    $0xffffffff,0x40a374
4087ef:	83 0d 78 a3 40 00 ff 	orl    $0xffffffff,0x40a378
4087f6:	59                   	pop    %ecx
4087f7:	59                   	pop    %ecx
4087f8:	ff 15 c0 f1 40 00    	call   *0x40f1c0
4087fe:	8b 0d 68 a3 40 00    	mov    0x40a368,%ecx
408804:	89 08                	mov    %ecx,(%eax)
408806:	ff 15 a4 f1 40 00    	call   *0x40f1a4
40880c:	8b 0d 5c a3 40 00    	mov    0x40a35c,%ecx
408812:	89 08                	mov    %ecx,(%eax)
408814:	e8 e7 05 00 00       	call   0x408e00
408819:	83 3d 00 a0 40 00 00 	cmpl   $0x0,0x40a000
408820:	75 0c                	jne    0x40882e
408822:	68 00 8e 40 00       	push   $0x408e00
408827:	ff 15 c8 f1 40 00    	call   *0x40f1c8
40882d:	59                   	pop    %ecx
40882e:	e8 ba 07 00 00       	call   0x408fed
408833:	33 c0                	xor    %eax,%eax
408835:	c3                   	ret
408836:	cc                   	int3
408837:	cc                   	int3
408838:	cc                   	int3
408839:	cc                   	int3
40883a:	cc                   	int3
40883b:	cc                   	int3
40883c:	cc                   	int3
40883d:	cc                   	int3
40883e:	cc                   	int3
40883f:	cc                   	int3
408840:	a1 64 a3 40 00       	mov    0x40a364,%eax
408845:	68 3c a0 40 00       	push   $0x40a03c
40884a:	ff 35 60 a3 40 00    	push   0x40a360
408850:	a3 3c a0 40 00       	mov    %eax,0x40a03c
408855:	68 30 a0 40 00       	push   $0x40a030
40885a:	68 2c a0 40 00       	push   $0x40a02c
40885f:	68 28 a0 40 00       	push   $0x40a028
408864:	ff 15 ac f1 40 00    	call   *0x40f1ac
40886a:	83 c4 14             	add    $0x14,%esp
40886d:	a3 34 a0 40 00       	mov    %eax,0x40a034
408872:	c3                   	ret
408873:	6a 0c                	push   $0xc
408875:	68 10 91 40 00       	push   $0x409110
40887a:	e8 89 07 00 00       	call   0x409008
40887f:	33 db                	xor    %ebx,%ebx
408881:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408884:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
40888a:	8b 70 04             	mov    0x4(%eax),%esi
40888d:	8b fb                	mov    %ebx,%edi
40888f:	ba 7c a3 40 00       	mov    $0x40a37c,%edx
408894:	8b ce                	mov    %esi,%ecx
408896:	33 c0                	xor    %eax,%eax
408898:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
40889c:	85 c0                	test   %eax,%eax
40889e:	74 18                	je     0x4088b8
4088a0:	3b c6                	cmp    %esi,%eax
4088a2:	75 07                	jne    0x4088ab
4088a4:	33 f6                	xor    %esi,%esi
4088a6:	46                   	inc    %esi
4088a7:	8b fe                	mov    %esi,%edi
4088a9:	eb 10                	jmp    0x4088bb
4088ab:	68 e8 03 00 00       	push   $0x3e8
4088b0:	ff 15 68 f1 40 00    	call   *0x40f168
4088b6:	eb d7                	jmp    0x40888f
4088b8:	33 f6                	xor    %esi,%esi
4088ba:	46                   	inc    %esi
4088bb:	39 35 80 a3 40 00    	cmp    %esi,0x40a380
4088c1:	75 0a                	jne    0x4088cd
4088c3:	6a 1f                	push   $0x1f
4088c5:	e8 24 05 00 00       	call   0x408dee
4088ca:	59                   	pop    %ecx
4088cb:	eb 3a                	jmp    0x408907
4088cd:	39 1d 80 a3 40 00    	cmp    %ebx,0x40a380
4088d3:	75 2c                	jne    0x408901
4088d5:	89 35 80 a3 40 00    	mov    %esi,0x40a380
4088db:	68 dc 10 40 00       	push   $0x4010dc
4088e0:	68 d0 10 40 00       	push   $0x4010d0
4088e5:	e8 02 01 00 00       	call   0x4089ec
4088ea:	59                   	pop    %ecx
4088eb:	59                   	pop    %ecx
4088ec:	85 c0                	test   %eax,%eax
4088ee:	74 17                	je     0x408907
4088f0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4088f7:	b8 ff 00 00 00       	mov    $0xff,%eax
4088fc:	e9 db 00 00 00       	jmp    0x4089dc
408901:	89 35 24 a0 40 00    	mov    %esi,0x40a024
408907:	39 35 80 a3 40 00    	cmp    %esi,0x40a380
40890d:	75 1b                	jne    0x40892a
40890f:	68 cc 10 40 00       	push   $0x4010cc
408914:	68 c4 10 40 00       	push   $0x4010c4
408919:	e8 e2 06 00 00       	call   0x409000
40891e:	59                   	pop    %ecx
40891f:	59                   	pop    %ecx
408920:	c7 05 80 a3 40 00 02 	movl   $0x2,0x40a380
408927:	00 00 00
40892a:	85 ff                	test   %edi,%edi
40892c:	75 09                	jne    0x408937
40892e:	33 c0                	xor    %eax,%eax
408930:	b9 7c a3 40 00       	mov    $0x40a37c,%ecx
408935:	87 01                	xchg   %eax,(%ecx)
408937:	83 3d 84 a3 40 00 00 	cmpl   $0x0,0x40a384
40893e:	74 23                	je     0x408963
408940:	68 84 a3 40 00       	push   $0x40a384
408945:	e8 16 05 00 00       	call   0x408e60
40894a:	59                   	pop    %ecx
40894b:	85 c0                	test   %eax,%eax
40894d:	74 14                	je     0x408963
40894f:	53                   	push   %ebx
408950:	6a 02                	push   $0x2
408952:	53                   	push   %ebx
408953:	8b 35 84 a3 40 00    	mov    0x40a384,%esi
408959:	8b ce                	mov    %esi,%ecx
40895b:	ff 15 f8 f1 40 00    	call   *0x40f1f8
408961:	ff d6                	call   *%esi
408963:	ff 35 30 a0 40 00    	push   0x40a030
408969:	ff 35 2c a0 40 00    	push   0x40a02c
40896f:	ff 35 28 a0 40 00    	push   0x40a028
408975:	e8 c3 fa ff ff       	call   0x40843d
40897a:	83 c4 0c             	add    $0xc,%esp
40897d:	a3 20 a0 40 00       	mov    %eax,0x40a020
408982:	83 3d 38 a0 40 00 00 	cmpl   $0x0,0x40a038
408989:	75 36                	jne    0x4089c1
40898b:	50                   	push   %eax
40898c:	ff 15 b4 f1 40 00    	call   *0x40f1b4
408992:	8b 4d ec             	mov    -0x14(%ebp),%ecx
408995:	8b 01                	mov    (%ecx),%eax
408997:	8b 00                	mov    (%eax),%eax
408999:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40899c:	51                   	push   %ecx
40899d:	50                   	push   %eax
40899e:	e8 9b 03 00 00       	call   0x408d3e
4089a3:	59                   	pop    %ecx
4089a4:	59                   	pop    %ecx
4089a5:	c3                   	ret
4089a6:	8b 65 e8             	mov    -0x18(%ebp),%esp
4089a9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4089ac:	a3 20 a0 40 00       	mov    %eax,0x40a020
4089b1:	83 3d 38 a0 40 00 00 	cmpl   $0x0,0x40a038
4089b8:	75 07                	jne    0x4089c1
4089ba:	50                   	push   %eax
4089bb:	ff 15 b8 f1 40 00    	call   *0x40f1b8
4089c1:	83 3d 24 a0 40 00 00 	cmpl   $0x0,0x40a024
4089c8:	75 0b                	jne    0x4089d5
4089ca:	ff 15 bc f1 40 00    	call   *0x40f1bc
4089d0:	a1 20 a0 40 00       	mov    0x40a020,%eax
4089d5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4089dc:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4089df:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4089e6:	59                   	pop    %ecx
4089e7:	5f                   	pop    %edi
4089e8:	5e                   	pop    %esi
4089e9:	5b                   	pop    %ebx
4089ea:	c9                   	leave
4089eb:	c3                   	ret
4089ec:	8b ff                	mov    %edi,%edi
4089ee:	55                   	push   %ebp
4089ef:	8b ec                	mov    %esp,%ebp
4089f1:	56                   	push   %esi
4089f2:	8b 75 08             	mov    0x8(%ebp),%esi
4089f5:	33 c0                	xor    %eax,%eax
4089f7:	3b 75 0c             	cmp    0xc(%ebp),%esi
4089fa:	73 1e                	jae    0x408a1a
4089fc:	57                   	push   %edi
4089fd:	85 c0                	test   %eax,%eax
4089ff:	75 18                	jne    0x408a19
408a01:	8b 3e                	mov    (%esi),%edi
408a03:	85 ff                	test   %edi,%edi
408a05:	74 0a                	je     0x408a11
408a07:	8b cf                	mov    %edi,%ecx
408a09:	ff 15 f8 f1 40 00    	call   *0x40f1f8
408a0f:	ff d7                	call   *%edi
408a11:	83 c6 04             	add    $0x4,%esi
408a14:	3b 75 0c             	cmp    0xc(%ebp),%esi
408a17:	72 e4                	jb     0x4089fd
408a19:	5f                   	pop    %edi
408a1a:	5e                   	pop    %esi
408a1b:	5d                   	pop    %ebp
408a1c:	c3                   	ret
408a1d:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
408a22:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
408a29:	75 55                	jne    0x408a80
408a2b:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
408a31:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
408a38:	45 00 00
408a3b:	75 43                	jne    0x408a80
408a3d:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
408a44:	ba 0b 01 00 00       	mov    $0x10b,%edx
408a49:	66 3b c2             	cmp    %dx,%ax
408a4c:	74 1f                	je     0x408a6d
408a4e:	ba 0b 02 00 00       	mov    $0x20b,%edx
408a53:	66 3b c2             	cmp    %dx,%ax
408a56:	75 28                	jne    0x408a80
408a58:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
408a5f:	76 1f                	jbe    0x408a80
408a61:	33 c0                	xor    %eax,%eax
408a63:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
408a69:	0f 95 c0             	setne  %al
408a6c:	c3                   	ret
408a6d:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
408a74:	76 0a                	jbe    0x408a80
408a76:	33 c0                	xor    %eax,%eax
408a78:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
408a7e:	eb e9                	jmp    0x408a69
408a80:	33 c0                	xor    %eax,%eax
408a82:	c3                   	ret
408a83:	cc                   	int3
408a84:	cc                   	int3
408a85:	cc                   	int3
408a86:	cc                   	int3
408a87:	cc                   	int3
408a88:	cc                   	int3
408a89:	cc                   	int3
408a8a:	cc                   	int3
408a8b:	cc                   	int3
408a8c:	cc                   	int3
408a8d:	cc                   	int3
408a8e:	cc                   	int3
408a8f:	cc                   	int3
408a90:	e8 c0 04 00 00       	call   0x408f55
408a95:	e9 d9 fd ff ff       	jmp    0x408873
408a9a:	cc                   	int3
408a9b:	cc                   	int3
408a9c:	cc                   	int3
408a9d:	cc                   	int3