405978:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40597b:	99                   	cltd
40597c:	f7 ff                	idiv   %edi
40597e:	3b 45 e8             	cmp    -0x18(%ebp),%eax
405981:	74 07                	je     0x40598a
405983:	b0 04                	mov    $0x4,%al
405985:	e8 c2 d4 ff ff       	call   0x402e4c
40598a:	83 45 e4 08          	addl   $0x8,-0x1c(%ebp)
40598e:	85 db                	test   %ebx,%ebx
405990:	74 05                	je     0x405997
405992:	83 3b 01             	cmpl   $0x1,(%ebx)
405995:	75 35                	jne    0x4059cc
405997:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40599a:	3b 7d f0             	cmp    -0x10(%ebp),%edi
40599d:	7d 1d                	jge    0x4059bc
40599f:	85 f6                	test   %esi,%esi
4059a1:	74 19                	je     0x4059bc
4059a3:	8b c3                	mov    %ebx,%eax
4059a5:	83 c0 08             	add    $0x8,%eax
4059a8:	8b d7                	mov    %edi,%edx
4059aa:	0f af 55 e8          	imul   -0x18(%ebp),%edx
4059ae:	03 c2                	add    %edx,%eax
4059b0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4059b3:	2b cf                	sub    %edi,%ecx
4059b5:	8b d6                	mov    %esi,%edx
4059b7:	e8 3c ff ff ff       	call   0x4058f8
4059bc:	8d 45 e0             	lea    -0x20(%ebp),%eax
4059bf:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4059c2:	e8 69 d3 ff ff       	call   0x402d30
4059c7:	8b 5d e0             	mov    -0x20(%ebp),%ebx
4059ca:	eb 5e                	jmp    0x405a2a
4059cc:	ff 0b                	decl   (%ebx)
4059ce:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4059d1:	e8 26 d3 ff ff       	call   0x402cfc
4059d6:	8b d8                	mov    %eax,%ebx
4059d8:	8b 45 f0             	mov    -0x10(%ebp),%eax
4059db:	89 45 ec             	mov    %eax,-0x14(%ebp)
4059de:	3b 7d ec             	cmp    -0x14(%ebp),%edi
4059e1:	7d 03                	jge    0x4059e6
4059e3:	89 7d ec             	mov    %edi,-0x14(%ebp)
4059e6:	85 f6                	test   %esi,%esi
4059e8:	74 2a                	je     0x405a14
4059ea:	8b 55 ec             	mov    -0x14(%ebp),%edx
4059ed:	0f af 55 e8          	imul   -0x18(%ebp),%edx
4059f1:	8b c3                	mov    %ebx,%eax
4059f3:	83 c0 08             	add    $0x8,%eax
4059f6:	33 c9                	xor    %ecx,%ecx
4059f8:	e8 5b d8 ff ff       	call   0x403258
4059fd:	8b 45 ec             	mov    -0x14(%ebp),%eax
405a00:	50                   	push   %eax
405a01:	8b 55 fc             	mov    -0x4(%ebp),%edx
405a04:	8b 12                	mov    (%edx),%edx
405a06:	8b c3                	mov    %ebx,%eax
405a08:	83 c0 08             	add    $0x8,%eax
405a0b:	8b ce                	mov    %esi,%ecx
405a0d:	e8 d6 fe ff ff       	call   0x4058e8
405a12:	eb 16                	jmp    0x405a2a
405a14:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405a17:	0f af 4d e8          	imul   -0x18(%ebp),%ecx
405a1b:	8b d3                	mov    %ebx,%edx
405a1d:	83 c2 08             	add    $0x8,%edx
405a20:	8b 45 fc             	mov    -0x4(%ebp),%eax
405a23:	8b 00                	mov    (%eax),%eax
405a25:	e8 c2 d4 ff ff       	call   0x402eec
405a2a:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
405a30:	83 c3 04             	add    $0x4,%ebx
405a33:	89 3b                	mov    %edi,(%ebx)
405a35:	83 c3 04             	add    $0x4,%ebx
405a38:	8b d7                	mov    %edi,%edx
405a3a:	2b 55 f0             	sub    -0x10(%ebp),%edx
405a3d:	0f af 55 e8          	imul   -0x18(%ebp),%edx
405a41:	8b 45 e8             	mov    -0x18(%ebp),%eax
405a44:	0f af 45 f0          	imul   -0x10(%ebp),%eax
405a48:	03 c3                	add    %ebx,%eax
405a4a:	33 c9                	xor    %ecx,%ecx
405a4c:	e8 07 d8 ff ff       	call   0x403258
405a51:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
405a55:	7e 2e                	jle    0x405a85
405a57:	83 45 08 04          	addl   $0x4,0x8(%ebp)
405a5b:	ff 4d f8             	decl   -0x8(%ebp)
405a5e:	4f                   	dec    %edi
405a5f:	85 ff                	test   %edi,%edi
405a61:	7c 22                	jl     0x405a85
405a63:	47                   	inc    %edi
405a64:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
405a6b:	8b 45 08             	mov    0x8(%ebp),%eax
405a6e:	50                   	push   %eax
405a6f:	8b 45 f4             	mov    -0xc(%ebp),%eax
405a72:	8d 04 83             	lea    (%ebx,%eax,4),%eax
405a75:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405a78:	8b d6                	mov    %esi,%edx
405a7a:	e8 89 fe ff ff       	call   0x405908
405a7f:	ff 45 f4             	incl   -0xc(%ebp)
405a82:	4f                   	dec    %edi
405a83:	75 e6                	jne    0x405a6b
405a85:	8b 45 fc             	mov    -0x4(%ebp),%eax
405a88:	89 18                	mov    %ebx,(%eax)
405a8a:	5f                   	pop    %edi
405a8b:	5e                   	pop    %esi
405a8c:	5b                   	pop    %ebx
405a8d:	8b e5                	mov    %ebp,%esp
405a8f:	5d                   	pop    %ebp
405a90:	c2 04 00             	ret    $0x4
405a93:	90                   	nop
405a94:	54                   	push   %esp
405a95:	83 04 24 04          	addl   $0x4,(%esp)
405a99:	e8 6a fe ff ff       	call   0x405908
405a9e:	c3                   	ret
405a9f:	90                   	nop
405aa0:	8b 08                	mov    (%eax),%ecx
405aa2:	85 c9                	test   %ecx,%ecx
405aa4:	74 33                	je     0x405ad9
405aa6:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
405aac:	f0 ff 49 f8          	lock decl -0x8(%ecx)
405ab0:	75 27                	jne    0x405ad9
405ab2:	50                   	push   %eax
405ab3:	89 c8                	mov    %ecx,%eax
405ab5:	31 c9                	xor    %ecx,%ecx
405ab7:	8a 4a 01             	mov    0x1(%edx),%cl
405aba:	8b 54 11 06          	mov    0x6(%ecx,%edx,1),%edx
405abe:	85 d2                	test   %edx,%edx
405ac0:	74 0e                	je     0x405ad0
405ac2:	8b 48 fc             	mov    -0x4(%eax),%ecx
405ac5:	85 c9                	test   %ecx,%ecx
405ac7:	74 07                	je     0x405ad0
405ac9:	8b 12                	mov    (%edx),%edx
405acb:	e8 30 f8 ff ff       	call   0x405300
405ad0:	83 e8 08             	sub    $0x8,%eax
405ad3:	e8 40 d2 ff ff       	call   0x402d18
405ad8:	58                   	pop    %eax
405ad9:	c3                   	ret
405ada:	8b c0                	mov    %eax,%eax
405adc:	53                   	push   %ebx
405add:	8b 18                	mov    (%eax),%ebx
405adf:	85 d2                	test   %edx,%edx
405ae1:	74 04                	je     0x405ae7
405ae3:	f0 ff 42 f8          	lock incl -0x8(%edx)
405ae7:	85 db                	test   %ebx,%ebx
405ae9:	74 14                	je     0x405aff
405aeb:	f0 ff 4b f8          	lock decl -0x8(%ebx)
405aef:	75 0e                	jne    0x405aff
405af1:	50                   	push   %eax
405af2:	52                   	push   %edx
405af3:	89 ca                	mov    %ecx,%edx
405af5:	ff 43 f8             	incl   -0x8(%ebx)
405af8:	e8 a3 ff ff ff       	call   0x405aa0
405afd:	5a                   	pop    %edx
405afe:	58                   	pop    %eax
405aff:	89 10                	mov    %edx,(%eax)
405b01:	5b                   	pop    %ebx
405b02:	c3                   	ret
405b03:	90                   	nop
405b04:	83 c4 e4             	add    $0xffffffe4,%esp
405b07:	6a 1c                	push   $0x1c
405b09:	8d 54 24 04          	lea    0x4(%esp),%edx
405b0d:	52                   	push   %edx
405b0e:	50                   	push   %eax
405b0f:	e8 30 b8 ff ff       	call   0x401344
405b14:	81 7c 24 10 00 10 00 	cmpl   $0x1000,0x10(%esp)
405b1b:	00
405b1c:	75 06                	jne    0x405b24
405b1e:	8b 44 24 04          	mov    0x4(%esp),%eax
405b22:	eb 02                	jmp    0x405b26
405b24:	33 c0                	xor    %eax,%eax
405b26:	83 c4 1c             	add    $0x1c,%esp
405b29:	c3                   	ret
405b2a:	8b c0                	mov    %eax,%eax
405b2c:	e8 d3 ff ff ff       	call   0x405b04
405b31:	c3                   	ret
405b32:	8b c0                	mov    %eax,%eax
405b34:	53                   	push   %ebx
405b35:	56                   	push   %esi
405b36:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
405b3c:	8b d8                	mov    %eax,%ebx
405b3e:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
405b42:	75 2b                	jne    0x405b6f
405b44:	68 05 01 00 00       	push   $0x105
405b49:	8d 44 24 04          	lea    0x4(%esp),%eax
405b4d:	50                   	push   %eax
405b4e:	8b 43 04             	mov    0x4(%ebx),%eax
405b51:	50                   	push   %eax
405b52:	e8 7d b7 ff ff       	call   0x4012d4
405b57:	8b c4                	mov    %esp,%eax
405b59:	b2 01                	mov    $0x1,%dl
405b5b:	e8 38 02 00 00       	call   0x405d98
405b60:	8b f0                	mov    %eax,%esi
405b62:	89 73 10             	mov    %esi,0x10(%ebx)
405b65:	85 f6                	test   %esi,%esi
405b67:	75 06                	jne    0x405b6f
405b69:	8b 43 04             	mov    0x4(%ebx),%eax
405b6c:	89 43 10             	mov    %eax,0x10(%ebx)
405b6f:	8b 43 10             	mov    0x10(%ebx),%eax
405b72:	81 c4 08 01 00 00    	add    $0x108,%esp
405b78:	5e                   	pop    %esi
405b79:	5b                   	pop    %ebx
405b7a:	c3                   	ret
405b7b:	90                   	nop
405b7c:	53                   	push   %ebx
405b7d:	56                   	push   %esi
405b7e:	57                   	push   %edi
405b7f:	8b f0                	mov    %eax,%esi
405b81:	8b 1d 30 b0 49 00    	mov    0x49b030,%ebx
405b87:	85 db                	test   %ebx,%ebx
405b89:	74 20                	je     0x405bab
405b8b:	3b 73 04             	cmp    0x4(%ebx),%esi
405b8e:	74 0a                	je     0x405b9a
405b90:	3b 73 08             	cmp    0x8(%ebx),%esi
405b93:	74 05                	je     0x405b9a
405b95:	3b 73 0c             	cmp    0xc(%ebx),%esi
405b98:	75 0b                	jne    0x405ba5
405b9a:	8b c3                	mov    %ebx,%eax
405b9c:	e8 93 ff ff ff       	call   0x405b34
405ba1:	8b f8                	mov    %eax,%edi
405ba3:	eb 08                	jmp    0x405bad
405ba5:	8b 1b                	mov    (%ebx),%ebx
405ba7:	85 db                	test   %ebx,%ebx
405ba9:	75 e0                	jne    0x405b8b
405bab:	8b fe                	mov    %esi,%edi
405bad:	8b c7                	mov    %edi,%eax
405baf:	5f                   	pop    %edi
405bb0:	5e                   	pop    %esi
405bb1:	5b                   	pop    %ebx
405bb2:	c3                   	ret
405bb3:	90                   	nop
405bb4:	53                   	push   %ebx
405bb5:	56                   	push   %esi
405bb6:	8b f0                	mov    %eax,%esi
405bb8:	eb 08                	jmp    0x405bc2
405bba:	56                   	push   %esi
405bbb:	e8 cc b6 ff ff       	call   0x40128c
405bc0:	8b f0                	mov    %eax,%esi
405bc2:	0f b6 1e             	movzbl (%esi),%ebx
405bc5:	84 db                	test   %bl,%bl
405bc7:	74 05                	je     0x405bce
405bc9:	80 fb 5c             	cmp    $0x5c,%bl
405bcc:	75 ec                	jne    0x405bba
405bce:	8b c6                	mov    %esi,%eax
405bd0:	5e                   	pop    %esi
405bd1:	5b                   	pop    %ebx
405bd2:	c3                   	ret
405bd3:	90                   	nop
405bd4:	55                   	push   %ebp
405bd5:	8b ec                	mov    %esp,%ebp
405bd7:	81 c4 ac fd ff ff    	add    $0xfffffdac,%esp
405bdd:	53                   	push   %ebx
405bde:	56                   	push   %esi
405bdf:	57                   	push   %edi
405be0:	89 55 f8             	mov    %edx,-0x8(%ebp)
405be3:	89 45 fc             	mov    %eax,-0x4(%ebp)
405be6:	8b 45 fc             	mov    -0x4(%ebp),%eax
405be9:	89 45 f4             	mov    %eax,-0xc(%ebp)
405bec:	68 74 5d 40 00       	push   $0x405d74
405bf1:	e8 e6 b6 ff ff       	call   0x4012dc
405bf6:	89 45 f0             	mov    %eax,-0x10(%ebp)
405bf9:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
405bfd:	74 43                	je     0x405c42
405bff:	68 84 5d 40 00       	push   $0x405d84
405c04:	8b 45 f0             	mov    -0x10(%ebp),%eax
405c07:	50                   	push   %eax
405c08:	e8 d7 b6 ff ff       	call   0x4012e4
405c0d:	89 c3                	mov    %eax,%ebx
405c0f:	85 db                	test   %ebx,%ebx
405c11:	74 2f                	je     0x405c42
405c13:	68 05 01 00 00       	push   $0x105
405c18:	8d 85 ad fd ff ff    	lea    -0x253(%ebp),%eax
405c1e:	50                   	push   %eax
405c1f:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c22:	50                   	push   %eax
405c23:	ff d3                	call   *%ebx
405c25:	85 c0                	test   %eax,%eax
405c27:	74 19                	je     0x405c42
405c29:	8b 45 f8             	mov    -0x8(%ebp),%eax
405c2c:	50                   	push   %eax
405c2d:	8d 85 ad fd ff ff    	lea    -0x253(%ebp),%eax
405c33:	50                   	push   %eax
405c34:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c37:	50                   	push   %eax
405c38:	e8 cf b6 ff ff       	call   0x40130c
405c3d:	e9 28 01 00 00       	jmp    0x405d6a
405c42:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c45:	80 38 5c             	cmpb   $0x5c,(%eax)
405c48:	75 38                	jne    0x405c82
405c4a:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c4d:	80 78 01 5c          	cmpb   $0x5c,0x1(%eax)
405c51:	0f 85 13 01 00 00    	jne    0x405d6a
405c57:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c5a:	83 c0 02             	add    $0x2,%eax
405c5d:	e8 52 ff ff ff       	call   0x405bb4
405c62:	8b f0                	mov    %eax,%esi
405c64:	80 3e 00             	cmpb   $0x0,(%esi)
405c67:	0f 84 fd 00 00 00    	je     0x405d6a
405c6d:	8d 46 01             	lea    0x1(%esi),%eax
405c70:	e8 3f ff ff ff       	call   0x405bb4
405c75:	8b f0                	mov    %eax,%esi
405c77:	80 3e 00             	cmpb   $0x0,(%esi)
405c7a:	0f 84 ea 00 00 00    	je     0x405d6a
405c80:	eb 06                	jmp    0x405c88
405c82:	8b 75 fc             	mov    -0x4(%ebp),%esi
405c85:	83 c6 02             	add    $0x2,%esi
405c88:	8b de                	mov    %esi,%ebx
405c8a:	2b 5d fc             	sub    -0x4(%ebp),%ebx
405c8d:	8d 43 01             	lea    0x1(%ebx),%eax
405c90:	50                   	push   %eax
405c91:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c94:	50                   	push   %eax
405c95:	8d 85 ad fd ff ff    	lea    -0x253(%ebp),%eax
405c9b:	50                   	push   %eax
405c9c:	e8 6b b6 ff ff       	call   0x40130c
405ca1:	e9 a7 00 00 00       	jmp    0x405d4d
405ca6:	8d 46 01             	lea    0x1(%esi),%eax
405ca9:	e8 06 ff ff ff       	call   0x405bb4
405cae:	8b f8                	mov    %eax,%edi
405cb0:	8b c7                	mov    %edi,%eax
405cb2:	2b c6                	sub    %esi,%eax
405cb4:	03 c3                	add    %ebx,%eax
405cb6:	40                   	inc    %eax
405cb7:	3d 05 01 00 00       	cmp    $0x105,%eax
405cbc:	0f 8f a8 00 00 00    	jg     0x405d6a
405cc2:	8b c7                	mov    %edi,%eax
405cc4:	2b c6                	sub    %esi,%eax
405cc6:	40                   	inc    %eax
405cc7:	50                   	push   %eax
405cc8:	56                   	push   %esi
405cc9:	8d 85 ad fd ff ff    	lea    -0x253(%ebp),%eax
405ccf:	03 c3                	add    %ebx,%eax
405cd1:	50                   	push   %eax
405cd2:	e8 35 b6 ff ff       	call   0x40130c
405cd7:	8d 85 b2 fe ff ff    	lea    -0x14e(%ebp),%eax
405cdd:	50                   	push   %eax
405cde:	8d 85 ad fd ff ff    	lea    -0x253(%ebp),%eax
405ce4:	50                   	push   %eax
405ce5:	e8 ca b5 ff ff       	call   0x4012b4
405cea:	89 45 f0             	mov    %eax,-0x10(%ebp)
405ced:	83 7d f0 ff          	cmpl   $0xffffffff,-0x10(%ebp)
405cf1:	74 77                	je     0x405d6a
405cf3:	8b 45 f0             	mov    -0x10(%ebp),%eax
405cf6:	50                   	push   %eax
405cf7:	e8 b0 b5 ff ff       	call   0x4012ac
405cfc:	8d 85 de fe ff ff    	lea    -0x122(%ebp),%eax
405d02:	50                   	push   %eax
405d03:	e8 0c b6 ff ff       	call   0x401314
405d08:	8d 53 01             	lea    0x1(%ebx),%edx
405d0b:	03 c2                	add    %edx,%eax
405d0d:	40                   	inc    %eax
405d0e:	3d 05 01 00 00       	cmp    $0x105,%eax
405d13:	7f 55                	jg     0x405d6a
405d15:	c6 84 1d ad fd ff ff 	movb   $0x5c,-0x253(%ebp,%ebx,1)
405d1c:	5c
405d1d:	b8 05 01 00 00       	mov    $0x105,%eax
405d22:	2b c3                	sub    %ebx,%eax