40391d:	e8 5e 03 00 00       	call   0x403c80
403922:	89 f0                	mov    %esi,%eax
403924:	8b 4e fc             	mov    -0x4(%esi),%ecx
403927:	8b 13                	mov    (%ebx),%edx
403929:	01 fa                	add    %edi,%edx
40392b:	e8 14 f0 ff ff       	call   0x402944
403930:	5f                   	pop    %edi
403931:	5e                   	pop    %esi
403932:	5b                   	pop    %ebx
403933:	c3                   	ret
403934:	e8 47 03 00 00       	call   0x403c80
403939:	8b 03                	mov    (%ebx),%eax
40393b:	89 f9                	mov    %edi,%ecx
40393d:	eb e8                	jmp    0x403927
40393f:	c3                   	ret
403940:	85 d2                	test   %edx,%edx
403942:	74 61                	je     0x4039a5
403944:	85 c9                	test   %ecx,%ecx
403946:	0f 84 9c fd ff ff    	je     0x4036e8
40394c:	3b 10                	cmp    (%eax),%edx
40394e:	74 5c                	je     0x4039ac
403950:	3b 08                	cmp    (%eax),%ecx
403952:	74 0e                	je     0x403962
403954:	50                   	push   %eax
403955:	51                   	push   %ecx
403956:	e8 8d fd ff ff       	call   0x4036e8
40395b:	5a                   	pop    %edx
40395c:	58                   	pop    %eax
40395d:	e9 9a ff ff ff       	jmp    0x4038fc
403962:	53                   	push   %ebx
403963:	56                   	push   %esi
403964:	57                   	push   %edi
403965:	89 d3                	mov    %edx,%ebx
403967:	89 ce                	mov    %ecx,%esi
403969:	50                   	push   %eax
40396a:	8b 43 fc             	mov    -0x4(%ebx),%eax
40396d:	03 46 fc             	add    -0x4(%esi),%eax
403970:	e8 e3 fd ff ff       	call   0x403758
403975:	89 c7                	mov    %eax,%edi
403977:	89 c2                	mov    %eax,%edx
403979:	89 d8                	mov    %ebx,%eax
40397b:	8b 4b fc             	mov    -0x4(%ebx),%ecx
40397e:	e8 c1 ef ff ff       	call   0x402944
403983:	89 fa                	mov    %edi,%edx
403985:	89 f0                	mov    %esi,%eax
403987:	8b 4e fc             	mov    -0x4(%esi),%ecx
40398a:	03 53 fc             	add    -0x4(%ebx),%edx
40398d:	e8 b2 ef ff ff       	call   0x402944
403992:	58                   	pop    %eax
403993:	89 fa                	mov    %edi,%edx
403995:	85 ff                	test   %edi,%edi
403997:	74 03                	je     0x40399c
403999:	ff 4f f8             	decl   -0x8(%edi)
40399c:	e8 47 fd ff ff       	call   0x4036e8
4039a1:	5f                   	pop    %edi
4039a2:	5e                   	pop    %esi
4039a3:	5b                   	pop    %ebx
4039a4:	c3                   	ret
4039a5:	89 ca                	mov    %ecx,%edx
4039a7:	e9 3c fd ff ff       	jmp    0x4036e8
4039ac:	89 ca                	mov    %ecx,%edx
4039ae:	e9 49 ff ff ff       	jmp    0x4038fc
4039b3:	c3                   	ret
4039b4:	53                   	push   %ebx
4039b5:	56                   	push   %esi
4039b6:	57                   	push   %edi
4039b7:	52                   	push   %edx
4039b8:	50                   	push   %eax
4039b9:	89 d3                	mov    %edx,%ebx
4039bb:	31 ff                	xor    %edi,%edi
4039bd:	8b 4c 94 14          	mov    0x14(%esp,%edx,4),%ecx
4039c1:	85 c9                	test   %ecx,%ecx
4039c3:	74 0c                	je     0x4039d1
4039c5:	39 08                	cmp    %ecx,(%eax)
4039c7:	75 08                	jne    0x4039d1
4039c9:	89 cf                	mov    %ecx,%edi
4039cb:	8b 41 fc             	mov    -0x4(%ecx),%eax
4039ce:	4a                   	dec    %edx
4039cf:	eb 02                	jmp    0x4039d3
4039d1:	31 c0                	xor    %eax,%eax
4039d3:	8b 4c 94 14          	mov    0x14(%esp,%edx,4),%ecx
4039d7:	85 c9                	test   %ecx,%ecx
4039d9:	74 09                	je     0x4039e4
4039db:	03 41 fc             	add    -0x4(%ecx),%eax
4039de:	39 cf                	cmp    %ecx,%edi
4039e0:	75 02                	jne    0x4039e4
4039e2:	31 ff                	xor    %edi,%edi
4039e4:	4a                   	dec    %edx
4039e5:	75 ec                	jne    0x4039d3
4039e7:	85 ff                	test   %edi,%edi
4039e9:	74 17                	je     0x403a02
4039eb:	89 c2                	mov    %eax,%edx
4039ed:	8b 04 24             	mov    (%esp),%eax
4039f0:	8b 77 fc             	mov    -0x4(%edi),%esi
4039f3:	e8 88 02 00 00       	call   0x403c80
4039f8:	8b 3c 24             	mov    (%esp),%edi
4039fb:	ff 37                	push   (%edi)
4039fd:	03 37                	add    (%edi),%esi
4039ff:	4b                   	dec    %ebx
403a00:	eb 08                	jmp    0x403a0a
403a02:	e8 51 fd ff ff       	call   0x403758
403a07:	50                   	push   %eax
403a08:	89 c6                	mov    %eax,%esi
403a0a:	8b 44 9c 18          	mov    0x18(%esp,%ebx,4),%eax
403a0e:	89 f2                	mov    %esi,%edx
403a10:	85 c0                	test   %eax,%eax
403a12:	74 0a                	je     0x403a1e
403a14:	8b 48 fc             	mov    -0x4(%eax),%ecx
403a17:	01 ce                	add    %ecx,%esi
403a19:	e8 26 ef ff ff       	call   0x402944
403a1e:	4b                   	dec    %ebx
403a1f:	75 e9                	jne    0x403a0a
403a21:	5a                   	pop    %edx
403a22:	58                   	pop    %eax
403a23:	85 ff                	test   %edi,%edi
403a25:	75 0c                	jne    0x403a33
403a27:	85 d2                	test   %edx,%edx
403a29:	74 03                	je     0x403a2e
403a2b:	ff 4a f8             	decl   -0x8(%edx)
403a2e:	e8 b5 fc ff ff       	call   0x4036e8
403a33:	5a                   	pop    %edx
403a34:	5f                   	pop    %edi
403a35:	5e                   	pop    %esi
403a36:	5b                   	pop    %ebx
403a37:	58                   	pop    %eax
403a38:	8d 24 94             	lea    (%esp,%edx,4),%esp
403a3b:	ff e0                	jmp    *%eax
403a3d:	c3                   	ret
403a3e:	8b c0                	mov    %eax,%eax
403a40:	53                   	push   %ebx
403a41:	56                   	push   %esi
403a42:	57                   	push   %edi
403a43:	89 c6                	mov    %eax,%esi
403a45:	89 d7                	mov    %edx,%edi
403a47:	39 d0                	cmp    %edx,%eax
403a49:	0f 84 8f 00 00 00    	je     0x403ade
403a4f:	85 f6                	test   %esi,%esi
403a51:	74 68                	je     0x403abb
403a53:	85 ff                	test   %edi,%edi
403a55:	74 6b                	je     0x403ac2
403a57:	8b 46 fc             	mov    -0x4(%esi),%eax
403a5a:	8b 57 fc             	mov    -0x4(%edi),%edx
403a5d:	29 d0                	sub    %edx,%eax
403a5f:	77 02                	ja     0x403a63
403a61:	01 c2                	add    %eax,%edx
403a63:	52                   	push   %edx
403a64:	c1 ea 02             	shr    $0x2,%edx
403a67:	74 26                	je     0x403a8f
403a69:	8b 0e                	mov    (%esi),%ecx
403a6b:	8b 1f                	mov    (%edi),%ebx
403a6d:	39 d9                	cmp    %ebx,%ecx
403a6f:	75 58                	jne    0x403ac9
403a71:	4a                   	dec    %edx
403a72:	74 15                	je     0x403a89
403a74:	8b 4e 04             	mov    0x4(%esi),%ecx
403a77:	8b 5f 04             	mov    0x4(%edi),%ebx
403a7a:	39 d9                	cmp    %ebx,%ecx
403a7c:	75 4b                	jne    0x403ac9
403a7e:	83 c6 08             	add    $0x8,%esi
403a81:	83 c7 08             	add    $0x8,%edi
403a84:	4a                   	dec    %edx
403a85:	75 e2                	jne    0x403a69
403a87:	eb 06                	jmp    0x403a8f
403a89:	83 c6 04             	add    $0x4,%esi
403a8c:	83 c7 04             	add    $0x4,%edi
403a8f:	5a                   	pop    %edx
403a90:	83 e2 03             	and    $0x3,%edx
403a93:	74 22                	je     0x403ab7
403a95:	8b 0e                	mov    (%esi),%ecx
403a97:	8b 1f                	mov    (%edi),%ebx
403a99:	38 d9                	cmp    %bl,%cl
403a9b:	75 41                	jne    0x403ade
403a9d:	4a                   	dec    %edx
403a9e:	74 17                	je     0x403ab7
403aa0:	38 fd                	cmp    %bh,%ch
403aa2:	75 3a                	jne    0x403ade
403aa4:	4a                   	dec    %edx
403aa5:	74 10                	je     0x403ab7
403aa7:	81 e3 00 00 ff 00    	and    $0xff0000,%ebx
403aad:	81 e1 00 00 ff 00    	and    $0xff0000,%ecx
403ab3:	39 d9                	cmp    %ebx,%ecx
403ab5:	75 27                	jne    0x403ade
403ab7:	01 c0                	add    %eax,%eax
403ab9:	eb 23                	jmp    0x403ade
403abb:	8b 57 fc             	mov    -0x4(%edi),%edx
403abe:	29 d0                	sub    %edx,%eax
403ac0:	eb 1c                	jmp    0x403ade
403ac2:	8b 46 fc             	mov    -0x4(%esi),%eax
403ac5:	29 d0                	sub    %edx,%eax
403ac7:	eb 15                	jmp    0x403ade
403ac9:	5a                   	pop    %edx
403aca:	38 d9                	cmp    %bl,%cl
403acc:	75 10                	jne    0x403ade
403ace:	38 fd                	cmp    %bh,%ch
403ad0:	75 0c                	jne    0x403ade
403ad2:	c1 e9 10             	shr    $0x10,%ecx
403ad5:	c1 eb 10             	shr    $0x10,%ebx
403ad8:	38 d9                	cmp    %bl,%cl
403ada:	75 02                	jne    0x403ade
403adc:	38 fd                	cmp    %bh,%ch
403ade:	5f                   	pop    %edi
403adf:	5e                   	pop    %esi
403ae0:	5b                   	pop    %ebx
403ae1:	c3                   	ret
403ae2:	8b c0                	mov    %eax,%eax
403ae4:	85 c0                	test   %eax,%eax
403ae6:	74 0a                	je     0x403af2
403ae8:	8b 50 f8             	mov    -0x8(%eax),%edx
403aeb:	42                   	inc    %edx
403aec:	7e 04                	jle    0x403af2
403aee:	f0 ff 40 f8          	lock incl -0x8(%eax)
403af2:	c3                   	ret
403af3:	90                   	nop
403af4:	85 c0                	test   %eax,%eax
403af6:	74 02                	je     0x403afa
403af8:	c3                   	ret
403af9:	00 b8 f9 3a 40 00    	add    %bh,0x403af9(%eax)
403aff:	c3                   	ret
403b00:	8b 10                	mov    (%eax),%edx
403b02:	85 d2                	test   %edx,%edx
403b04:	74 38                	je     0x403b3e
403b06:	8b 4a f8             	mov    -0x8(%edx),%ecx
403b09:	49                   	dec    %ecx
403b0a:	74 32                	je     0x403b3e
403b0c:	53                   	push   %ebx
403b0d:	89 c3                	mov    %eax,%ebx
403b0f:	8b 42 fc             	mov    -0x4(%edx),%eax
403b12:	e8 41 fc ff ff       	call   0x403758
403b17:	89 c2                	mov    %eax,%edx
403b19:	8b 03                	mov    (%ebx),%eax
403b1b:	89 13                	mov    %edx,(%ebx)
403b1d:	50                   	push   %eax
403b1e:	8b 48 fc             	mov    -0x4(%eax),%ecx
403b21:	e8 1e ee ff ff       	call   0x402944
403b26:	58                   	pop    %eax
403b27:	8b 48 f8             	mov    -0x8(%eax),%ecx
403b2a:	49                   	dec    %ecx
403b2b:	7c 0e                	jl     0x403b3b
403b2d:	f0 ff 48 f8          	lock decl -0x8(%eax)
403b31:	75 08                	jne    0x403b3b
403b33:	8d 40 f8             	lea    -0x8(%eax),%eax
403b36:	e8 25 ed ff ff       	call   0x402860
403b3b:	8b 13                	mov    (%ebx),%edx
403b3d:	5b                   	pop    %ebx
403b3e:	89 d0                	mov    %edx,%eax
403b40:	c3                   	ret
403b41:	8d 40 00             	lea    0x0(%eax),%eax
403b44:	e9 b7 ff ff ff       	jmp    0x403b00
403b49:	c3                   	ret
403b4a:	8b c0                	mov    %eax,%eax
403b4c:	e9 af ff ff ff       	jmp    0x403b00
403b51:	c3                   	ret
403b52:	8b c0                	mov    %eax,%eax
403b54:	53                   	push   %ebx
403b55:	85 c0                	test   %eax,%eax
403b57:	74 2d                	je     0x403b86
403b59:	8b 58 fc             	mov    -0x4(%eax),%ebx
403b5c:	85 db                	test   %ebx,%ebx
403b5e:	74 26                	je     0x403b86
403b60:	4a                   	dec    %edx
403b61:	7c 1b                	jl     0x403b7e
403b63:	39 da                	cmp    %ebx,%edx
403b65:	7d 1f                	jge    0x403b86
403b67:	29 d3                	sub    %edx,%ebx
403b69:	85 c9                	test   %ecx,%ecx
403b6b:	7c 19                	jl     0x403b86
403b6d:	39 d9                	cmp    %ebx,%ecx
403b6f:	7f 11                	jg     0x403b82
403b71:	01 c2                	add    %eax,%edx
403b73:	8b 44 24 08          	mov    0x8(%esp),%eax
403b77:	e8 08 fc ff ff       	call   0x403784
403b7c:	eb 11                	jmp    0x403b8f
403b7e:	31 d2                	xor    %edx,%edx
403b80:	eb e5                	jmp    0x403b67
403b82:	89 d9                	mov    %ebx,%ecx
403b84:	eb eb                	jmp    0x403b71
403b86:	8b 44 24 08          	mov    0x8(%esp),%eax
403b8a:	e8 05 fb ff ff       	call   0x403694
403b8f:	5b                   	pop    %ebx
403b90:	c2 04 00             	ret    $0x4
403b93:	c3                   	ret
403b94:	53                   	push   %ebx
403b95:	56                   	push   %esi
403b96:	57                   	push   %edi
403b97:	89 c3                	mov    %eax,%ebx
403b99:	89 d6                	mov    %edx,%esi
403b9b:	89 cf                	mov    %ecx,%edi
403b9d:	e8 a2 ff ff ff       	call   0x403b44
403ba2:	8b 13                	mov    (%ebx),%edx
403ba4:	85 d2                	test   %edx,%edx
403ba6:	74 30                	je     0x403bd8
403ba8:	8b 4a fc             	mov    -0x4(%edx),%ecx
403bab:	4e                   	dec    %esi
403bac:	7c 2a                	jl     0x403bd8
403bae:	39 ce                	cmp    %ecx,%esi
403bb0:	7d 26                	jge    0x403bd8
403bb2:	85 ff                	test   %edi,%edi
403bb4:	7e 22                	jle    0x403bd8
403bb6:	29 f1                	sub    %esi,%ecx
403bb8:	39 cf                	cmp    %ecx,%edi
403bba:	7e 02                	jle    0x403bbe
403bbc:	89 cf                	mov    %ecx,%edi
403bbe:	29 f9                	sub    %edi,%ecx
403bc0:	01 f2                	add    %esi,%edx
403bc2:	8d 04 17             	lea    (%edi,%edx,1),%eax
403bc5:	e8 7a ed ff ff       	call   0x402944
403bca:	8b 13                	mov    (%ebx),%edx
403bcc:	89 d8                	mov    %ebx,%eax
403bce:	8b 52 fc             	mov    -0x4(%edx),%edx
403bd1:	29 fa                	sub    %edi,%edx
403bd3:	e8 a8 00 00 00       	call   0x403c80
403bd8:	5f                   	pop    %edi
403bd9:	5e                   	pop    %esi
403bda:	5b                   	pop    %ebx
403bdb:	c3                   	ret
403bdc:	85 c0                	test   %eax,%eax
403bde:	74 56                	je     0x403c36
403be0:	53                   	push   %ebx
403be1:	56                   	push   %esi
403be2:	57                   	push   %edi
403be3:	55                   	push   %ebp
403be4:	89 c3                	mov    %eax,%ebx
403be6:	89 d6                	mov    %edx,%esi
403be8:	89 cf                	mov    %ecx,%edi
403bea:	8b 12                	mov    (%edx),%edx
403bec:	52                   	push   %edx
403bed:	85 d2                	test   %edx,%edx
403bef:	74 03                	je     0x403bf4
403bf1:	8b 52 fc             	mov    -0x4(%edx),%edx
403bf4:	4f                   	dec    %edi
403bf5:	7d 02                	jge    0x403bf9
403bf7:	31 ff                	xor    %edi,%edi
403bf9:	39 d7                	cmp    %edx,%edi
403bfb:	7e 02                	jle    0x403bff
403bfd:	89 d7                	mov    %edx,%edi
403bff:	8b 6b fc             	mov    -0x4(%ebx),%ebp
403c02:	89 f0                	mov    %esi,%eax
403c04:	01 ea                	add    %ebp,%edx
403c06:	e8 75 00 00 00       	call   0x403c80
403c0b:	58                   	pop    %eax
403c0c:	39 d8                	cmp    %ebx,%eax
403c0e:	75 02                	jne    0x403c12
403c10:	8b 1e                	mov    (%esi),%ebx
403c12:	8b 06                	mov    (%esi),%eax
403c14:	8d 14 2f             	lea    (%edi,%ebp,1),%edx
403c17:	8b 48 fc             	mov    -0x4(%eax),%ecx
403c1a:	29 d1                	sub    %edx,%ecx
403c1c:	01 c2                	add    %eax,%edx
403c1e:	01 f8                	add    %edi,%eax
403c20:	e8 1f ed ff ff       	call   0x402944