4377a5:	50                   	push   %eax
4377a6:	ff 15 c4 12 45 00    	call   *0x4512c4
4377ac:	ff 56 20             	call   *0x20(%esi)
4377af:	ff 75 f8             	push   -0x8(%ebp)
4377b2:	8b f0                	mov    %eax,%esi
4377b4:	ff 75 f4             	push   -0xc(%ebp)
4377b7:	51                   	push   %ecx
4377b8:	51                   	push   %ecx
4377b9:	ff 75 f0             	push   -0x10(%ebp)
4377bc:	8b cb                	mov    %ebx,%ecx
4377be:	ff 75 ec             	push   -0x14(%ebp)
4377c1:	ff 75 e8             	push   -0x18(%ebp)
4377c4:	e8 92 dd ff ff       	call   0x43555b
4377c9:	eb 05                	jmp    0x4377d0
4377cb:	be 09 10 04 80       	mov    $0x80041009,%esi
4377d0:	f0 ff 0f             	lock decl (%edi)
4377d3:	85 f6                	test   %esi,%esi
4377d5:	79 0f                	jns    0x4377e6
4377d7:	56                   	push   %esi
4377d8:	ff 15 a0 12 45 00    	call   *0x4512a0
4377de:	8b c8                	mov    %eax,%ecx
4377e0:	ff 15 a4 12 45 00    	call   *0x4512a4
4377e6:	a1 00 f0 44 00       	mov    0x44f000,%eax
4377eb:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
4377f0:	74 22                	je     0x437814
4377f2:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
4377f6:	74 1c                	je     0x437814
4377f8:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
4377fc:	72 16                	jb     0x437814
4377fe:	56                   	push   %esi
4377ff:	ff 70 14             	push   0x14(%eax)
437802:	ba d4 b1 40 00       	mov    $0x40b1d4,%edx
437807:	b9 83 00 00 00       	mov    $0x83,%ecx
43780c:	ff 70 10             	push   0x10(%eax)
43780f:	e8 b2 8f ff ff       	call   0x4307c6
437814:	5f                   	pop    %edi
437815:	8b c6                	mov    %esi,%eax
437817:	5e                   	pop    %esi
437818:	5b                   	pop    %ebx
437819:	c9                   	leave
43781a:	c2 20 00             	ret    $0x20
43781d:	cc                   	int3
43781e:	cc                   	int3
43781f:	cc                   	int3
437820:	6a 00                	push   $0x0
437822:	b8 fd 2c 42 00       	mov    $0x422cfd,%eax
437827:	e8 41 7e fe ff       	call   0x41f66d
43782c:	8b 75 08             	mov    0x8(%ebp),%esi
43782f:	83 cf ff             	or     $0xffffffff,%edi
437832:	f0 0f c1 7e 0c       	lock xadd %edi,0xc(%esi)
437837:	4f                   	dec    %edi
437838:	75 1b                	jne    0x437855
43783a:	85 f6                	test   %esi,%esi
43783c:	74 17                	je     0x437855
43783e:	8b ce                	mov    %esi,%ecx
437840:	e8 f5 c0 ff ff       	call   0x43393a
437845:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
437849:	8b 0d 80 0b 45 00    	mov    0x450b80,%ecx
43784f:	56                   	push   %esi
437850:	e8 d5 1f fe ff       	call   0x41982a
437855:	8b c7                	mov    %edi,%eax
437857:	e8 df 7d fe ff       	call   0x41f63b
43785c:	c2 04 00             	ret    $0x4
43785f:	cc                   	int3
437860:	6a 00                	push   $0x0
437862:	b8 fd 2c 42 00       	mov    $0x422cfd,%eax
437867:	e8 01 7e fe ff       	call   0x41f66d
43786c:	8b 75 08             	mov    0x8(%ebp),%esi
43786f:	83 cf ff             	or     $0xffffffff,%edi
437872:	f0 0f c1 7e 0c       	lock xadd %edi,0xc(%esi)
437877:	4f                   	dec    %edi
437878:	75 1b                	jne    0x437895
43787a:	85 f6                	test   %esi,%esi
43787c:	74 17                	je     0x437895
43787e:	8b ce                	mov    %esi,%ecx
437880:	e8 4e c1 ff ff       	call   0x4339d3
437885:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
437889:	8b 0d 80 0b 45 00    	mov    0x450b80,%ecx
43788f:	56                   	push   %esi
437890:	e8 95 1f fe ff       	call   0x41982a
437895:	8b c7                	mov    %edi,%eax
437897:	e8 9f 7d fe ff       	call   0x41f63b
43789c:	c2 04 00             	ret    $0x4
43789f:	cc                   	int3
4378a0:	8b ff                	mov    %edi,%edi
4378a2:	55                   	push   %ebp
4378a3:	8b ec                	mov    %esp,%ebp
4378a5:	53                   	push   %ebx
4378a6:	56                   	push   %esi
4378a7:	a1 00 f0 44 00       	mov    0x44f000,%eax
4378ac:	bb 00 f0 44 00       	mov    $0x44f000,%ebx
4378b1:	3b c3                	cmp    %ebx,%eax
4378b3:	74 23                	je     0x4378d8
4378b5:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
4378b9:	74 1d                	je     0x4378d8
4378bb:	80 78 19 05          	cmpb   $0x5,0x19(%eax)
4378bf:	72 17                	jb     0x4378d8
4378c1:	ff 75 18             	push   0x18(%ebp)
4378c4:	ff 75 14             	push   0x14(%ebp)
4378c7:	ff 75 10             	push   0x10(%ebp)
4378ca:	ff 70 14             	push   0x14(%eax)
4378cd:	ff 70 10             	push   0x10(%eax)
4378d0:	6a 3f                	push   $0x3f
4378d2:	59                   	pop    %ecx
4378d3:	e8 b3 04 00 00       	call   0x437d8b
4378d8:	8b 45 08             	mov    0x8(%ebp),%eax
4378db:	57                   	push   %edi
4378dc:	8d 78 10             	lea    0x10(%eax),%edi
4378df:	f0 ff 07             	lock incl (%edi)
4378e2:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
4378e6:	75 07                	jne    0x4378ef
4378e8:	be 33 10 04 80       	mov    $0x80041033,%esi
4378ed:	eb 2e                	jmp    0x43791d
4378ef:	8b 40 38             	mov    0x38(%eax),%eax
4378f2:	85 c0                	test   %eax,%eax
4378f4:	74 22                	je     0x437918
4378f6:	ff 75 1c             	push   0x1c(%ebp)
4378f9:	8b 30                	mov    (%eax),%esi
4378fb:	ff 75 18             	push   0x18(%ebp)
4378fe:	ff 75 14             	push   0x14(%ebp)
437901:	8b 4e 18             	mov    0x18(%esi),%ecx
437904:	ff 75 10             	push   0x10(%ebp)
437907:	ff 75 0c             	push   0xc(%ebp)
43790a:	50                   	push   %eax
43790b:	ff 15 c4 12 45 00    	call   *0x4512c4
437911:	ff 56 18             	call   *0x18(%esi)
437914:	8b f0                	mov    %eax,%esi
437916:	eb 05                	jmp    0x43791d
437918:	be 09 10 04 80       	mov    $0x80041009,%esi
43791d:	f0 ff 0f             	lock decl (%edi)
437920:	5f                   	pop    %edi
437921:	85 f6                	test   %esi,%esi
437923:	79 0f                	jns    0x437934
437925:	56                   	push   %esi
437926:	ff 15 a0 12 45 00    	call   *0x4512a0
43792c:	8b c8                	mov    %eax,%ecx
43792e:	ff 15 a4 12 45 00    	call   *0x4512a4
437934:	a1 00 f0 44 00       	mov    0x44f000,%eax
437939:	3b c3                	cmp    %ebx,%eax
43793b:	74 20                	je     0x43795d
43793d:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
437941:	74 1a                	je     0x43795d
437943:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
437947:	72 14                	jb     0x43795d
437949:	56                   	push   %esi
43794a:	ff 70 14             	push   0x14(%eax)
43794d:	ba d4 b1 40 00       	mov    $0x40b1d4,%edx
437952:	ff 70 10             	push   0x10(%eax)
437955:	6a 40                	push   $0x40
437957:	59                   	pop    %ecx
437958:	e8 69 8e ff ff       	call   0x4307c6
43795d:	8b c6                	mov    %esi,%eax
43795f:	5e                   	pop    %esi
437960:	5b                   	pop    %ebx
437961:	5d                   	pop    %ebp
437962:	c2 18 00             	ret    $0x18
437965:	cc                   	int3
437966:	cc                   	int3
437967:	cc                   	int3
437968:	cc                   	int3
437969:	cc                   	int3
43796a:	cc                   	int3
43796b:	cc                   	int3
43796c:	cc                   	int3
43796d:	cc                   	int3
43796e:	cc                   	int3
43796f:	cc                   	int3
437970:	8b ff                	mov    %edi,%edi
437972:	55                   	push   %ebp
437973:	8b ec                	mov    %esp,%ebp
437975:	83 ec 1c             	sub    $0x1c,%esp
437978:	a1 00 f0 44 00       	mov    0x44f000,%eax
43797d:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
437982:	74 23                	je     0x4379a7
437984:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
437988:	74 1d                	je     0x4379a7
43798a:	80 78 19 05          	cmpb   $0x5,0x19(%eax)
43798e:	72 17                	jb     0x4379a7
437990:	ff 75 18             	push   0x18(%ebp)
437993:	ff 75 14             	push   0x14(%ebp)
437996:	ff 75 10             	push   0x10(%ebp)
437999:	ff 70 14             	push   0x14(%eax)
43799c:	ff 70 10             	push   0x10(%eax)
43799f:	6a 7e                	push   $0x7e
4379a1:	59                   	pop    %ecx
4379a2:	e8 e4 03 00 00       	call   0x437d8b
4379a7:	8b 45 08             	mov    0x8(%ebp),%eax
4379aa:	53                   	push   %ebx
4379ab:	56                   	push   %esi
4379ac:	57                   	push   %edi
4379ad:	8d 78 10             	lea    0x10(%eax),%edi
4379b0:	f0 ff 07             	lock incl (%edi)
4379b3:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
4379b7:	75 07                	jne    0x4379c0
4379b9:	be 33 10 04 80       	mov    $0x80041033,%esi
4379be:	eb 75                	jmp    0x437a35
4379c0:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
4379c4:	74 6a                	je     0x437a30
4379c6:	8d 58 fc             	lea    -0x4(%eax),%ebx
4379c9:	51                   	push   %ecx
4379ca:	8d 45 f8             	lea    -0x8(%ebp),%eax
4379cd:	8b cb                	mov    %ebx,%ecx
4379cf:	50                   	push   %eax
4379d0:	8d 45 f4             	lea    -0xc(%ebp),%eax
4379d3:	50                   	push   %eax
4379d4:	8d 45 fc             	lea    -0x4(%ebp),%eax
4379d7:	50                   	push   %eax
4379d8:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4379db:	50                   	push   %eax
4379dc:	8d 45 f0             	lea    -0x10(%ebp),%eax
4379df:	50                   	push   %eax
4379e0:	8d 45 ec             	lea    -0x14(%ebp),%eax
4379e3:	50                   	push   %eax
4379e4:	8d 45 e8             	lea    -0x18(%ebp),%eax
4379e7:	50                   	push   %eax
4379e8:	e8 bb c6 ff ff       	call   0x4340a8
4379ed:	8b f0                	mov    %eax,%esi
4379ef:	85 f6                	test   %esi,%esi
4379f1:	78 42                	js     0x437a35
4379f3:	ff 75 1c             	push   0x1c(%ebp)
4379f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4379f9:	ff 75 18             	push   0x18(%ebp)
4379fc:	ff 75 14             	push   0x14(%ebp)
4379ff:	8b 30                	mov    (%eax),%esi
437a01:	ff 75 10             	push   0x10(%ebp)
437a04:	ff 75 0c             	push   0xc(%ebp)
437a07:	8b 4e 18             	mov    0x18(%esi),%ecx
437a0a:	50                   	push   %eax
437a0b:	ff 15 c4 12 45 00    	call   *0x4512c4
437a11:	ff 56 18             	call   *0x18(%esi)
437a14:	ff 75 f8             	push   -0x8(%ebp)
437a17:	8b f0                	mov    %eax,%esi
437a19:	ff 75 f4             	push   -0xc(%ebp)
437a1c:	51                   	push   %ecx
437a1d:	51                   	push   %ecx
437a1e:	ff 75 f0             	push   -0x10(%ebp)
437a21:	8b cb                	mov    %ebx,%ecx
437a23:	ff 75 ec             	push   -0x14(%ebp)
437a26:	ff 75 e8             	push   -0x18(%ebp)
437a29:	e8 2d db ff ff       	call   0x43555b
437a2e:	eb 05                	jmp    0x437a35
437a30:	be 09 10 04 80       	mov    $0x80041009,%esi
437a35:	f0 ff 0f             	lock decl (%edi)
437a38:	85 f6                	test   %esi,%esi
437a3a:	79 0f                	jns    0x437a4b
437a3c:	56                   	push   %esi
437a3d:	ff 15 a0 12 45 00    	call   *0x4512a0
437a43:	8b c8                	mov    %eax,%ecx
437a45:	ff 15 a4 12 45 00    	call   *0x4512a4
437a4b:	a1 00 f0 44 00       	mov    0x44f000,%eax
437a50:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
437a55:	74 20                	je     0x437a77
437a57:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
437a5b:	74 1a                	je     0x437a77
437a5d:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
437a61:	72 14                	jb     0x437a77
437a63:	56                   	push   %esi
437a64:	ff 70 14             	push   0x14(%eax)
437a67:	ba d4 b1 40 00       	mov    $0x40b1d4,%edx
437a6c:	ff 70 10             	push   0x10(%eax)
437a6f:	6a 7f                	push   $0x7f
437a71:	59                   	pop    %ecx
437a72:	e8 4f 8d ff ff       	call   0x4307c6
437a77:	5f                   	pop    %edi
437a78:	8b c6                	mov    %esi,%eax
437a7a:	5e                   	pop    %esi
437a7b:	5b                   	pop    %ebx
437a7c:	c9                   	leave
437a7d:	c2 18 00             	ret    $0x18
437a80:	83 c1 44             	add    $0x44,%ecx
437a83:	e8 1f b2 ff ff       	call   0x432ca7
437a88:	85 c0                	test   %eax,%eax
437a8a:	75 01                	jne    0x437a8d
437a8c:	c3                   	ret
437a8d:	56                   	push   %esi
437a8e:	be 06 10 04 80       	mov    $0x80041006,%esi
437a93:	56                   	push   %esi
437a94:	ff 15 a0 12 45 00    	call   *0x4512a0
437a9a:	8b c8                	mov    %eax,%ecx
437a9c:	ff 15 a4 12 45 00    	call   *0x4512a4
437aa2:	8b 0d 00 f0 44 00    	mov    0x44f000,%ecx
437aa8:	81 f9 00 f0 44 00    	cmp    $0x44f000,%ecx
437aae:	74 20                	je     0x437ad0
437ab0:	f6 41 1c 04          	testb  $0x4,0x1c(%ecx)
437ab4:	74 1a                	je     0x437ad0
437ab6:	80 79 19 02          	cmpb   $0x2,0x19(%ecx)
437aba:	72 14                	jb     0x437ad0
437abc:	56                   	push   %esi
437abd:	ff 71 14             	push   0x14(%ecx)
437ac0:	ba d4 b1 40 00       	mov    $0x40b1d4,%edx
437ac5:	ff 71 10             	push   0x10(%ecx)
437ac8:	6a 75                	push   $0x75
437aca:	59                   	pop    %ecx
437acb:	e8 f6 8c ff ff       	call   0x4307c6
437ad0:	8b c6                	mov    %esi,%eax
437ad2:	5e                   	pop    %esi
437ad3:	c3                   	ret
437ad4:	cc                   	int3
437ad5:	cc                   	int3
437ad6:	cc                   	int3
437ad7:	cc                   	int3
437ad8:	cc                   	int3
437ad9:	cc                   	int3
437ada:	cc                   	int3
437adb:	cc                   	int3
437adc:	cc                   	int3
437add:	cc                   	int3
437ade:	cc                   	int3
437adf:	cc                   	int3
437ae0:	8b ff                	mov    %edi,%edi
437ae2:	55                   	push   %ebp
437ae3:	8b ec                	mov    %esp,%ebp
437ae5:	53                   	push   %ebx
437ae6:	57                   	push   %edi
437ae7:	a1 00 f0 44 00       	mov    0x44f000,%eax
437aec:	bf 00 f0 44 00       	mov    $0x44f000,%edi
437af1:	bb d4 b1 40 00       	mov    $0x40b1d4,%ebx
437af6:	3b c7                	cmp    %edi,%eax
437af8:	74 25                	je     0x437b1f
437afa:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
437afe:	74 1f                	je     0x437b1f
437b00:	80 78 19 05          	cmpb   $0x5,0x19(%eax)
437b04:	72 19                	jb     0x437b1f
437b06:	ff 75 14             	push   0x14(%ebp)
437b09:	8b d3                	mov    %ebx,%edx
437b0b:	ff 75 10             	push   0x10(%ebp)
437b0e:	ff 75 0c             	push   0xc(%ebp)
437b11:	ff 70 14             	push   0x14(%eax)
437b14:	ff 70 10             	push   0x10(%eax)
437b17:	6a 37                	push   $0x37
437b19:	59                   	pop    %ecx
437b1a:	e8 48 b3 ff ff       	call   0x432e67
437b1f:	56                   	push   %esi
437b20:	8b 75 08             	mov    0x8(%ebp),%esi
437b23:	f0 ff 46 08          	lock incl 0x8(%esi)
437b27:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
437b2b:	74 14                	je     0x437b41
437b2d:	ff 15 d8 10 45 00    	call   *0x4510d8
437b33:	85 c0                	test   %eax,%eax
437b35:	75 f0                	jne    0x437b27
437b37:	6a 0a                	push   $0xa
437b39:	ff 15 58 11 45 00    	call   *0x451158
437b3f:	eb e6                	jmp    0x437b27
437b41:	a1 00 f0 44 00       	mov    0x44f000,%eax
437b46:	5e                   	pop    %esi
437b47:	3b c7                	cmp    %edi,%eax
437b49:	74 1e                	je     0x437b69
437b4b:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
437b4f:	74 18                	je     0x437b69
437b51:	80 78 19 02          	cmpb   $0x2,0x19(%eax)