40364d:	eb 02                	jmp    0x403651
40364f:	33 f6                	xor    %esi,%esi
403651:	8b 45 98             	mov    -0x68(%ebp),%eax
403654:	85 c0                	test   %eax,%eax
403656:	79 8c                	jns    0x4035e4
403658:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40365c:	8b 5d 94             	mov    -0x6c(%ebp),%ebx
40365f:	74 14                	je     0x403675
403661:	6a 00                	push   $0x0
403663:	68 10 33 40 00       	push   $0x403310
403668:	ff 77 0c             	push   0xc(%edi)
40366b:	ff 15 04 60 40 00    	call   *0x406004
403671:	83 67 0c 00          	andl   $0x0,0xc(%edi)
403675:	8b 03                	mov    (%ebx),%eax
403677:	53                   	push   %ebx
403678:	8b 70 08             	mov    0x8(%eax),%esi
40367b:	8b ce                	mov    %esi,%ecx
40367d:	ff 15 90 61 40 00    	call   *0x406190
403683:	ff d6                	call   *%esi
403685:	68 60 ea 00 00       	push   $0xea60
40368a:	ff 77 08             	push   0x8(%edi)
40368d:	ff 15 18 60 40 00    	call   *0x406018
403693:	8b 07                	mov    (%edi),%eax
403695:	57                   	push   %edi
403696:	8b 70 08             	mov    0x8(%eax),%esi
403699:	8b ce                	mov    %esi,%ecx
40369b:	ff 15 90 61 40 00    	call   *0x406190
4036a1:	ff d6                	call   *%esi
4036a3:	ff 15 c4 60 40 00    	call   *0x4060c4
4036a9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4036ac:	33 c0                	xor    %eax,%eax
4036ae:	5f                   	pop    %edi
4036af:	5e                   	pop    %esi
4036b0:	33 cd                	xor    %ebp,%ecx
4036b2:	5b                   	pop    %ebx
4036b3:	e8 e8 0b 00 00       	call   0x4042a0
4036b8:	c9                   	leave
4036b9:	c2 10 00             	ret    $0x10
4036bc:	8b ff                	mov    %edi,%edi
4036be:	56                   	push   %esi
4036bf:	8b f1                	mov    %ecx,%esi
4036c1:	57                   	push   %edi
4036c2:	33 ff                	xor    %edi,%edi
4036c4:	39 3e                	cmp    %edi,(%esi)
4036c6:	74 26                	je     0x4036ee
4036c8:	e8 11 08 00 00       	call   0x403ede
4036cd:	84 c0                	test   %al,%al
4036cf:	75 1d                	jne    0x4036ee
4036d1:	39 3e                	cmp    %edi,(%esi)
4036d3:	74 19                	je     0x4036ee
4036d5:	57                   	push   %edi
4036d6:	68 f0 3a 40 00       	push   $0x403af0
4036db:	ff 36                	push   (%esi)
4036dd:	ff 15 04 60 40 00    	call   *0x406004
4036e3:	57                   	push   %edi
4036e4:	89 3e                	mov    %edi,(%esi)
4036e6:	ff 15 08 60 40 00    	call   *0x406008
4036ec:	89 3e                	mov    %edi,(%esi)
4036ee:	5f                   	pop    %edi
4036ef:	5e                   	pop    %esi
4036f0:	c3                   	ret
4036f1:	8b 11                	mov    (%ecx),%edx
4036f3:	85 d2                	test   %edx,%edx
4036f5:	74 15                	je     0x40370c
4036f7:	83 21 00             	andl   $0x0,(%ecx)
4036fa:	8b 02                	mov    (%edx),%eax
4036fc:	56                   	push   %esi
4036fd:	52                   	push   %edx
4036fe:	8b 70 08             	mov    0x8(%eax),%esi
403701:	8b ce                	mov    %esi,%ecx
403703:	ff 15 90 61 40 00    	call   *0x406190
403709:	ff d6                	call   *%esi
40370b:	5e                   	pop    %esi
40370c:	c3                   	ret
40370d:	cc                   	int3
40370e:	cc                   	int3
40370f:	cc                   	int3
403710:	8b ff                	mov    %edi,%edi
403712:	55                   	push   %ebp
403713:	8b ec                	mov    %esp,%ebp
403715:	53                   	push   %ebx
403716:	56                   	push   %esi
403717:	57                   	push   %edi
403718:	8b 7d 08             	mov    0x8(%ebp),%edi
40371b:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
403720:	8d 77 08             	lea    0x8(%edi),%esi
403723:	eb 0d                	jmp    0x403732
403725:	8d 4a ff             	lea    -0x1(%edx),%ecx
403728:	8b c2                	mov    %edx,%eax
40372a:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
40372e:	3b c2                	cmp    %edx,%eax
403730:	74 06                	je     0x403738
403732:	8b 16                	mov    (%esi),%edx
403734:	3b d3                	cmp    %ebx,%edx
403736:	75 ed                	jne    0x403725
403738:	8d 5a ff             	lea    -0x1(%edx),%ebx
40373b:	85 db                	test   %ebx,%ebx
40373d:	75 31                	jne    0x403770
40373f:	85 ff                	test   %edi,%edi
403741:	74 13                	je     0x403756
403743:	8b 07                	mov    (%edi),%eax
403745:	6a 01                	push   $0x1
403747:	8b 70 0c             	mov    0xc(%eax),%esi
40374a:	8b ce                	mov    %esi,%ecx
40374c:	ff 15 90 61 40 00    	call   *0x406190
403752:	8b cf                	mov    %edi,%ecx
403754:	ff d6                	call   *%esi
403756:	8b 15 48 54 40 00    	mov    0x405448,%edx
40375c:	85 d2                	test   %edx,%edx
40375e:	74 10                	je     0x403770
403760:	8b 0a                	mov    (%edx),%ecx
403762:	52                   	push   %edx
403763:	8b 71 08             	mov    0x8(%ecx),%esi
403766:	8b ce                	mov    %esi,%ecx
403768:	ff 15 90 61 40 00    	call   *0x406190
40376e:	ff d6                	call   *%esi
403770:	5f                   	pop    %edi
403771:	5e                   	pop    %esi
403772:	8b c3                	mov    %ebx,%eax
403774:	5b                   	pop    %ebx
403775:	5d                   	pop    %ebp
403776:	c2 04 00             	ret    $0x4
403779:	cc                   	int3
40377a:	cc                   	int3
40377b:	cc                   	int3
40377c:	cc                   	int3
40377d:	cc                   	int3
40377e:	cc                   	int3
40377f:	cc                   	int3
403780:	8b ff                	mov    %edi,%edi
403782:	55                   	push   %ebp
403783:	8b ec                	mov    %esp,%ebp
403785:	56                   	push   %esi
403786:	57                   	push   %edi
403787:	8b 7d 08             	mov    0x8(%ebp),%edi
40378a:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
40378f:	83 c7 08             	add    $0x8,%edi
403792:	8b 17                	mov    (%edi),%edx
403794:	3b d6                	cmp    %esi,%edx
403796:	74 1a                	je     0x4037b2
403798:	8d 4a 01             	lea    0x1(%edx),%ecx
40379b:	8b c2                	mov    %edx,%eax
40379d:	f0 0f b1 0f          	lock cmpxchg %ecx,(%edi)
4037a1:	3b c2                	cmp    %edx,%eax
4037a3:	74 06                	je     0x4037ab
4037a5:	8b 17                	mov    (%edi),%edx
4037a7:	3b d6                	cmp    %esi,%edx
4037a9:	75 ed                	jne    0x403798
4037ab:	3b d6                	cmp    %esi,%edx
4037ad:	74 03                	je     0x4037b2
4037af:	8d 72 01             	lea    0x1(%edx),%esi
4037b2:	5f                   	pop    %edi
4037b3:	8b c6                	mov    %esi,%eax
4037b5:	5e                   	pop    %esi
4037b6:	5d                   	pop    %ebp
4037b7:	c2 04 00             	ret    $0x4
4037ba:	cc                   	int3
4037bb:	cc                   	int3
4037bc:	cc                   	int3
4037bd:	cc                   	int3
4037be:	cc                   	int3
4037bf:	cc                   	int3
4037c0:	8b ff                	mov    %edi,%edi
4037c2:	55                   	push   %ebp
4037c3:	8b ec                	mov    %esp,%ebp
4037c5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4037c8:	56                   	push   %esi
4037c9:	8b 75 10             	mov    0x10(%ebp),%esi
4037cc:	57                   	push   %edi
4037cd:	33 ff                	xor    %edi,%edi
4037cf:	89 3e                	mov    %edi,(%esi)
4037d1:	e8 aa e0 ff ff       	call   0x401880
4037d6:	85 c0                	test   %eax,%eax
4037d8:	75 1d                	jne    0x4037f7
4037da:	e8 a1 e0 ff ff       	call   0x401880
4037df:	85 c0                	test   %eax,%eax
4037e1:	74 0d                	je     0x4037f0
4037e3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4037e6:	89 0e                	mov    %ecx,(%esi)
4037e8:	51                   	push   %ecx
4037e9:	8b 01                	mov    (%ecx),%eax
4037eb:	8b 70 04             	mov    0x4(%eax),%esi
4037ee:	eb 12                	jmp    0x403802
4037f0:	bf 02 40 00 80       	mov    $0x80004002,%edi
4037f5:	eb 15                	jmp    0x40380c
4037f7:	8b 55 08             	mov    0x8(%ebp),%edx
4037fa:	89 16                	mov    %edx,(%esi)
4037fc:	52                   	push   %edx
4037fd:	8b 0a                	mov    (%edx),%ecx
4037ff:	8b 71 04             	mov    0x4(%ecx),%esi
403802:	8b ce                	mov    %esi,%ecx
403804:	ff 15 90 61 40 00    	call   *0x406190
40380a:	ff d6                	call   *%esi
40380c:	8b c7                	mov    %edi,%eax
40380e:	5f                   	pop    %edi
40380f:	5e                   	pop    %esi
403810:	5d                   	pop    %ebp
403811:	c2 0c 00             	ret    $0xc
403814:	8b ff                	mov    %edi,%edi
403816:	55                   	push   %ebp
403817:	8b ec                	mov    %esp,%ebp
403819:	53                   	push   %ebx
40381a:	57                   	push   %edi
40381b:	8b f9                	mov    %ecx,%edi
40381d:	8b 1f                	mov    (%edi),%ebx
40381f:	85 db                	test   %ebx,%ebx
403821:	74 17                	je     0x40383a
403823:	56                   	push   %esi
403824:	ff 15 2c 60 40 00    	call   *0x40602c
40382a:	53                   	push   %ebx
40382b:	8b f0                	mov    %eax,%esi
40382d:	e8 c0 eb ff ff       	call   0x4023f2
403832:	56                   	push   %esi
403833:	ff 15 68 60 40 00    	call   *0x406068
403839:	5e                   	pop    %esi
40383a:	8b 45 08             	mov    0x8(%ebp),%eax
40383d:	89 07                	mov    %eax,(%edi)
40383f:	5f                   	pop    %edi
403840:	5b                   	pop    %ebx
403841:	5d                   	pop    %ebp
403842:	c2 04 00             	ret    $0x4
403845:	cc                   	int3
403846:	cc                   	int3
403847:	cc                   	int3
403848:	cc                   	int3
403849:	cc                   	int3
40384a:	cc                   	int3
40384b:	cc                   	int3
40384c:	cc                   	int3
40384d:	cc                   	int3
40384e:	cc                   	int3
40384f:	cc                   	int3
403850:	8b ff                	mov    %edi,%edi
403852:	55                   	push   %ebp
403853:	8b ec                	mov    %esp,%ebp
403855:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
403859:	56                   	push   %esi
40385a:	8b f1                	mov    %ecx,%esi
40385c:	c7 46 08 01 00 00 c0 	movl   $0xc0000001,0x8(%esi)
403863:	74 07                	je     0x40386c
403865:	56                   	push   %esi
403866:	e8 f9 06 00 00       	call   0x403f64
40386b:	59                   	pop    %ecx
40386c:	8b c6                	mov    %esi,%eax
40386e:	5e                   	pop    %esi
40386f:	5d                   	pop    %ebp
403870:	c2 04 00             	ret    $0x4
403873:	8b 11                	mov    (%ecx),%edx
403875:	33 c0                	xor    %eax,%eax
403877:	85 d2                	test   %edx,%edx
403879:	74 14                	je     0x40388f
40387b:	89 01                	mov    %eax,(%ecx)
40387d:	8b 02                	mov    (%edx),%eax
40387f:	56                   	push   %esi
403880:	52                   	push   %edx
403881:	8b 70 08             	mov    0x8(%eax),%esi
403884:	8b ce                	mov    %esi,%ecx
403886:	ff 15 90 61 40 00    	call   *0x406190
40388c:	ff d6                	call   *%esi
40388e:	5e                   	pop    %esi
40388f:	c3                   	ret
403890:	8b ff                	mov    %edi,%edi
403892:	55                   	push   %ebp
403893:	8b ec                	mov    %esp,%ebp
403895:	81 ec 20 02 00 00    	sub    $0x220,%esp
40389b:	a1 14 50 40 00       	mov    0x405014,%eax
4038a0:	33 c5                	xor    %ebp,%eax
4038a2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038a5:	53                   	push   %ebx
4038a6:	56                   	push   %esi
4038a7:	8b da                	mov    %edx,%ebx
4038a9:	33 f6                	xor    %esi,%esi
4038ab:	51                   	push   %ecx
4038ac:	6a 40                	push   $0x40
4038ae:	89 33                	mov    %esi,(%ebx)
4038b0:	ff 15 54 60 40 00    	call   *0x406054
4038b6:	50                   	push   %eax
4038b7:	68 5c 14 40 00       	push   $0x40145c
4038bc:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4038c2:	68 04 01 00 00       	push   $0x104
4038c7:	50                   	push   %eax
4038c8:	e8 aa e0 ff ff       	call   0x401977
4038cd:	83 c4 18             	add    $0x18,%esp
4038d0:	89 b5 f0 fd ff ff    	mov    %esi,-0x210(%ebp)
4038d6:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4038dc:	68 01 00 1f 00       	push   $0x1f0001
4038e1:	56                   	push   %esi
4038e2:	50                   	push   %eax
4038e3:	56                   	push   %esi
4038e4:	ff 15 50 60 40 00    	call   *0x406050
4038ea:	50                   	push   %eax
4038eb:	8d 8d f0 fd ff ff    	lea    -0x210(%ebp),%ecx
4038f1:	e8 1e ff ff ff       	call   0x403814
4038f6:	39 b5 f0 fd ff ff    	cmp    %esi,-0x210(%ebp)
4038fc:	75 0c                	jne    0x40390a
4038fe:	e8 f0 e5 ff ff       	call   0x401ef3
403903:	8b f0                	mov    %eax,%esi
403905:	e9 b3 00 00 00       	jmp    0x4039bd
40390a:	57                   	push   %edi
40390b:	83 ec 0c             	sub    $0xc,%esp
40390e:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
403914:	8d 8d f0 fd ff ff    	lea    -0x210(%ebp),%ecx
40391a:	50                   	push   %eax
40391b:	e8 5b 03 00 00       	call   0x403c7b
403920:	51                   	push   %ecx
403921:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
403927:	89 b5 e0 fd ff ff    	mov    %esi,-0x220(%ebp)
40392d:	50                   	push   %eax
40392e:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
403934:	89 b5 e4 fd ff ff    	mov    %esi,-0x21c(%ebp)
40393a:	8b fe                	mov    %esi,%edi
40393c:	e8 ce ec ff ff       	call   0x40260f
403941:	8b f0                	mov    %eax,%esi
403943:	85 f6                	test   %esi,%esi
403945:	79 11                	jns    0x403958
403947:	56                   	push   %esi
403948:	51                   	push   %ecx
403949:	8b 4d 04             	mov    0x4(%ebp),%ecx
40394c:	6a 62                	push   $0x62
40394e:	5a                   	pop    %edx
40394f:	e8 27 ea ff ff       	call   0x40237b
403954:	8b c7                	mov    %edi,%eax
403956:	eb 08                	jmp    0x403960
403958:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
40395e:	33 f6                	xor    %esi,%esi
403960:	85 f6                	test   %esi,%esi
403962:	79 0f                	jns    0x403973
403964:	56                   	push   %esi
403965:	51                   	push   %ecx
403966:	8b 4d 04             	mov    0x4(%ebp),%ecx
403969:	6a 6b                	push   $0x6b
40396b:	5a                   	pop    %edx
40396c:	e8 0a ea ff ff       	call   0x40237b
403971:	eb 07                	jmp    0x40397a
403973:	8b f8                	mov    %eax,%edi
403975:	c1 e7 02             	shl    $0x2,%edi
403978:	33 f6                	xor    %esi,%esi
40397a:	85 f6                	test   %esi,%esi
40397c:	79 07                	jns    0x403985
40397e:	ba 26 01 00 00       	mov    $0x126,%edx
403983:	eb 65                	jmp    0x4039ea
403985:	85 ff                	test   %edi,%edi
403987:	74 44                	je     0x4039cd
403989:	89 3b                	mov    %edi,(%ebx)
40398b:	8b 0f                	mov    (%edi),%ecx
40398d:	8b 03                	mov    (%ebx),%eax
40398f:	41                   	inc    %ecx
403990:	89 08                	mov    %ecx,(%eax)
403992:	33 f6                	xor    %esi,%esi
403994:	83 bd ec fd ff ff 00 	cmpl   $0x0,-0x214(%ebp)