405bea:	c3                   	ret
405beb:	90                   	nop
405bec:	55                   	push   %ebp
405bed:	53                   	push   %ebx
405bee:	56                   	push   %esi
405bef:	57                   	push   %edi
405bf0:	8b 5c 24 14          	mov    0x14(%esp),%ebx
405bf4:	8b 4c 24 18          	mov    0x18(%esp),%ecx
405bf8:	09 c9                	or     %ecx,%ecx
405bfa:	75 08                	jne    0x405c04
405bfc:	09 d2                	or     %edx,%edx
405bfe:	74 33                	je     0x405c33
405c00:	09 db                	or     %ebx,%ebx
405c02:	74 2f                	je     0x405c33
405c04:	89 cd                	mov    %ecx,%ebp
405c06:	b9 40 00 00 00       	mov    $0x40,%ecx
405c0b:	31 ff                	xor    %edi,%edi
405c0d:	31 f6                	xor    %esi,%esi
405c0f:	d1 e0                	shl    $1,%eax
405c11:	d1 d2                	rcl    $1,%edx
405c13:	d1 d6                	rcl    $1,%esi
405c15:	d1 d7                	rcl    $1,%edi
405c17:	39 ef                	cmp    %ebp,%edi
405c19:	72 0b                	jb     0x405c26
405c1b:	77 04                	ja     0x405c21
405c1d:	39 de                	cmp    %ebx,%esi
405c1f:	72 05                	jb     0x405c26
405c21:	29 de                	sub    %ebx,%esi
405c23:	19 ef                	sbb    %ebp,%edi
405c25:	40                   	inc    %eax
405c26:	e2 e7                	loop   0x405c0f
405c28:	89 f0                	mov    %esi,%eax
405c2a:	89 fa                	mov    %edi,%edx
405c2c:	5f                   	pop    %edi
405c2d:	5e                   	pop    %esi
405c2e:	5b                   	pop    %ebx
405c2f:	5d                   	pop    %ebp
405c30:	c2 08 00             	ret    $0x8
405c33:	f7 f3                	div    %ebx
405c35:	92                   	xchg   %eax,%edx
405c36:	31 d2                	xor    %edx,%edx
405c38:	eb f2                	jmp    0x405c2c
405c3a:	c3                   	ret
405c3b:	90                   	nop
405c3c:	80 f9 20             	cmp    $0x20,%cl
405c3f:	7c 11                	jl     0x405c52
405c41:	80 f9 40             	cmp    $0x40,%cl
405c44:	7c 05                	jl     0x405c4b
405c46:	31 d2                	xor    %edx,%edx
405c48:	31 c0                	xor    %eax,%eax
405c4a:	c3                   	ret
405c4b:	89 c2                	mov    %eax,%edx
405c4d:	d3 e2                	shl    %cl,%edx
405c4f:	31 c0                	xor    %eax,%eax
405c51:	c3                   	ret
405c52:	0f a5 c2             	shld   %cl,%eax,%edx
405c55:	d3 e0                	shl    %cl,%eax
405c57:	c3                   	ret
405c58:	c3                   	ret
405c59:	8d 40 00             	lea    0x0(%eax),%eax
405c5c:	80 f9 20             	cmp    $0x20,%cl
405c5f:	7c 11                	jl     0x405c72
405c61:	80 f9 40             	cmp    $0x40,%cl
405c64:	7c 05                	jl     0x405c6b
405c66:	31 d2                	xor    %edx,%edx
405c68:	31 c0                	xor    %eax,%eax
405c6a:	c3                   	ret
405c6b:	89 d0                	mov    %edx,%eax
405c6d:	31 d2                	xor    %edx,%edx
405c6f:	d3 e8                	shr    %cl,%eax
405c71:	c3                   	ret
405c72:	0f ad d0             	shrd   %cl,%edx,%eax
405c75:	d3 ea                	shr    %cl,%edx
405c77:	c3                   	ret
405c78:	c3                   	ret
405c79:	8d 40 00             	lea    0x0(%eax),%eax
405c7c:	53                   	push   %ebx
405c7d:	56                   	push   %esi
405c7e:	57                   	push   %edi
405c7f:	55                   	push   %ebp
405c80:	83 c4 ec             	add    $0xffffffec,%esp
405c83:	89 14 24             	mov    %edx,(%esp)
405c86:	8b f0                	mov    %eax,%esi
405c88:	bd 01 00 00 00       	mov    $0x1,%ebp
405c8d:	33 ff                	xor    %edi,%edi
405c8f:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
405c96:	00
405c97:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
405c9e:	00
405c9f:	85 f6                	test   %esi,%esi
405ca1:	75 0b                	jne    0x405cae
405ca3:	8b 04 24             	mov    (%esp),%eax
405ca6:	89 28                	mov    %ebp,(%eax)
405ca8:	e9 e1 01 00 00       	jmp    0x405e8e
405cad:	45                   	inc    %ebp
405cae:	80 7c 2e ff 20       	cmpb   $0x20,-0x1(%esi,%ebp,1)
405cb3:	74 f8                	je     0x405cad
405cb5:	c6 44 24 10 00       	movb   $0x0,0x10(%esp)
405cba:	8a 44 2e ff          	mov    -0x1(%esi,%ebp,1),%al
405cbe:	3c 2d                	cmp    $0x2d,%al
405cc0:	75 08                	jne    0x405cca
405cc2:	c6 44 24 10 01       	movb   $0x1,0x10(%esp)
405cc7:	45                   	inc    %ebp
405cc8:	eb 05                	jmp    0x405ccf
405cca:	3c 2b                	cmp    $0x2b,%al
405ccc:	75 01                	jne    0x405ccf
405cce:	45                   	inc    %ebp
405ccf:	b3 01                	mov    $0x1,%bl
405cd1:	80 7c 2e ff 24       	cmpb   $0x24,-0x1(%esi,%ebp,1)
405cd6:	74 1b                	je     0x405cf3
405cd8:	80 7c 2e ff 30       	cmpb   $0x30,-0x1(%esi,%ebp,1)
405cdd:	0f 85 da 00 00 00    	jne    0x405dbd
405ce3:	8a 04 2e             	mov    (%esi,%ebp,1),%al
405ce6:	e8 3d cf ff ff       	call   0x402c28
405ceb:	3c 58                	cmp    $0x58,%al
405ced:	0f 85 ca 00 00 00    	jne    0x405dbd
405cf3:	80 7c 2e ff 30       	cmpb   $0x30,-0x1(%esi,%ebp,1)
405cf8:	75 01                	jne    0x405cfb
405cfa:	45                   	inc    %ebp
405cfb:	45                   	inc    %ebp
405cfc:	8a 44 2e ff          	mov    -0x1(%esi,%ebp,1),%al
405d00:	8b d0                	mov    %eax,%edx
405d02:	80 c2 d0             	add    $0xd0,%dl
405d05:	80 ea 0a             	sub    $0xa,%dl
405d08:	72 12                	jb     0x405d1c
405d0a:	80 c2 f9             	add    $0xf9,%dl
405d0d:	80 ea 06             	sub    $0x6,%dl
405d10:	72 17                	jb     0x405d29
405d12:	80 c2 e6             	add    $0xe6,%dl
405d15:	80 ea 06             	sub    $0x6,%dl
405d18:	72 1c                	jb     0x405d36
405d1a:	eb 7a                	jmp    0x405d96
405d1c:	8b f8                	mov    %eax,%edi
405d1e:	81 e7 ff 00 00 00    	and    $0xff,%edi
405d24:	83 ef 30             	sub    $0x30,%edi
405d27:	eb 18                	jmp    0x405d41
405d29:	8b f8                	mov    %eax,%edi
405d2b:	81 e7 ff 00 00 00    	and    $0xff,%edi
405d31:	83 ef 37             	sub    $0x37,%edi
405d34:	eb 0b                	jmp    0x405d41
405d36:	8b f8                	mov    %eax,%edi
405d38:	81 e7 ff 00 00 00    	and    $0xff,%edi
405d3e:	83 ef 57             	sub    $0x57,%edi
405d41:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405d46:	75 09                	jne    0x405d51
405d48:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
405d4d:	72 47                	jb     0x405d96
405d4f:	eb 02                	jmp    0x405d53
405d51:	7c 43                	jl     0x405d96
405d53:	81 7c 24 0c ff ff ff 	cmpl   $0xfffffff,0xc(%esp)
405d5a:	0f
405d5b:	75 09                	jne    0x405d66
405d5d:	83 7c 24 08 ff       	cmpl   $0xffffffff,0x8(%esp)
405d62:	76 04                	jbe    0x405d68
405d64:	eb 30                	jmp    0x405d96
405d66:	7f 2e                	jg     0x405d96
405d68:	8b c7                	mov    %edi,%eax
405d6a:	99                   	cltd
405d6b:	52                   	push   %edx
405d6c:	50                   	push   %eax
405d6d:	8b 44 24 10          	mov    0x10(%esp),%eax
405d71:	8b 54 24 14          	mov    0x14(%esp),%edx
405d75:	0f a4 c2 04          	shld   $0x4,%eax,%edx
405d79:	c1 e0 04             	shl    $0x4,%eax
405d7c:	03 04 24             	add    (%esp),%eax
405d7f:	13 54 24 04          	adc    0x4(%esp),%edx
405d83:	83 c4 08             	add    $0x8,%esp
405d86:	89 44 24 08          	mov    %eax,0x8(%esp)
405d8a:	89 54 24 0c          	mov    %edx,0xc(%esp)
405d8e:	45                   	inc    %ebp
405d8f:	33 db                	xor    %ebx,%ebx
405d91:	e9 66 ff ff ff       	jmp    0x405cfc
405d96:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
405d9b:	0f 84 d3 00 00 00    	je     0x405e74
405da1:	8b 44 24 08          	mov    0x8(%esp),%eax
405da5:	8b 54 24 0c          	mov    0xc(%esp),%edx
405da9:	f7 d8                	neg    %eax
405dab:	83 d2 00             	adc    $0x0,%edx
405dae:	f7 da                	neg    %edx
405db0:	89 44 24 08          	mov    %eax,0x8(%esp)
405db4:	89 54 24 0c          	mov    %edx,0xc(%esp)
405db8:	e9 b7 00 00 00       	jmp    0x405e74
405dbd:	8a 44 2e ff          	mov    -0x1(%esi,%ebp,1),%al
405dc1:	8b d0                	mov    %eax,%edx
405dc3:	80 c2 d0             	add    $0xd0,%dl
405dc6:	80 ea 0a             	sub    $0xa,%dl
405dc9:	73 62                	jae    0x405e2d
405dcb:	8b f8                	mov    %eax,%edi
405dcd:	81 e7 ff 00 00 00    	and    $0xff,%edi
405dd3:	83 ef 30             	sub    $0x30,%edi
405dd6:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405ddb:	75 09                	jne    0x405de6
405ddd:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
405de2:	72 49                	jb     0x405e2d
405de4:	eb 02                	jmp    0x405de8
405de6:	7c 45                	jl     0x405e2d
405de8:	81 7c 24 0c cc cc cc 	cmpl   $0xccccccc,0xc(%esp)
405def:	0c
405df0:	75 0c                	jne    0x405dfe
405df2:	81 7c 24 08 cc cc cc 	cmpl   $0xcccccccc,0x8(%esp)
405df9:	cc
405dfa:	76 04                	jbe    0x405e00
405dfc:	eb 2f                	jmp    0x405e2d
405dfe:	7f 2d                	jg     0x405e2d
405e00:	6a 00                	push   $0x0
405e02:	6a 0a                	push   $0xa
405e04:	8b 44 24 10          	mov    0x10(%esp),%eax
405e08:	8b 54 24 14          	mov    0x14(%esp),%edx
405e0c:	e8 73 fc ff ff       	call   0x405a84
405e11:	52                   	push   %edx
405e12:	50                   	push   %eax
405e13:	8b c7                	mov    %edi,%eax
405e15:	99                   	cltd
405e16:	03 04 24             	add    (%esp),%eax
405e19:	13 54 24 04          	adc    0x4(%esp),%edx
405e1d:	83 c4 08             	add    $0x8,%esp
405e20:	89 44 24 08          	mov    %eax,0x8(%esp)
405e24:	89 54 24 0c          	mov    %edx,0xc(%esp)
405e28:	45                   	inc    %ebp
405e29:	33 db                	xor    %ebx,%ebx
405e2b:	eb 90                	jmp    0x405dbd
405e2d:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
405e32:	74 17                	je     0x405e4b
405e34:	8b 44 24 08          	mov    0x8(%esp),%eax
405e38:	8b 54 24 0c          	mov    0xc(%esp),%edx
405e3c:	f7 d8                	neg    %eax
405e3e:	83 d2 00             	adc    $0x0,%edx
405e41:	f7 da                	neg    %edx
405e43:	89 44 24 08          	mov    %eax,0x8(%esp)
405e47:	89 54 24 0c          	mov    %edx,0xc(%esp)
405e4b:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405e50:	75 05                	jne    0x405e57
405e52:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
405e57:	74 1b                	je     0x405e74
405e59:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405e5e:	75 0a                	jne    0x405e6a
405e60:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
405e65:	0f 92 c0             	setb   %al
405e68:	eb 03                	jmp    0x405e6d
405e6a:	0f 9c c0             	setl   %al
405e6d:	3a 44 24 10          	cmp    0x10(%esp),%al
405e71:	74 01                	je     0x405e74
405e73:	4d                   	dec    %ebp
405e74:	80 7c 2e ff 00       	cmpb   $0x0,-0x1(%esi,%ebp,1)
405e79:	0f 95 c0             	setne  %al
405e7c:	0a d8                	or     %al,%bl
405e7e:	74 07                	je     0x405e87
405e80:	8b 04 24             	mov    (%esp),%eax
405e83:	89 28                	mov    %ebp,(%eax)
405e85:	eb 07                	jmp    0x405e8e
405e87:	8b 04 24             	mov    (%esp),%eax
405e8a:	33 d2                	xor    %edx,%edx
405e8c:	89 10                	mov    %edx,(%eax)
405e8e:	8b 44 24 08          	mov    0x8(%esp),%eax
405e92:	8b 54 24 0c          	mov    0xc(%esp),%edx
405e96:	83 c4 14             	add    $0x14,%esp
405e99:	5d                   	pop    %ebp
405e9a:	5f                   	pop    %edi
405e9b:	5e                   	pop    %esi
405e9c:	5b                   	pop    %ebx
405e9d:	c3                   	ret
405e9e:	8b c0                	mov    %eax,%eax
405ea0:	85 c0                	test   %eax,%eax
405ea2:	74 03                	je     0x405ea7
405ea4:	8b 40 fc             	mov    -0x4(%eax),%eax
405ea7:	c3                   	ret
405ea8:	e8 f3 ff ff ff       	call   0x405ea0
405ead:	48                   	dec    %eax
405eae:	c3                   	ret
405eaf:	90                   	nop
405eb0:	55                   	push   %ebp
405eb1:	8b ec                	mov    %esp,%ebp
405eb3:	ff 75 08             	push   0x8(%ebp)
405eb6:	e8 a9 f8 ff ff       	call   0x405764
405ebb:	5d                   	pop    %ebp
405ebc:	c2 04 00             	ret    $0x4
405ebf:	90                   	nop
405ec0:	e9 9b f5 ff ff       	jmp    0x405460
405ec5:	c3                   	ret
405ec6:	8b c0                	mov    %eax,%eax
405ec8:	e8 af 02 00 00       	call   0x40617c
405ecd:	c3                   	ret
405ece:	8b c0                	mov    %eax,%eax
405ed0:	55                   	push   %ebp
405ed1:	8b ec                	mov    %esp,%ebp
405ed3:	83 c4 e0             	add    $0xffffffe0,%esp
405ed6:	53                   	push   %ebx
405ed7:	56                   	push   %esi
405ed8:	57                   	push   %edi
405ed9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405edc:	8b f2                	mov    %edx,%esi
405ede:	89 45 fc             	mov    %eax,-0x4(%ebp)
405ee1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
405ee4:	8b 1b                	mov    (%ebx),%ebx
405ee6:	8b 45 08             	mov    0x8(%ebp),%eax
405ee9:	8b 38                	mov    (%eax),%edi
405eeb:	85 ff                	test   %edi,%edi
405eed:	7f 1a                	jg     0x405f09
405eef:	85 ff                	test   %edi,%edi
405ef1:	7d 07                	jge    0x405efa
405ef3:	b0 04                	mov    $0x4,%al
405ef5:	e8 0e ca ff ff       	call   0x402908
405efa:	8b 45 fc             	mov    -0x4(%ebp),%eax
405efd:	8b d6                	mov    %esi,%edx
405eff:	e8 c4 ff ff ff       	call   0x405ec8
405f04:	e9 4a 01 00 00       	jmp    0x406053
405f09:	33 c0                	xor    %eax,%eax
405f0b:	89 45 f0             	mov    %eax,-0x10(%ebp)
405f0e:	85 db                	test   %ebx,%ebx
405f10:	74 0b                	je     0x405f1d
405f12:	83 eb 04             	sub    $0x4,%ebx
405f15:	8b 03                	mov    (%ebx),%eax
405f17:	89 45 f0             	mov    %eax,-0x10(%ebp)
405f1a:	83 eb 04             	sub    $0x4,%ebx
405f1d:	33 c0                	xor    %eax,%eax
405f1f:	8a 46 01             	mov    0x1(%esi),%al
405f22:	01 c6                	add    %eax,%esi
405f24:	8b c6                	mov    %esi,%eax
405f26:	8b 50 02             	mov    0x2(%eax),%edx
405f29:	89 55 e8             	mov    %edx,-0x18(%ebp)
405f2c:	8b 50 06             	mov    0x6(%eax),%edx
405f2f:	85 d2                	test   %edx,%edx
405f31:	74 04                	je     0x405f37
405f33:	8b 32                	mov    (%edx),%esi
405f35:	eb 02                	jmp    0x405f39
405f37:	33 f6                	xor    %esi,%esi
405f39:	8b c7                	mov    %edi,%eax
405f3b:	f7 6d e8             	imull  -0x18(%ebp)
405f3e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405f41:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405f44:	99                   	cltd
405f45:	f7 ff                	idiv   %edi
405f47:	3b 45 e8             	cmp    -0x18(%ebp),%eax
405f4a:	74 07                	je     0x405f53
405f4c:	b0 04                	mov    $0x4,%al
405f4e:	e8 b5 c9 ff ff       	call   0x402908
405f53:	83 45 e4 08          	addl   $0x8,-0x1c(%ebp)
405f57:	85 db                	test   %ebx,%ebx
405f59:	74 05                	je     0x405f60
405f5b:	83 3b 01             	cmpl   $0x1,(%ebx)
405f5e:	75 35                	jne    0x405f95
405f60:	89 5d e0             	mov    %ebx,-0x20(%ebp)
405f63:	3b 7d f0             	cmp    -0x10(%ebp),%edi
405f66:	7d 1d                	jge    0x405f85
405f68:	85 f6                	test   %esi,%esi
405f6a:	74 19                	je     0x405f85
405f6c:	8b c3                	mov    %ebx,%eax
405f6e:	83 c0 08             	add    $0x8,%eax
405f71:	8b d7                	mov    %edi,%edx
405f73:	0f af 55 e8          	imul   -0x18(%ebp),%edx