4038fa:	68 80 00 00 00       	push   $0x80
4038ff:	50                   	push   %eax
403900:	8b d9                	mov    %ecx,%ebx
403902:	e8 8e fe 00 00       	call   0x413795
403907:	83 c4 0c             	add    $0xc,%esp
40390a:	85 c0                	test   %eax,%eax
40390c:	74 69                	je     0x403977
40390e:	b9 78 93 43 00       	mov    $0x439378,%ecx
403913:	8d 44 24 08          	lea    0x8(%esp),%eax
403917:	8a 10                	mov    (%eax),%dl
403919:	3a 11                	cmp    (%ecx),%dl
40391b:	75 1a                	jne    0x403937
40391d:	84 d2                	test   %dl,%dl
40391f:	74 12                	je     0x403933
403921:	8a 50 01             	mov    0x1(%eax),%dl
403924:	3a 51 01             	cmp    0x1(%ecx),%dl
403927:	75 0e                	jne    0x403937
403929:	83 c0 02             	add    $0x2,%eax
40392c:	83 c1 02             	add    $0x2,%ecx
40392f:	84 d2                	test   %dl,%dl
403931:	75 e4                	jne    0x403917
403933:	33 c0                	xor    %eax,%eax
403935:	eb 05                	jmp    0x40393c
403937:	1b c0                	sbb    %eax,%eax
403939:	83 c8 01             	or     $0x1,%eax
40393c:	85 c0                	test   %eax,%eax
40393e:	75 37                	jne    0x403977
403940:	55                   	push   %ebp
403941:	56                   	push   %esi
403942:	8d 73 1c             	lea    0x1c(%ebx),%esi
403945:	bd e8 94 43 00       	mov    $0x4394e8,%ebp
40394a:	56                   	push   %esi
40394b:	55                   	push   %ebp
40394c:	57                   	push   %edi
40394d:	e8 34 fe ff ff       	call   0x403786
403952:	83 c4 0c             	add    $0xc,%esp
403955:	83 f8 01             	cmp    $0x1,%eax
403958:	74 05                	je     0x40395f
40395a:	83 0e ff             	orl    $0xffffffff,(%esi)
40395d:	eb 16                	jmp    0x403975
40395f:	8d 73 20             	lea    0x20(%ebx),%esi
403962:	56                   	push   %esi
403963:	55                   	push   %ebp
403964:	57                   	push   %edi
403965:	e8 1c fe ff ff       	call   0x403786
40396a:	83 c4 0c             	add    $0xc,%esp
40396d:	83 f8 01             	cmp    $0x1,%eax
403970:	74 03                	je     0x403975
403972:	83 26 00             	andl   $0x0,(%esi)
403975:	5e                   	pop    %esi
403976:	5d                   	pop    %ebp
403977:	8b 8c 24 88 00 00 00 	mov    0x88(%esp),%ecx
40397e:	5f                   	pop    %edi
40397f:	5b                   	pop    %ebx
403980:	33 cc                	xor    %esp,%ecx
403982:	e8 20 63 00 00       	call   0x409ca7
403987:	81 c4 84 00 00 00    	add    $0x84,%esp
40398d:	c2 04 00             	ret    $0x4
403990:	55                   	push   %ebp
403991:	8b ec                	mov    %esp,%ebp
403993:	8b 45 08             	mov    0x8(%ebp),%eax
403996:	56                   	push   %esi
403997:	57                   	push   %edi
403998:	8b f9                	mov    %ecx,%edi
40399a:	8d 77 20             	lea    0x20(%edi),%esi
40399d:	3b 47 1c             	cmp    0x1c(%edi),%eax
4039a0:	74 06                	je     0x4039a8
4039a2:	83 26 00             	andl   $0x0,(%esi)
4039a5:	89 47 1c             	mov    %eax,0x1c(%edi)
4039a8:	ff 06                	incl   (%esi)
4039aa:	8d 45 08             	lea    0x8(%ebp),%eax
4039ad:	50                   	push   %eax
4039ae:	68 ec 94 43 00       	push   $0x4394ec
4039b3:	e8 3e 00 00 00       	call   0x4039f6
4039b8:	85 c0                	test   %eax,%eax
4039ba:	75 34                	jne    0x4039f0
4039bc:	ff 75 08             	push   0x8(%ebp)
4039bf:	68 78 93 43 00       	push   $0x439378
4039c4:	e8 96 ff 00 00       	call   0x41395f
4039c9:	ff 77 1c             	push   0x1c(%edi)
4039cc:	bf e8 94 43 00       	mov    $0x4394e8,%edi
4039d1:	57                   	push   %edi
4039d2:	ff 75 08             	push   0x8(%ebp)
4039d5:	e8 8a fd ff ff       	call   0x403764
4039da:	ff 36                	push   (%esi)
4039dc:	57                   	push   %edi
4039dd:	ff 75 08             	push   0x8(%ebp)
4039e0:	e8 7f fd ff ff       	call   0x403764
4039e5:	ff 75 08             	push   0x8(%ebp)
4039e8:	e8 a6 fc 00 00       	call   0x413693
4039ed:	83 c4 24             	add    $0x24,%esp
4039f0:	5f                   	pop    %edi
4039f1:	5e                   	pop    %esi
4039f2:	5d                   	pop    %ebp
4039f3:	c2 04 00             	ret    $0x4
4039f6:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
4039fa:	75 05                	jne    0x403a01
4039fc:	6a 02                	push   $0x2
4039fe:	58                   	pop    %eax
4039ff:	eb 19                	jmp    0x403a1a
403a01:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
403a05:	72 02                	jb     0x403a09
403a07:	8b 09                	mov    (%ecx),%ecx
403a09:	ff 74 24 04          	push   0x4(%esp)
403a0d:	51                   	push   %ecx
403a0e:	ff 74 24 10          	push   0x10(%esp)
403a12:	e8 05 fb 00 00       	call   0x41351c
403a17:	83 c4 0c             	add    $0xc,%esp
403a1a:	c2 08 00             	ret    $0x8
403a1d:	8d 44 24 10          	lea    0x10(%esp),%eax
403a21:	50                   	push   %eax
403a22:	6a 00                	push   $0x0
403a24:	ff 74 24 14          	push   0x14(%esp)
403a28:	ff 74 24 14          	push   0x14(%esp)
403a2c:	ff 74 24 14          	push   0x14(%esp)
403a30:	e8 73 ed ff ff       	call   0x4027a8
403a35:	ff 70 04             	push   0x4(%eax)
403a38:	ff 30                	push   (%eax)
403a3a:	e8 0e e3 00 00       	call   0x411d4d
403a3f:	83 c9 ff             	or     $0xffffffff,%ecx
403a42:	83 c4 1c             	add    $0x1c,%esp
403a45:	85 c0                	test   %eax,%eax
403a47:	0f 48 c1             	cmovs  %ecx,%eax
403a4a:	c3                   	ret
403a4b:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
403a4f:	b8 f0 94 43 00       	mov    $0x4394f0,%eax
403a54:	0f 45 41 04          	cmovne 0x4(%ecx),%eax
403a58:	c3                   	ret
403a59:	a1 ac fe 43 00       	mov    0x43feac,%eax
403a5e:	56                   	push   %esi
403a5f:	8b f1                	mov    %ecx,%esi
403a61:	85 c0                	test   %eax,%eax
403a63:	74 04                	je     0x403a69
403a65:	56                   	push   %esi
403a66:	ff d0                	call   *%eax
403a68:	59                   	pop    %ecx
403a69:	8b 06                	mov    (%esi),%eax
403a6b:	8b ce                	mov    %esi,%ecx
403a6d:	ff 50 08             	call   *0x8(%eax)
403a70:	33 c0                	xor    %eax,%eax
403a72:	50                   	push   %eax
403a73:	50                   	push   %eax
403a74:	50                   	push   %eax
403a75:	50                   	push   %eax
403a76:	50                   	push   %eax
403a77:	e8 9f 99 00 00       	call   0x40d41b
403a7c:	5e                   	pop    %esi
403a7d:	c2 00 00             	ret    $0x0
403a80:	f6 44 24 04 01       	testb  $0x1,0x4(%esp)
403a85:	56                   	push   %esi
403a86:	8b f1                	mov    %ecx,%esi
403a88:	c7 06 54 97 43 00    	movl   $0x439754,(%esi)
403a8e:	74 0a                	je     0x403a9a
403a90:	6a 08                	push   $0x8
403a92:	56                   	push   %esi
403a93:	e8 58 2f 00 00       	call   0x4069f0
403a98:	59                   	pop    %ecx
403a99:	59                   	pop    %ecx
403a9a:	8b c6                	mov    %esi,%eax
403a9c:	5e                   	pop    %esi
403a9d:	c2 04 00             	ret    $0x4
403aa0:	80 39 00             	cmpb   $0x0,(%ecx)
403aa3:	75 04                	jne    0x403aa9
403aa5:	33 c9                	xor    %ecx,%ecx
403aa7:	eb 0c                	jmp    0x403ab5
403aa9:	8d 51 01             	lea    0x1(%ecx),%edx
403aac:	8a 01                	mov    (%ecx),%al
403aae:	41                   	inc    %ecx
403aaf:	84 c0                	test   %al,%al
403ab1:	75 f9                	jne    0x403aac
403ab3:	2b ca                	sub    %edx,%ecx
403ab5:	8b c1                	mov    %ecx,%eax
403ab7:	c3                   	ret
403ab8:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
403abd:	74 10                	je     0x403acf
403abf:	ff 74 24 04          	push   0x4(%esp)
403ac3:	52                   	push   %edx
403ac4:	51                   	push   %ecx
403ac5:	e8 76 73 00 00       	call   0x40ae40
403aca:	83 c4 0c             	add    $0xc,%esp
403acd:	8b c8                	mov    %eax,%ecx
403acf:	8b c1                	mov    %ecx,%eax
403ad1:	c3                   	ret
403ad2:	8b 44 24 04          	mov    0x4(%esp),%eax
403ad6:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
403ada:	72 02                	jb     0x403ade
403adc:	8b 00                	mov    (%eax),%eax
403ade:	89 41 04             	mov    %eax,0x4(%ecx)
403ae1:	8b c1                	mov    %ecx,%eax
403ae3:	c7 01 f0 17 43 00    	movl   $0x4317f0,(%ecx)
403ae9:	c2 04 00             	ret    $0x4
403aec:	8b 44 24 04          	mov    0x4(%esp),%eax
403af0:	89 41 04             	mov    %eax,0x4(%ecx)
403af3:	8b c1                	mov    %ecx,%eax
403af5:	c7 01 f0 17 43 00    	movl   $0x4317f0,(%ecx)
403afb:	c2 04 00             	ret    $0x4
403afe:	55                   	push   %ebp
403aff:	8b ec                	mov    %esp,%ebp
403b01:	51                   	push   %ecx
403b02:	51                   	push   %ecx
403b03:	53                   	push   %ebx
403b04:	56                   	push   %esi
403b05:	33 db                	xor    %ebx,%ebx
403b07:	8b f1                	mov    %ecx,%esi
403b09:	53                   	push   %ebx
403b0a:	e8 c1 95 02 00       	call   0x42d0d0
403b0f:	33 c0                	xor    %eax,%eax
403b11:	89 5e 04             	mov    %ebx,0x4(%esi)
403b14:	88 5e 08             	mov    %bl,0x8(%esi)
403b17:	89 5e 0c             	mov    %ebx,0xc(%esi)
403b1a:	88 5e 10             	mov    %bl,0x10(%esi)
403b1d:	89 5e 14             	mov    %ebx,0x14(%esi)
403b20:	66 89 46 18          	mov    %ax,0x18(%esi)
403b24:	89 5e 1c             	mov    %ebx,0x1c(%esi)
403b27:	66 89 46 20          	mov    %ax,0x20(%esi)
403b2b:	89 5e 24             	mov    %ebx,0x24(%esi)
403b2e:	88 5e 28             	mov    %bl,0x28(%esi)
403b31:	89 5e 2c             	mov    %ebx,0x2c(%esi)
403b34:	88 5e 30             	mov    %bl,0x30(%esi)
403b37:	39 45 08             	cmp    %eax,0x8(%ebp)
403b3a:	74 13                	je     0x403b4f
403b3c:	ff 75 08             	push   0x8(%ebp)
403b3f:	56                   	push   %esi
403b40:	e8 6a 98 02 00       	call   0x42d3af
403b45:	59                   	pop    %ecx
403b46:	59                   	pop    %ecx
403b47:	8b c6                	mov    %esi,%eax
403b49:	5e                   	pop    %esi
403b4a:	5b                   	pop    %ebx
403b4b:	c9                   	leave
403b4c:	c2 04 00             	ret    $0x4
403b4f:	68 04 95 43 00       	push   $0x439504
403b54:	8d 4d f8             	lea    -0x8(%ebp),%ecx
403b57:	e8 90 ff ff ff       	call   0x403aec
403b5c:	8b c8                	mov    %eax,%ecx
403b5e:	e8 f6 fe ff ff       	call   0x403a59
403b63:	cc                   	int3
403b64:	56                   	push   %esi
403b65:	8b f1                	mov    %ecx,%esi
403b67:	57                   	push   %edi
403b68:	56                   	push   %esi
403b69:	e8 8d 98 02 00       	call   0x42d3fb
403b6e:	83 7e 2c 00          	cmpl   $0x0,0x2c(%esi)
403b72:	59                   	pop    %ecx
403b73:	74 09                	je     0x403b7e
403b75:	ff 76 2c             	push   0x2c(%esi)
403b78:	e8 93 30 00 00       	call   0x406c10
403b7d:	59                   	pop    %ecx
403b7e:	33 ff                	xor    %edi,%edi
403b80:	89 7e 2c             	mov    %edi,0x2c(%esi)
403b83:	39 7e 24             	cmp    %edi,0x24(%esi)
403b86:	74 09                	je     0x403b91
403b88:	ff 76 24             	push   0x24(%esi)
403b8b:	e8 80 30 00 00       	call   0x406c10
403b90:	59                   	pop    %ecx
403b91:	89 7e 24             	mov    %edi,0x24(%esi)
403b94:	39 7e 1c             	cmp    %edi,0x1c(%esi)
403b97:	74 09                	je     0x403ba2
403b99:	ff 76 1c             	push   0x1c(%esi)
403b9c:	e8 6f 30 00 00       	call   0x406c10
403ba1:	59                   	pop    %ecx
403ba2:	89 7e 1c             	mov    %edi,0x1c(%esi)
403ba5:	39 7e 14             	cmp    %edi,0x14(%esi)
403ba8:	74 09                	je     0x403bb3
403baa:	ff 76 14             	push   0x14(%esi)
403bad:	e8 5e 30 00 00       	call   0x406c10
403bb2:	59                   	pop    %ecx
403bb3:	89 7e 14             	mov    %edi,0x14(%esi)
403bb6:	39 7e 0c             	cmp    %edi,0xc(%esi)
403bb9:	74 09                	je     0x403bc4
403bbb:	ff 76 0c             	push   0xc(%esi)
403bbe:	e8 4d 30 00 00       	call   0x406c10
403bc3:	59                   	pop    %ecx
403bc4:	89 7e 0c             	mov    %edi,0xc(%esi)
403bc7:	39 7e 04             	cmp    %edi,0x4(%esi)
403bca:	74 09                	je     0x403bd5
403bcc:	ff 76 04             	push   0x4(%esi)
403bcf:	e8 3c 30 00 00       	call   0x406c10
403bd4:	59                   	pop    %ecx
403bd5:	89 7e 04             	mov    %edi,0x4(%esi)
403bd8:	8b ce                	mov    %esi,%ecx
403bda:	5f                   	pop    %edi
403bdb:	5e                   	pop    %esi
403bdc:	e9 47 95 02 00       	jmp    0x42d128
403be1:	f6 44 24 04 01       	testb  $0x1,0x4(%esp)
403be6:	56                   	push   %esi
403be7:	8b f1                	mov    %ecx,%esi
403be9:	c7 06 8c 84 43 00    	movl   $0x43848c,(%esi)
403bef:	74 0a                	je     0x403bfb
403bf1:	6a 04                	push   $0x4
403bf3:	56                   	push   %esi
403bf4:	e8 f7 2d 00 00       	call   0x4069f0
403bf9:	59                   	pop    %ecx
403bfa:	59                   	pop    %ecx
403bfb:	8b c6                	mov    %esi,%eax
403bfd:	5e                   	pop    %esi
403bfe:	c2 04 00             	ret    $0x4
403c01:	55                   	push   %ebp
403c02:	8b ec                	mov    %esp,%ebp
403c04:	51                   	push   %ecx
403c05:	56                   	push   %esi
403c06:	8b f1                	mov    %ecx,%esi
403c08:	83 3e 00             	cmpl   $0x0,(%esi)
403c0b:	75 24                	jne    0x403c31
403c0d:	6a 00                	push   $0x0
403c0f:	8d 4d fc             	lea    -0x4(%ebp),%ecx
403c12:	e8 b9 94 02 00       	call   0x42d0d0
403c17:	83 3e 00             	cmpl   $0x0,(%esi)
403c1a:	75 0d                	jne    0x403c29
403c1c:	a1 40 fe 43 00       	mov    0x43fe40,%eax
403c21:	40                   	inc    %eax
403c22:	a3 40 fe 43 00       	mov    %eax,0x43fe40
403c27:	89 06                	mov    %eax,(%esi)
403c29:	8d 4d fc             	lea    -0x4(%ebp),%ecx
403c2c:	e8 f7 94 02 00       	call   0x42d128
403c31:	8b 06                	mov    (%esi),%eax
403c33:	5e                   	pop    %esi
403c34:	c9                   	leave
403c35:	c3                   	ret
403c36:	f0 ff 41 04          	lock incl 0x4(%ecx)
403c3a:	c3                   	ret
403c3b:	83 c8 ff             	or     $0xffffffff,%eax
403c3e:	f0 0f c1 41 04       	lock xadd %eax,0x4(%ecx)
403c43:	6a 00                	push   $0x0
403c45:	58                   	pop    %eax
403c46:	0f 44 c1             	cmove  %ecx,%eax
403c49:	c3                   	ret
403c4a:	8b 49 04             	mov    0x4(%ecx),%ecx
403c4d:	85 c9                	test   %ecx,%ecx
403c4f:	74 11                	je     0x403c62
403c51:	8b 01                	mov    (%ecx),%eax
403c53:	ff 50 08             	call   *0x8(%eax)
403c56:	85 c0                	test   %eax,%eax
403c58:	74 08                	je     0x403c62
403c5a:	8b 10                	mov    (%eax),%edx
403c5c:	8b c8                	mov    %eax,%ecx
403c5e:	6a 01                	push   $0x1
403c60:	ff 12                	call   *(%edx)
403c62:	c3                   	ret
403c63:	55                   	push   %ebp
403c64:	8b ec                	mov    %esp,%ebp
403c66:	8b 49 04             	mov    0x4(%ecx),%ecx
403c69:	53                   	push   %ebx
403c6a:	8b 5d 08             	mov    0x8(%ebp),%ebx
403c6d:	56                   	push   %esi
403c6e:	57                   	push   %edi
403c6f:	33 ff                	xor    %edi,%edi
403c71:	8b f3                	mov    %ebx,%esi
403c73:	3b 59 0c             	cmp    0xc(%ecx),%ebx
403c76:	73 0c                	jae    0x403c84