403884:	e8 39 09 04 00       	call   0x4441c2
403889:	e8 f7 9e 01 00       	call   0x41d785
40388e:	cc                   	int3
40388f:	c3                   	ret
403890:	c3                   	ret
403891:	c3                   	ret
403892:	c3                   	ret
403893:	c3                   	ret
403894:	c3                   	ret
403895:	c3                   	ret
403896:	c3                   	ret
403897:	6a 08                	push   $0x8
403899:	b8 2a a1 48 00       	mov    $0x48a12a,%eax
40389e:	e8 a7 c1 03 00       	call   0x43fa4a
4038a3:	8b 7d 0c             	mov    0xc(%ebp),%edi
4038a6:	85 ff                	test   %edi,%edi
4038a8:	74 49                	je     0x4038f3
4038aa:	8d 4f 1c             	lea    0x1c(%edi),%ecx
4038ad:	e8 55 d5 01 00       	call   0x420e07
4038b2:	84 c0                	test   %al,%al
4038b4:	74 3d                	je     0x4038f3
4038b6:	8b 45 08             	mov    0x8(%ebp),%eax
4038b9:	33 c9                	xor    %ecx,%ecx
4038bb:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4038be:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4038c1:	8b 70 04             	mov    0x4(%eax),%esi
4038c4:	85 f6                	test   %esi,%esi
4038c6:	74 07                	je     0x4038cf
4038c8:	f0 ff 46 04          	lock incl 0x4(%esi)
4038cc:	8b 70 04             	mov    0x4(%eax),%esi
4038cf:	89 7d ec             	mov    %edi,-0x14(%ebp)
4038d2:	89 75 f0             	mov    %esi,-0x10(%ebp)
4038d5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4038d8:	8d 45 ec             	lea    -0x14(%ebp),%eax
4038db:	50                   	push   %eax
4038dc:	8d 4f 1c             	lea    0x1c(%edi),%ecx
4038df:	e8 70 df ff ff       	call   0x401854
4038e4:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4038e8:	85 f6                	test   %esi,%esi
4038ea:	74 07                	je     0x4038f3
4038ec:	8b ce                	mov    %esi,%ecx
4038ee:	e8 2f 44 01 00       	call   0x417d22
4038f3:	e8 1b c1 03 00       	call   0x43fa13
4038f8:	c3                   	ret
4038f9:	c3                   	ret
4038fa:	c3                   	ret
4038fb:	c3                   	ret
4038fc:	c3                   	ret
4038fd:	c3                   	ret
4038fe:	c3                   	ret
4038ff:	c3                   	ret
403900:	c3                   	ret
403901:	55                   	push   %ebp
403902:	8b ec                	mov    %esp,%ebp
403904:	51                   	push   %ecx
403905:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
403909:	ff 75 fc             	push   -0x4(%ebp)
40390c:	ff 75 0c             	push   0xc(%ebp)
40390f:	ff 75 08             	push   0x8(%ebp)
403912:	e8 80 ff ff ff       	call   0x403897
403917:	83 c4 0c             	add    $0xc,%esp
40391a:	c9                   	leave
40391b:	c3                   	ret
40391c:	55                   	push   %ebp
40391d:	8b ec                	mov    %esp,%ebp
40391f:	8b 45 0c             	mov    0xc(%ebp),%eax
403922:	2b 45 08             	sub    0x8(%ebp),%eax
403925:	50                   	push   %eax
403926:	ff 75 10             	push   0x10(%ebp)
403929:	ff 75 08             	push   0x8(%ebp)
40392c:	e8 a1 dc 03 00       	call   0x4415d2
403931:	83 c4 0c             	add    $0xc,%esp
403934:	f7 d8                	neg    %eax
403936:	1a c0                	sbb    %al,%al
403938:	fe c0                	inc    %al
40393a:	5d                   	pop    %ebp
40393b:	c3                   	ret
40393c:	55                   	push   %ebp
40393d:	8b ec                	mov    %esp,%ebp
40393f:	56                   	push   %esi
403940:	8b 75 08             	mov    0x8(%ebp),%esi
403943:	57                   	push   %edi
403944:	3b 75 0c             	cmp    0xc(%ebp),%esi
403947:	74 20                	je     0x403969
403949:	8b 7d 10             	mov    0x10(%ebp),%edi
40394c:	2b fe                	sub    %esi,%edi
40394e:	0f b6 04 37          	movzbl (%edi,%esi,1),%eax
403952:	8d 4d 14             	lea    0x14(%ebp),%ecx
403955:	50                   	push   %eax
403956:	0f b6 06             	movzbl (%esi),%eax
403959:	50                   	push   %eax
40395a:	e8 21 c8 00 00       	call   0x410180
40395f:	84 c0                	test   %al,%al
403961:	74 0c                	je     0x40396f
403963:	46                   	inc    %esi
403964:	3b 75 0c             	cmp    0xc(%ebp),%esi
403967:	75 e5                	jne    0x40394e
403969:	b0 01                	mov    $0x1,%al
40396b:	5f                   	pop    %edi
40396c:	5e                   	pop    %esi
40396d:	5d                   	pop    %ebp
40396e:	c3                   	ret
40396f:	32 c0                	xor    %al,%al
403971:	eb f8                	jmp    0x40396b
403973:	55                   	push   %ebp
403974:	8b ec                	mov    %esp,%ebp
403976:	8b 45 0c             	mov    0xc(%ebp),%eax
403979:	2b 45 08             	sub    0x8(%ebp),%eax
40397c:	50                   	push   %eax
40397d:	ff 75 10             	push   0x10(%ebp)
403980:	ff 75 08             	push   0x8(%ebp)
403983:	e8 4a dc 03 00       	call   0x4415d2
403988:	83 c4 0c             	add    $0xc,%esp
40398b:	f7 d8                	neg    %eax
40398d:	1a c0                	sbb    %al,%al
40398f:	fe c0                	inc    %al
403991:	5d                   	pop    %ebp
403992:	c3                   	ret
403993:	55                   	push   %ebp
403994:	8b ec                	mov    %esp,%ebp
403996:	56                   	push   %esi
403997:	8b 75 08             	mov    0x8(%ebp),%esi
40399a:	57                   	push   %edi
40399b:	3b 75 0c             	cmp    0xc(%ebp),%esi
40399e:	74 22                	je     0x4039c2
4039a0:	8b 7d 10             	mov    0x10(%ebp),%edi
4039a3:	2b fe                	sub    %esi,%edi
4039a5:	0f b7 04 37          	movzwl (%edi,%esi,1),%eax
4039a9:	8d 4d 14             	lea    0x14(%ebp),%ecx
4039ac:	50                   	push   %eax
4039ad:	0f b7 06             	movzwl (%esi),%eax
4039b0:	50                   	push   %eax
4039b1:	e8 f8 c7 00 00       	call   0x4101ae
4039b6:	84 c0                	test   %al,%al
4039b8:	74 0e                	je     0x4039c8
4039ba:	83 c6 02             	add    $0x2,%esi
4039bd:	3b 75 0c             	cmp    0xc(%ebp),%esi
4039c0:	75 e3                	jne    0x4039a5
4039c2:	b0 01                	mov    $0x1,%al
4039c4:	5f                   	pop    %edi
4039c5:	5e                   	pop    %esi
4039c6:	5d                   	pop    %ebp
4039c7:	c3                   	ret
4039c8:	32 c0                	xor    %al,%al
4039ca:	eb f8                	jmp    0x4039c4
4039cc:	55                   	push   %ebp
4039cd:	8b ec                	mov    %esp,%ebp
4039cf:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4039d2:	8b 45 14             	mov    0x14(%ebp),%eax
4039d5:	2b 4d 08             	sub    0x8(%ebp),%ecx
4039d8:	2b 45 10             	sub    0x10(%ebp),%eax
4039db:	3b c8                	cmp    %eax,%ecx
4039dd:	74 04                	je     0x4039e3
4039df:	32 c0                	xor    %al,%al
4039e1:	5d                   	pop    %ebp
4039e2:	c3                   	ret
4039e3:	ff 75 18             	push   0x18(%ebp)
4039e6:	ff 75 10             	push   0x10(%ebp)
4039e9:	ff 75 0c             	push   0xc(%ebp)
4039ec:	ff 75 08             	push   0x8(%ebp)
4039ef:	e8 05 00 00 00       	call   0x4039f9
4039f4:	83 c4 10             	add    $0x10,%esp
4039f7:	5d                   	pop    %ebp
4039f8:	c3                   	ret
4039f9:	55                   	push   %ebp
4039fa:	8b ec                	mov    %esp,%ebp
4039fc:	51                   	push   %ecx
4039fd:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
403a01:	ff 75 fc             	push   -0x4(%ebp)
403a04:	ff 75 14             	push   0x14(%ebp)
403a07:	ff 75 10             	push   0x10(%ebp)
403a0a:	ff 75 0c             	push   0xc(%ebp)
403a0d:	ff 75 08             	push   0x8(%ebp)
403a10:	e8 07 ff ff ff       	call   0x40391c
403a15:	83 c4 14             	add    $0x14,%esp
403a18:	c9                   	leave
403a19:	c3                   	ret
403a1a:	55                   	push   %ebp
403a1b:	8b ec                	mov    %esp,%ebp
403a1d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403a20:	8b 45 14             	mov    0x14(%ebp),%eax
403a23:	2b 4d 08             	sub    0x8(%ebp),%ecx
403a26:	2b 45 10             	sub    0x10(%ebp),%eax
403a29:	3b c8                	cmp    %eax,%ecx
403a2b:	74 04                	je     0x403a31
403a2d:	32 c0                	xor    %al,%al
403a2f:	5d                   	pop    %ebp
403a30:	c3                   	ret
403a31:	ff 75 18             	push   0x18(%ebp)
403a34:	ff 75 10             	push   0x10(%ebp)
403a37:	ff 75 0c             	push   0xc(%ebp)
403a3a:	ff 75 08             	push   0x8(%ebp)
403a3d:	e8 05 00 00 00       	call   0x403a47
403a42:	83 c4 10             	add    $0x10,%esp
403a45:	5d                   	pop    %ebp
403a46:	c3                   	ret
403a47:	55                   	push   %ebp
403a48:	8b ec                	mov    %esp,%ebp
403a4a:	51                   	push   %ecx
403a4b:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
403a4f:	ff 75 fc             	push   -0x4(%ebp)
403a52:	ff 75 14             	push   0x14(%ebp)
403a55:	ff 75 10             	push   0x10(%ebp)
403a58:	ff 75 0c             	push   0xc(%ebp)
403a5b:	ff 75 08             	push   0x8(%ebp)
403a5e:	e8 d9 fe ff ff       	call   0x40393c
403a63:	83 c4 14             	add    $0x14,%esp
403a66:	c9                   	leave
403a67:	c3                   	ret
403a68:	55                   	push   %ebp
403a69:	8b ec                	mov    %esp,%ebp
403a6b:	51                   	push   %ecx
403a6c:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
403a70:	ff 75 fc             	push   -0x4(%ebp)
403a73:	ff 75 14             	push   0x14(%ebp)
403a76:	ff 75 10             	push   0x10(%ebp)
403a79:	ff 75 0c             	push   0xc(%ebp)
403a7c:	ff 75 08             	push   0x8(%ebp)
403a7f:	e8 ef fe ff ff       	call   0x403973
403a84:	83 c4 14             	add    $0x14,%esp
403a87:	c9                   	leave
403a88:	c3                   	ret
403a89:	55                   	push   %ebp
403a8a:	8b ec                	mov    %esp,%ebp
403a8c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403a8f:	8b 45 14             	mov    0x14(%ebp),%eax
403a92:	2b 4d 08             	sub    0x8(%ebp),%ecx
403a95:	2b 45 10             	sub    0x10(%ebp),%eax
403a98:	33 c8                	xor    %eax,%ecx
403a9a:	f7 c1 fe ff ff ff    	test   $0xfffffffe,%ecx
403aa0:	74 04                	je     0x403aa6
403aa2:	32 c0                	xor    %al,%al
403aa4:	5d                   	pop    %ebp
403aa5:	c3                   	ret
403aa6:	ff 75 18             	push   0x18(%ebp)
403aa9:	ff 75 10             	push   0x10(%ebp)
403aac:	ff 75 0c             	push   0xc(%ebp)
403aaf:	ff 75 08             	push   0x8(%ebp)
403ab2:	e8 05 00 00 00       	call   0x403abc
403ab7:	83 c4 10             	add    $0x10,%esp
403aba:	5d                   	pop    %ebp
403abb:	c3                   	ret
403abc:	55                   	push   %ebp
403abd:	8b ec                	mov    %esp,%ebp
403abf:	51                   	push   %ecx
403ac0:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
403ac4:	ff 75 fc             	push   -0x4(%ebp)
403ac7:	ff 75 14             	push   0x14(%ebp)
403aca:	ff 75 10             	push   0x10(%ebp)
403acd:	ff 75 0c             	push   0xc(%ebp)
403ad0:	ff 75 08             	push   0x8(%ebp)
403ad3:	e8 bb fe ff ff       	call   0x403993
403ad8:	83 c4 14             	add    $0x14,%esp
403adb:	c9                   	leave
403adc:	c3                   	ret
403add:	55                   	push   %ebp
403ade:	8b ec                	mov    %esp,%ebp
403ae0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403ae3:	8b 55 08             	mov    0x8(%ebp),%edx
403ae6:	56                   	push   %esi
403ae7:	8b 75 18             	mov    0x18(%ebp),%esi
403aea:	3b 55 10             	cmp    0x10(%ebp),%edx
403aed:	75 05                	jne    0x403af4
403aef:	3b 4d 14             	cmp    0x14(%ebp),%ecx
403af2:	74 2f                	je     0x403b23
403af4:	80 3e 00             	cmpb   $0x0,(%esi)
403af7:	8b 02                	mov    (%edx),%eax
403af9:	74 05                	je     0x403b00
403afb:	0f ab c8             	bts    %ecx,%eax
403afe:	eb 03                	jmp    0x403b03
403b00:	0f b3 c8             	btr    %ecx,%eax
403b03:	89 02                	mov    %eax,(%edx)
403b05:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403b08:	8b 55 08             	mov    0x8(%ebp),%edx
403b0b:	83 f9 1f             	cmp    $0x1f,%ecx
403b0e:	73 06                	jae    0x403b16
403b10:	41                   	inc    %ecx
403b11:	89 4d 0c             	mov    %ecx,0xc(%ebp)
403b14:	eb d4                	jmp    0x403aea
403b16:	33 c9                	xor    %ecx,%ecx
403b18:	83 c2 04             	add    $0x4,%edx
403b1b:	89 4d 0c             	mov    %ecx,0xc(%ebp)
403b1e:	89 55 08             	mov    %edx,0x8(%ebp)
403b21:	eb c7                	jmp    0x403aea
403b23:	5e                   	pop    %esi
403b24:	5d                   	pop    %ebp
403b25:	c3                   	ret
403b26:	55                   	push   %ebp
403b27:	8b ec                	mov    %esp,%ebp
403b29:	51                   	push   %ecx
403b2a:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
403b2e:	ff 75 fc             	push   -0x4(%ebp)
403b31:	ff 75 18             	push   0x18(%ebp)
403b34:	ff 75 14             	push   0x14(%ebp)
403b37:	ff 75 10             	push   0x10(%ebp)
403b3a:	ff 75 0c             	push   0xc(%ebp)
403b3d:	ff 75 08             	push   0x8(%ebp)
403b40:	e8 98 ff ff ff       	call   0x403add
403b45:	83 c4 18             	add    $0x18,%esp
403b48:	c9                   	leave
403b49:	c3                   	ret
403b4a:	55                   	push   %ebp
403b4b:	8b ec                	mov    %esp,%ebp
403b4d:	8b 4d 08             	mov    0x8(%ebp),%ecx
403b50:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
403b53:	74 12                	je     0x403b67
403b55:	8b 45 10             	mov    0x10(%ebp),%eax
403b58:	8b 10                	mov    (%eax),%edx
403b5a:	0f be 01             	movsbl (%ecx),%eax
403b5d:	3b c2                	cmp    %edx,%eax
403b5f:	74 06                	je     0x403b67
403b61:	41                   	inc    %ecx
403b62:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
403b65:	75 f3                	jne    0x403b5a
403b67:	8b c1                	mov    %ecx,%eax
403b69:	5d                   	pop    %ebp
403b6a:	c3                   	ret
403b6b:	55                   	push   %ebp
403b6c:	8b ec                	mov    %esp,%ebp
403b6e:	8b 4d 08             	mov    0x8(%ebp),%ecx
403b71:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
403b74:	74 13                	je     0x403b89
403b76:	8b 45 10             	mov    0x10(%ebp),%eax
403b79:	0f b7 00             	movzwl (%eax),%eax
403b7c:	66 39 01             	cmp    %ax,(%ecx)
403b7f:	74 08                	je     0x403b89
403b81:	83 c1 02             	add    $0x2,%ecx
403b84:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
403b87:	75 f3                	jne    0x403b7c
403b89:	8b c1                	mov    %ecx,%eax
403b8b:	5d                   	pop    %ebp
403b8c:	c3                   	ret
403b8d:	55                   	push   %ebp
403b8e:	8b ec                	mov    %esp,%ebp
403b90:	8b 4d 08             	mov    0x8(%ebp),%ecx
403b93:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
403b96:	74 14                	je     0x403bac
403b98:	8b 45 10             	mov    0x10(%ebp),%eax
403b9b:	8b 10                	mov    (%eax),%edx
403b9d:	0f b7 01             	movzwl (%ecx),%eax
403ba0:	3b c2                	cmp    %edx,%eax
403ba2:	74 08                	je     0x403bac
403ba4:	83 c1 02             	add    $0x2,%ecx
403ba7:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
403baa:	75 f1                	jne    0x403b9d
403bac:	8b c1                	mov    %ecx,%eax
403bae:	5d                   	pop    %ebp
403baf:	c3                   	ret
403bb0:	55                   	push   %ebp
403bb1:	8b ec                	mov    %esp,%ebp