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
4018b1:	85 c0                	test   %eax,%eax
4018b3:	74 07                	je     0x4018bc
4018b5:	50                   	push   %eax
4018b6:	ff 15 9c 40 40 00    	call   *0x40409c
4018bc:	6a 00                	push   $0x0
4018be:	ff 15 a8 40 40 00    	call   *0x4040a8
4018c4:	56                   	push   %esi
4018c5:	e8 c6 fd ff ff       	call   0x401690
4018ca:	59                   	pop    %ecx
4018cb:	8b c7                	mov    %edi,%eax
4018cd:	5f                   	pop    %edi
4018ce:	5e                   	pop    %esi
4018cf:	5d                   	pop    %ebp
4018d0:	c2 04 00             	ret    $0x4
4018d3:	cc                   	int3
4018d4:	cc                   	int3
4018d5:	cc                   	int3
4018d6:	cc                   	int3
4018d7:	cc                   	int3
4018d8:	cc                   	int3
4018d9:	cc                   	int3
4018da:	cc                   	int3
4018db:	cc                   	int3
4018dc:	cc                   	int3
4018dd:	cc                   	int3
4018de:	cc                   	int3
4018df:	cc                   	int3
4018e0:	8b ff                	mov    %edi,%edi
4018e2:	55                   	push   %ebp
4018e3:	8b ec                	mov    %esp,%ebp
4018e5:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4018e9:	75 07                	jne    0x4018f2
4018eb:	e8 75 03 00 00       	call   0x401c65
4018f0:	eb 05                	jmp    0x4018f7
4018f2:	e8 14 03 00 00       	call   0x401c0b
4018f7:	33 c0                	xor    %eax,%eax
4018f9:	5d                   	pop    %ebp
4018fa:	c2 08 00             	ret    $0x8
4018fd:	cc                   	int3
4018fe:	cc                   	int3
4018ff:	cc                   	int3
401900:	8b ff                	mov    %edi,%edi
401902:	55                   	push   %ebp
401903:	8b ec                	mov    %esp,%ebp
401905:	8b 55 0c             	mov    0xc(%ebp),%edx
401908:	53                   	push   %ebx
401909:	56                   	push   %esi
40190a:	33 db                	xor    %ebx,%ebx
40190c:	be 30 11 40 00       	mov    $0x401130,%esi
401911:	57                   	push   %edi
401912:	8b cb                	mov    %ebx,%ecx
401914:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
401917:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
40191a:	75 08                	jne    0x401924
40191c:	41                   	inc    %ecx
40191d:	83 f9 04             	cmp    $0x4,%ecx
401920:	75 f2                	jne    0x401914
401922:	eb 15                	jmp    0x401939
401924:	be 40 11 40 00       	mov    $0x401140,%esi
401929:	8b cb                	mov    %ebx,%ecx
40192b:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
40192e:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
401931:	75 2d                	jne    0x401960
401933:	41                   	inc    %ecx
401934:	83 f9 04             	cmp    $0x4,%ecx
401937:	75 f2                	jne    0x40192b
401939:	8b 4d 08             	mov    0x8(%ebp),%ecx
40193c:	8b fc                	mov    %esp,%edi
40193e:	8b 45 10             	mov    0x10(%ebp),%eax
401941:	51                   	push   %ecx
401942:	89 08                	mov    %ecx,(%eax)
401944:	8b 01                	mov    (%ecx),%eax
401946:	8b 70 04             	mov    0x4(%eax),%esi
401949:	8b ce                	mov    %esi,%ecx
40194b:	ff 15 48 41 40 00    	call   *0x404148
401951:	ff d6                	call   *%esi
401953:	3b fc                	cmp    %esp,%edi
401955:	74 07                	je     0x40195e
401957:	b9 04 00 00 00       	mov    $0x4,%ecx
40195c:	cd 29                	int    $0x29
40195e:	eb 0a                	jmp    0x40196a
401960:	8b 4d 10             	mov    0x10(%ebp),%ecx
401963:	89 19                	mov    %ebx,(%ecx)
401965:	bb 02 40 00 80       	mov    $0x80004002,%ebx
40196a:	5f                   	pop    %edi
40196b:	5e                   	pop    %esi
40196c:	8b c3                	mov    %ebx,%eax
40196e:	5b                   	pop    %ebx
40196f:	5d                   	pop    %ebp
401970:	c2 0c 00             	ret    $0xc
401973:	cc                   	int3
401974:	cc                   	int3
401975:	cc                   	int3
401976:	cc                   	int3
401977:	cc                   	int3
401978:	cc                   	int3
401979:	cc                   	int3
40197a:	cc                   	int3
40197b:	cc                   	int3
40197c:	cc                   	int3
40197d:	cc                   	int3
40197e:	cc                   	int3
40197f:	cc                   	int3
401980:	8b ff                	mov    %edi,%edi
401982:	55                   	push   %ebp
401983:	8b ec                	mov    %esp,%ebp
401985:	53                   	push   %ebx
401986:	56                   	push   %esi
401987:	33 c9                	xor    %ecx,%ecx
401989:	be 02 40 00 80       	mov    $0x80004002,%esi
40198e:	57                   	push   %edi
40198f:	bf 8c 33 40 00       	mov    $0x40338c,%edi
401994:	bb 60 11 40 00       	mov    $0x401160,%ebx
401999:	8b d1                	mov    %ecx,%edx
40199b:	8b 04 97             	mov    (%edi,%edx,4),%eax
40199e:	3b 04 93             	cmp    (%ebx,%edx,4),%eax
4019a1:	75 08                	jne    0x4019ab
4019a3:	42                   	inc    %edx
4019a4:	83 fa 04             	cmp    $0x4,%edx
4019a7:	75 f2                	jne    0x40199b
4019a9:	eb 13                	jmp    0x4019be
4019ab:	ba 70 11 40 00       	mov    $0x401170,%edx
4019b0:	8b 04 8f             	mov    (%edi,%ecx,4),%eax
4019b3:	3b 04 8a             	cmp    (%edx,%ecx,4),%eax
4019b6:	75 27                	jne    0x4019df
4019b8:	41                   	inc    %ecx
4019b9:	83 f9 04             	cmp    $0x4,%ecx
4019bc:	75 f2                	jne    0x4019b0
4019be:	ff 75 14             	push   0x14(%ebp)
4019c1:	ff 75 10             	push   0x10(%ebp)
4019c4:	68 04 00 08 00       	push   $0x80004
4019c9:	ff 75 0c             	push   0xc(%ebp)
4019cc:	57                   	push   %edi
4019cd:	ff 15 3c 41 40 00    	call   *0x40413c
4019d3:	8b f0                	mov    %eax,%esi
4019d5:	e8 8b 02 00 00       	call   0x401c65
4019da:	e8 2c 02 00 00       	call   0x401c0b
4019df:	5f                   	pop    %edi
4019e0:	8b c6                	mov    %esi,%eax
4019e2:	5e                   	pop    %esi
4019e3:	5b                   	pop    %ebx
4019e4:	5d                   	pop    %ebp
4019e5:	c2 10 00             	ret    $0x10
4019e8:	8b ff                	mov    %edi,%edi
4019ea:	56                   	push   %esi
4019eb:	8b f1                	mov    %ecx,%esi
4019ed:	6a 00                	push   $0x0
4019ef:	0f b6 96 54 b0 00 00 	movzbl 0xb054(%esi),%edx
4019f6:	8d 86 4c 60 00 00    	lea    0x604c(%esi),%eax
4019fc:	ff b6 50 b0 00 00    	push   0xb050(%esi)
401a02:	f7 da                	neg    %edx
401a04:	50                   	push   %eax
401a05:	1b d2                	sbb    %edx,%edx
401a07:	8d 86 4c 10 00 00    	lea    0x104c(%esi),%eax
401a0d:	f7 d2                	not    %edx
401a0f:	23 d0                	and    %eax,%edx
401a11:	8d 46 04             	lea    0x4(%esi),%eax
401a14:	52                   	push   %edx
401a15:	50                   	push   %eax
401a16:	ff 15 bc 40 40 00    	call   *0x4040bc
401a1c:	85 c0                	test   %eax,%eax
401a1e:	74 04                	je     0x401a24
401a20:	33 c0                	xor    %eax,%eax
401a22:	eb 12                	jmp    0x401a36
401a24:	ff 15 3c 40 40 00    	call   *0x40403c
401a2a:	85 c0                	test   %eax,%eax
401a2c:	7e 08                	jle    0x401a36
401a2e:	0f b7 c0             	movzwl %ax,%eax
401a31:	0d 00 00 07 80       	or     $0x80070000,%eax
401a36:	6a 00                	push   $0x0
401a38:	89 86 58 b0 00 00    	mov    %eax,0xb058(%esi)
401a3e:	ff 15 94 40 40 00    	call   *0x404094
401a44:	5e                   	pop    %esi
401a45:	c3                   	ret
401a46:	8b ff                	mov    %edi,%edi