815856:	74 27                	je     0x81587f
815858:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
81585c:	74 21                	je     0x81587f
81585e:	33 c0                	xor    %eax,%eax
815860:	50                   	push   %eax
815861:	50                   	push   %eax
815862:	ff 75 10             	push   0x10(%ebp)
815865:	88 06                	mov    %al,(%esi)
815867:	56                   	push   %esi
815868:	6a ff                	push   $0xffffffff
81586a:	ff 75 0c             	push   0xc(%ebp)
81586d:	50                   	push   %eax
81586e:	ff 75 14             	push   0x14(%ebp)
815871:	ff 15 98 36 d8 00    	call   *0xd83698
815877:	f7 d8                	neg    %eax
815879:	1b c0                	sbb    %eax,%eax
81587b:	23 c6                	and    %esi,%eax
81587d:	eb 02                	jmp    0x815881
81587f:	33 c0                	xor    %eax,%eax
815881:	5e                   	pop    %esi
815882:	5d                   	pop    %ebp
815883:	c2 10 00             	ret    $0x10
815886:	cc                   	int3
815887:	cc                   	int3
815888:	cc                   	int3
815889:	cc                   	int3
81588a:	cc                   	int3
81588b:	cc                   	int3
81588c:	cc                   	int3
81588d:	cc                   	int3
81588e:	cc                   	int3
81588f:	cc                   	int3
815890:	cc                   	int3
815891:	cc                   	int3
815892:	cc                   	int3
815893:	cc                   	int3
815894:	55                   	push   %ebp
815895:	8b ec                	mov    %esp,%ebp
815897:	8b 45 08             	mov    0x8(%ebp),%eax
81589a:	83 c0 10             	add    $0x10,%eax
81589d:	89 01                	mov    %eax,(%ecx)
81589f:	5d                   	pop    %ebp
8158a0:	c2 04 00             	ret    $0x4
8158a3:	cc                   	int3
8158a4:	cc                   	int3
8158a5:	cc                   	int3
8158a6:	8b c1                	mov    %ecx,%eax
8158a8:	c3                   	ret
8158a9:	55                   	push   %ebp
8158aa:	8b ec                	mov    %esp,%ebp
8158ac:	53                   	push   %ebx
8158ad:	8b 5d 08             	mov    0x8(%ebp),%ebx
8158b0:	56                   	push   %esi
8158b1:	57                   	push   %edi
8158b2:	8b 3b                	mov    (%ebx),%edi
8158b4:	8b 07                	mov    (%edi),%eax
8158b6:	8b 70 10             	mov    0x10(%eax),%esi
8158b9:	8b ce                	mov    %esi,%ecx
8158bb:	e8 a5 6d c1 ff       	call   0x42c665
8158c0:	8b cf                	mov    %edi,%ecx
8158c2:	ff d6                	call   *%esi
8158c4:	8b f8                	mov    %eax,%edi
8158c6:	8d 43 0c             	lea    0xc(%ebx),%eax
8158c9:	83 38 00             	cmpl   $0x0,(%eax)
8158cc:	7c 0b                	jl     0x8158d9
8158ce:	3b 3b                	cmp    (%ebx),%edi
8158d0:	75 07                	jne    0x8158d9
8158d2:	8b f3                	mov    %ebx,%esi
8158d4:	f0 ff 00             	lock incl (%eax)
8158d7:	eb 36                	jmp    0x81590f
8158d9:	8b 07                	mov    (%edi),%eax
8158db:	6a 01                	push   $0x1
8158dd:	ff 73 04             	push   0x4(%ebx)
8158e0:	8b 30                	mov    (%eax),%esi
8158e2:	8b ce                	mov    %esi,%ecx
8158e4:	e8 7c 6d c1 ff       	call   0x42c665
8158e9:	8b cf                	mov    %edi,%ecx
8158eb:	ff d6                	call   *%esi
8158ed:	8b f0                	mov    %eax,%esi
8158ef:	85 f6                	test   %esi,%esi
8158f1:	74 23                	je     0x815916
8158f3:	8b 43 04             	mov    0x4(%ebx),%eax
8158f6:	89 46 04             	mov    %eax,0x4(%esi)
8158f9:	8d 43 10             	lea    0x10(%ebx),%eax
8158fc:	8b 4b 04             	mov    0x4(%ebx),%ecx
8158ff:	41                   	inc    %ecx
815900:	51                   	push   %ecx
815901:	50                   	push   %eax
815902:	51                   	push   %ecx
815903:	8d 46 10             	lea    0x10(%esi),%eax
815906:	50                   	push   %eax
815907:	e8 db 04 00 00       	call   0x815de7
81590c:	83 c4 10             	add    $0x10,%esp
81590f:	5f                   	pop    %edi
815910:	8b c6                	mov    %esi,%eax
815912:	5e                   	pop    %esi
815913:	5b                   	pop    %ebx
815914:	5d                   	pop    %ebp
815915:	c3                   	ret
815916:	e8 3f 61 bf ff       	call   0x40ba5a
81591b:	cc                   	int3
81591c:	cc                   	int3
81591d:	cc                   	int3
81591e:	cc                   	int3
81591f:	cc                   	int3
815920:	cc                   	int3
815921:	cc                   	int3
815922:	cc                   	int3
815923:	cc                   	int3
815924:	cc                   	int3
815925:	cc                   	int3
815926:	cc                   	int3
815927:	cc                   	int3
815928:	cc                   	int3
815929:	cc                   	int3
81592a:	cc                   	int3
81592b:	cc                   	int3
81592c:	cc                   	int3
81592d:	cc                   	int3
81592e:	cc                   	int3
81592f:	cc                   	int3
815930:	cc                   	int3
815931:	cc                   	int3
815932:	cc                   	int3
815933:	cc                   	int3
815934:	cc                   	int3
815935:	cc                   	int3
815936:	cc                   	int3
815937:	cc                   	int3
815938:	55                   	push   %ebp
815939:	8b ec                	mov    %esp,%ebp
81593b:	53                   	push   %ebx
81593c:	8b 5d 08             	mov    0x8(%ebp),%ebx
81593f:	56                   	push   %esi
815940:	57                   	push   %edi
815941:	8b 3b                	mov    (%ebx),%edi
815943:	8b 07                	mov    (%edi),%eax
815945:	8b 70 10             	mov    0x10(%eax),%esi
815948:	8b ce                	mov    %esi,%ecx
81594a:	e8 16 6d c1 ff       	call   0x42c665
81594f:	8b cf                	mov    %edi,%ecx
815951:	ff d6                	call   *%esi
815953:	8b f8                	mov    %eax,%edi
815955:	8d 43 0c             	lea    0xc(%ebx),%eax
815958:	83 38 00             	cmpl   $0x0,(%eax)
81595b:	7c 0b                	jl     0x815968
81595d:	3b 3b                	cmp    (%ebx),%edi
81595f:	75 07                	jne    0x815968
815961:	8b f3                	mov    %ebx,%esi
815963:	f0 ff 00             	lock incl (%eax)
815966:	eb 36                	jmp    0x81599e
815968:	8b 07                	mov    (%edi),%eax
81596a:	6a 02                	push   $0x2
81596c:	ff 73 04             	push   0x4(%ebx)
81596f:	8b 30                	mov    (%eax),%esi
815971:	8b ce                	mov    %esi,%ecx
815973:	e8 ed 6c c1 ff       	call   0x42c665
815978:	8b cf                	mov    %edi,%ecx
81597a:	ff d6                	call   *%esi
81597c:	8b f0                	mov    %eax,%esi
81597e:	85 f6                	test   %esi,%esi
815980:	74 23                	je     0x8159a5
815982:	8b 43 04             	mov    0x4(%ebx),%eax
815985:	89 46 04             	mov    %eax,0x4(%esi)
815988:	8d 43 10             	lea    0x10(%ebx),%eax
81598b:	8b 4b 04             	mov    0x4(%ebx),%ecx
81598e:	41                   	inc    %ecx
81598f:	51                   	push   %ecx
815990:	50                   	push   %eax
815991:	51                   	push   %ecx
815992:	8d 46 10             	lea    0x10(%esi),%eax
815995:	50                   	push   %eax
815996:	e8 58 21 c0 ff       	call   0x417af3
81599b:	83 c4 10             	add    $0x10,%esp
81599e:	5f                   	pop    %edi
81599f:	8b c6                	mov    %esi,%eax
8159a1:	5e                   	pop    %esi
8159a2:	5b                   	pop    %ebx
8159a3:	5d                   	pop    %ebp
8159a4:	c3                   	ret
8159a5:	e8 88 50 c0 ff       	call   0x41aa32
8159aa:	cc                   	int3
8159ab:	cc                   	int3
8159ac:	cc                   	int3
8159ad:	cc                   	int3
8159ae:	cc                   	int3
8159af:	cc                   	int3
8159b0:	cc                   	int3
8159b1:	cc                   	int3
8159b2:	cc                   	int3
8159b3:	cc                   	int3
8159b4:	cc                   	int3
8159b5:	cc                   	int3
8159b6:	cc                   	int3
8159b7:	cc                   	int3
8159b8:	cc                   	int3
8159b9:	cc                   	int3
8159ba:	cc                   	int3
8159bb:	cc                   	int3
8159bc:	cc                   	int3
8159bd:	cc                   	int3
8159be:	cc                   	int3
8159bf:	cc                   	int3
8159c0:	cc                   	int3
8159c1:	cc                   	int3
8159c2:	cc                   	int3
8159c3:	cc                   	int3
8159c4:	cc                   	int3
8159c5:	cc                   	int3
8159c6:	cc                   	int3
8159c7:	55                   	push   %ebp
8159c8:	8b ec                	mov    %esp,%ebp
8159ca:	33 c0                	xor    %eax,%eax
8159cc:	50                   	push   %eax
8159cd:	50                   	push   %eax
8159ce:	ff 75 0c             	push   0xc(%ebp)
8159d1:	ff 75 08             	push   0x8(%ebp)
8159d4:	ff 75 14             	push   0x14(%ebp)
8159d7:	ff 75 10             	push   0x10(%ebp)
8159da:	50                   	push   %eax
8159db:	6a 03                	push   $0x3
8159dd:	ff 15 98 36 d8 00    	call   *0xd83698
8159e3:	5d                   	pop    %ebp
8159e4:	c3                   	ret
8159e5:	cc                   	int3
8159e6:	cc                   	int3
8159e7:	cc                   	int3
8159e8:	cc                   	int3
8159e9:	cc                   	int3
8159ea:	cc                   	int3
8159eb:	cc                   	int3
8159ec:	56                   	push   %esi
8159ed:	8b f1                	mov    %ecx,%esi
8159ef:	83 3e 00             	cmpl   $0x0,(%esi)
8159f2:	75 04                	jne    0x8159f8
8159f4:	33 c0                	xor    %eax,%eax
8159f6:	5e                   	pop    %esi
8159f7:	c3                   	ret
8159f8:	ff 36                	push   (%esi)
8159fa:	ff 15 74 3b d8 00    	call   *0xd83b74
815a00:	50                   	push   %eax
815a01:	ff 36                	push   (%esi)
815a03:	ff 15 70 3b d8 00    	call   *0xd83b70
815a09:	5e                   	pop    %esi
815a0a:	c3                   	ret
815a0b:	cc                   	int3
815a0c:	cc                   	int3
815a0d:	cc                   	int3
815a0e:	cc                   	int3
815a0f:	cc                   	int3
815a10:	cc                   	int3
815a11:	cc                   	int3
815a12:	e9 d0 03 00 00       	jmp    0x815de7
815a17:	e9 69 04 00 00       	jmp    0x815e85
815a1c:	53                   	push   %ebx
815a1d:	57                   	push   %edi
815a1e:	8b f9                	mov    %ecx,%edi
815a20:	33 c0                	xor    %eax,%eax
815a22:	8b 0f                	mov    (%edi),%ecx
815a24:	83 e9 10             	sub    $0x10,%ecx
815a27:	8b 19                	mov    (%ecx),%ebx
815a29:	39 41 04             	cmp    %eax,0x4(%ecx)
815a2c:	74 2b                	je     0x815a59
815a2e:	39 41 0c             	cmp    %eax,0xc(%ecx)
815a31:	7d 0a                	jge    0x815a3d
815a33:	50                   	push   %eax
815a34:	8b cf                	mov    %edi,%ecx
815a36:	e8 ed fd c1 ff       	call   0x435828
815a3b:	eb 1c                	jmp    0x815a59
815a3d:	56                   	push   %esi
815a3e:	e8 d1 f1 be ff       	call   0x404c14
815a43:	8b 03                	mov    (%ebx),%eax
815a45:	8b 70 0c             	mov    0xc(%eax),%esi
815a48:	8b ce                	mov    %esi,%ecx
815a4a:	e8 16 6c c1 ff       	call   0x42c665
815a4f:	8b cb                	mov    %ebx,%ecx
815a51:	ff d6                	call   *%esi
815a53:	83 c0 10             	add    $0x10,%eax
815a56:	89 07                	mov    %eax,(%edi)
815a58:	5e                   	pop    %esi
815a59:	5f                   	pop    %edi
815a5a:	5b                   	pop    %ebx
815a5b:	c3                   	ret
815a5c:	cc                   	int3
815a5d:	cc                   	int3
815a5e:	cc                   	int3
815a5f:	cc                   	int3
815a60:	cc                   	int3
815a61:	cc                   	int3
815a62:	cc                   	int3
815a63:	cc                   	int3
815a64:	cc                   	int3
815a65:	cc                   	int3
815a66:	cc                   	int3
815a67:	cc                   	int3
815a68:	cc                   	int3
815a69:	cc                   	int3
815a6a:	cc                   	int3
815a6b:	cc                   	int3
815a6c:	55                   	push   %ebp
815a6d:	8b ec                	mov    %esp,%ebp
815a6f:	83 ec 10             	sub    $0x10,%esp
815a72:	8b c1                	mov    %ecx,%eax
815a74:	89 45 f0             	mov    %eax,-0x10(%ebp)
815a77:	53                   	push   %ebx
815a78:	56                   	push   %esi
815a79:	8b 00                	mov    (%eax),%eax
815a7b:	57                   	push   %edi
815a7c:	89 45 f8             	mov    %eax,-0x8(%ebp)
815a7f:	8d 48 f0             	lea    -0x10(%eax),%ecx
815a82:	8b 39                	mov    (%ecx),%edi
815a84:	8b 41 04             	mov    0x4(%ecx),%eax
815a87:	89 45 fc             	mov    %eax,-0x4(%ebp)
815a8a:	8b 07                	mov    (%edi),%eax
815a8c:	8b 70 10             	mov    0x10(%eax),%esi
815a8f:	8b ce                	mov    %esi,%ecx
815a91:	e8 cf 6b c1 ff       	call   0x42c665
815a96:	8b cf                	mov    %edi,%ecx
815a98:	ff d6                	call   *%esi
815a9a:	8b 5d 08             	mov    0x8(%ebp),%ebx
815a9d:	8b f8                	mov    %eax,%edi
815a9f:	6a 01                	push   $0x1
815aa1:	53                   	push   %ebx
815aa2:	8b 0f                	mov    (%edi),%ecx
815aa4:	8b 31                	mov    (%ecx),%esi
815aa6:	8b ce                	mov    %esi,%ecx
815aa8:	e8 b8 6b c1 ff       	call   0x42c665
815aad:	8b cf                	mov    %edi,%ecx
815aaf:	ff d6                	call   *%esi
815ab1:	8b c8                	mov    %eax,%ecx
815ab3:	89 4d f4             	mov    %ecx,-0xc(%ebp)
815ab6:	85 c9                	test   %ecx,%ecx
815ab8:	74 3a                	je     0x815af4
815aba:	8b 7d fc             	mov    -0x4(%ebp),%edi
815abd:	3b fb                	cmp    %ebx,%edi
815abf:	7d 02                	jge    0x815ac3
815ac1:	8b df                	mov    %edi,%ebx
815ac3:	8d 43 01             	lea    0x1(%ebx),%eax
815ac6:	8b 5d f8             	mov    -0x8(%ebp),%ebx
815ac9:	50                   	push   %eax
815aca:	53                   	push   %ebx
815acb:	8d 71 10             	lea    0x10(%ecx),%esi
815ace:	50                   	push   %eax
815acf:	56                   	push   %esi
815ad0:	e8 12 03 00 00       	call   0x815de7
815ad5:	8b 45 f4             	mov    -0xc(%ebp),%eax
815ad8:	8d 4b f0             	lea    -0x10(%ebx),%ecx
815adb:	83 c4 10             	add    $0x10,%esp
815ade:	89 78 04             	mov    %edi,0x4(%eax)
815ae1:	e8 2e f1 be ff       	call   0x404c14