404d55:	e8 b2 fd ff ff       	call   0x404b0c
404d5a:	58                   	pop    %eax
404d5b:	e8 7c d9 ff ff       	call   0x4026dc
404d60:	c3                   	ret
404d61:	8d 40 00             	lea    0x0(%eax),%eax
404d64:	b0 11                	mov    $0x11,%al
404d66:	e9 ad da ff ff       	jmp    0x402818
404d6b:	c3                   	ret
404d6c:	52                   	push   %edx
404d6d:	50                   	push   %eax
404d6e:	8b 44 24 10          	mov    0x10(%esp),%eax
404d72:	f7 24 24             	mull   (%esp)
404d75:	89 c1                	mov    %eax,%ecx
404d77:	8b 44 24 04          	mov    0x4(%esp),%eax
404d7b:	f7 64 24 0c          	mull   0xc(%esp)
404d7f:	01 c1                	add    %eax,%ecx
404d81:	8b 04 24             	mov    (%esp),%eax
404d84:	f7 64 24 0c          	mull   0xc(%esp)
404d88:	01 ca                	add    %ecx,%edx
404d8a:	59                   	pop    %ecx
404d8b:	59                   	pop    %ecx
404d8c:	c2 08 00             	ret    $0x8
404d8f:	c3                   	ret
404d90:	85 c0                	test   %eax,%eax
404d92:	74 03                	je     0x404d97
404d94:	8b 40 fc             	mov    -0x4(%eax),%eax
404d97:	c3                   	ret
404d98:	e8 f3 ff ff ff       	call   0x404d90
404d9d:	48                   	dec    %eax
404d9e:	c3                   	ret
404d9f:	90                   	nop
404da0:	55                   	push   %ebp
404da1:	8b ec                	mov    %esp,%ebp
404da3:	ff 75 08             	push   0x8(%ebp)
404da6:	e8 a1 fe ff ff       	call   0x404c4c
404dab:	5d                   	pop    %ebp
404dac:	c2 04 00             	ret    $0x4
404daf:	90                   	nop
404db0:	e9 6b fc ff ff       	jmp    0x404a20
404db5:	c3                   	ret
404db6:	8b c0                	mov    %eax,%eax
404db8:	e8 9b 01 00 00       	call   0x404f58
404dbd:	c3                   	ret
404dbe:	8b c0                	mov    %eax,%eax
404dc0:	55                   	push   %ebp
404dc1:	8b ec                	mov    %esp,%ebp
404dc3:	83 c4 e0             	add    $0xffffffe0,%esp
404dc6:	53                   	push   %ebx
404dc7:	56                   	push   %esi
404dc8:	57                   	push   %edi
404dc9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
404dcc:	8b f2                	mov    %edx,%esi
404dce:	89 45 fc             	mov    %eax,-0x4(%ebp)
404dd1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
404dd4:	8b 1b                	mov    (%ebx),%ebx
404dd6:	8b 45 08             	mov    0x8(%ebp),%eax
404dd9:	8b 38                	mov    (%eax),%edi
404ddb:	85 ff                	test   %edi,%edi
404ddd:	7f 1a                	jg     0x404df9
404ddf:	85 ff                	test   %edi,%edi
404de1:	7d 07                	jge    0x404dea
404de3:	b0 04                	mov    $0x4,%al
404de5:	e8 2e da ff ff       	call   0x402818
404dea:	8b 45 fc             	mov    -0x4(%ebp),%eax
404ded:	8b d6                	mov    %esi,%edx
404def:	e8 c4 ff ff ff       	call   0x404db8
404df4:	e9 4a 01 00 00       	jmp    0x404f43
404df9:	33 c0                	xor    %eax,%eax
404dfb:	89 45 f0             	mov    %eax,-0x10(%ebp)
404dfe:	85 db                	test   %ebx,%ebx
404e00:	74 0b                	je     0x404e0d
404e02:	83 eb 04             	sub    $0x4,%ebx
404e05:	8b 03                	mov    (%ebx),%eax
404e07:	89 45 f0             	mov    %eax,-0x10(%ebp)
404e0a:	83 eb 04             	sub    $0x4,%ebx
404e0d:	33 c0                	xor    %eax,%eax
404e0f:	8a 46 01             	mov    0x1(%esi),%al
404e12:	01 c6                	add    %eax,%esi
404e14:	8b c6                	mov    %esi,%eax
404e16:	8b 50 02             	mov    0x2(%eax),%edx
404e19:	89 55 e8             	mov    %edx,-0x18(%ebp)
404e1c:	8b 50 06             	mov    0x6(%eax),%edx
404e1f:	85 d2                	test   %edx,%edx
404e21:	74 04                	je     0x404e27
404e23:	8b 32                	mov    (%edx),%esi
404e25:	eb 02                	jmp    0x404e29
404e27:	33 f6                	xor    %esi,%esi
404e29:	8b c7                	mov    %edi,%eax
404e2b:	f7 6d e8             	imull  -0x18(%ebp)
404e2e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
404e31:	8b 45 e4             	mov    -0x1c(%ebp),%eax
404e34:	99                   	cltd
404e35:	f7 ff                	idiv   %edi
404e37:	3b 45 e8             	cmp    -0x18(%ebp),%eax
404e3a:	74 07                	je     0x404e43
404e3c:	b0 04                	mov    $0x4,%al
404e3e:	e8 d5 d9 ff ff       	call   0x402818
404e43:	83 45 e4 08          	addl   $0x8,-0x1c(%ebp)
404e47:	85 db                	test   %ebx,%ebx
404e49:	74 05                	je     0x404e50
404e4b:	83 3b 01             	cmpl   $0x1,(%ebx)
404e4e:	75 35                	jne    0x404e85
404e50:	89 5d e0             	mov    %ebx,-0x20(%ebp)
404e53:	3b 7d f0             	cmp    -0x10(%ebp),%edi
404e56:	7d 1d                	jge    0x404e75
404e58:	85 f6                	test   %esi,%esi
404e5a:	74 19                	je     0x404e75
404e5c:	8b c3                	mov    %ebx,%eax
404e5e:	83 c0 08             	add    $0x8,%eax
404e61:	8b d7                	mov    %edi,%edx
404e63:	0f af 55 e8          	imul   -0x18(%ebp),%edx
404e67:	03 c2                	add    %edx,%eax
404e69:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404e6c:	2b cf                	sub    %edi,%ecx
404e6e:	8b d6                	mov    %esi,%edx
404e70:	e8 3b ff ff ff       	call   0x404db0
404e75:	8d 45 e0             	lea    -0x20(%ebp),%eax
404e78:	8b 55 e4             	mov    -0x1c(%ebp),%edx
404e7b:	e8 7c d8 ff ff       	call   0x4026fc
404e80:	8b 5d e0             	mov    -0x20(%ebp),%ebx
404e83:	eb 5e                	jmp    0x404ee3
404e85:	ff 0b                	decl   (%ebx)
404e87:	8b 45 e4             	mov    -0x1c(%ebp),%eax
404e8a:	e8 2d d8 ff ff       	call   0x4026bc
404e8f:	8b d8                	mov    %eax,%ebx
404e91:	8b 45 f0             	mov    -0x10(%ebp),%eax
404e94:	89 45 ec             	mov    %eax,-0x14(%ebp)
404e97:	3b 7d ec             	cmp    -0x14(%ebp),%edi
404e9a:	7d 03                	jge    0x404e9f
404e9c:	89 7d ec             	mov    %edi,-0x14(%ebp)
404e9f:	85 f6                	test   %esi,%esi
404ea1:	74 2a                	je     0x404ecd
404ea3:	8b 55 ec             	mov    -0x14(%ebp),%edx
404ea6:	0f af 55 e8          	imul   -0x18(%ebp),%edx
404eaa:	8b c3                	mov    %ebx,%eax
404eac:	83 c0 08             	add    $0x8,%eax
404eaf:	33 c9                	xor    %ecx,%ecx
404eb1:	e8 ae dd ff ff       	call   0x402c64
404eb6:	8b 45 ec             	mov    -0x14(%ebp),%eax
404eb9:	50                   	push   %eax
404eba:	8b 55 fc             	mov    -0x4(%ebp),%edx
404ebd:	8b 12                	mov    (%edx),%edx
404ebf:	8b c3                	mov    %ebx,%eax
404ec1:	83 c0 08             	add    $0x8,%eax
404ec4:	8b ce                	mov    %esi,%ecx
404ec6:	e8 d5 fe ff ff       	call   0x404da0
404ecb:	eb 16                	jmp    0x404ee3
404ecd:	8b 4d ec             	mov    -0x14(%ebp),%ecx
404ed0:	0f af 4d e8          	imul   -0x18(%ebp),%ecx
404ed4:	8b d3                	mov    %ebx,%edx
404ed6:	83 c2 08             	add    $0x8,%edx
404ed9:	8b 45 fc             	mov    -0x4(%ebp),%eax
404edc:	8b 00                	mov    (%eax),%eax
404ede:	e8 d5 d9 ff ff       	call   0x4028b8
404ee3:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
404ee9:	83 c3 04             	add    $0x4,%ebx
404eec:	89 3b                	mov    %edi,(%ebx)
404eee:	83 c3 04             	add    $0x4,%ebx
404ef1:	8b d7                	mov    %edi,%edx
404ef3:	2b 55 f0             	sub    -0x10(%ebp),%edx
404ef6:	0f af 55 e8          	imul   -0x18(%ebp),%edx
404efa:	8b 45 e8             	mov    -0x18(%ebp),%eax
404efd:	0f af 45 f0          	imul   -0x10(%ebp),%eax
404f01:	03 c3                	add    %ebx,%eax
404f03:	33 c9                	xor    %ecx,%ecx
404f05:	e8 5a dd ff ff       	call   0x402c64
404f0a:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
404f0e:	7e 2e                	jle    0x404f3e
404f10:	83 45 08 04          	addl   $0x4,0x8(%ebp)
404f14:	ff 4d f8             	decl   -0x8(%ebp)
404f17:	4f                   	dec    %edi
404f18:	85 ff                	test   %edi,%edi
404f1a:	7c 22                	jl     0x404f3e
404f1c:	47                   	inc    %edi
404f1d:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
404f24:	8b 45 08             	mov    0x8(%ebp),%eax
404f27:	50                   	push   %eax
404f28:	8b 45 f4             	mov    -0xc(%ebp),%eax
404f2b:	8d 04 83             	lea    (%ebx,%eax,4),%eax
404f2e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
404f31:	8b d6                	mov    %esi,%edx
404f33:	e8 88 fe ff ff       	call   0x404dc0
404f38:	ff 45 f4             	incl   -0xc(%ebp)
404f3b:	4f                   	dec    %edi
404f3c:	75 e6                	jne    0x404f24
404f3e:	8b 45 fc             	mov    -0x4(%ebp),%eax
404f41:	89 18                	mov    %ebx,(%eax)
404f43:	5f                   	pop    %edi
404f44:	5e                   	pop    %esi
404f45:	5b                   	pop    %ebx
404f46:	8b e5                	mov    %ebp,%esp
404f48:	5d                   	pop    %ebp
404f49:	c2 04 00             	ret    $0x4
404f4c:	54                   	push   %esp
404f4d:	83 04 24 04          	addl   $0x4,(%esp)
404f51:	e8 6a fe ff ff       	call   0x404dc0
404f56:	c3                   	ret
404f57:	90                   	nop
404f58:	8b 08                	mov    (%eax),%ecx
404f5a:	85 c9                	test   %ecx,%ecx
404f5c:	74 33                	je     0x404f91
404f5e:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
404f64:	f0 ff 49 f8          	lock decl -0x8(%ecx)
404f68:	75 27                	jne    0x404f91
404f6a:	50                   	push   %eax
404f6b:	89 c8                	mov    %ecx,%eax
404f6d:	31 c9                	xor    %ecx,%ecx
404f6f:	8a 4a 01             	mov    0x1(%edx),%cl
404f72:	8b 54 11 06          	mov    0x6(%ecx,%edx,1),%edx
404f76:	85 d2                	test   %edx,%edx
404f78:	74 0e                	je     0x404f88
404f7a:	8b 48 fc             	mov    -0x4(%eax),%ecx
404f7d:	85 c9                	test   %ecx,%ecx
404f7f:	74 07                	je     0x404f88
404f81:	8b 12                	mov    (%edx),%edx
404f83:	e8 98 fa ff ff       	call   0x404a20
404f88:	83 e8 08             	sub    $0x8,%eax
404f8b:	e8 4c d7 ff ff       	call   0x4026dc
404f90:	58                   	pop    %eax
404f91:	c3                   	ret
404f92:	8b c0                	mov    %eax,%eax
404f94:	53                   	push   %ebx
404f95:	8b 18                	mov    (%eax),%ebx
404f97:	85 d2                	test   %edx,%edx
404f99:	74 04                	je     0x404f9f
404f9b:	f0 ff 42 f8          	lock incl -0x8(%edx)
404f9f:	85 db                	test   %ebx,%ebx
404fa1:	74 14                	je     0x404fb7
404fa3:	f0 ff 4b f8          	lock decl -0x8(%ebx)
404fa7:	75 0e                	jne    0x404fb7
404fa9:	50                   	push   %eax
404faa:	52                   	push   %edx
404fab:	89 ca                	mov    %ecx,%edx
404fad:	ff 43 f8             	incl   -0x8(%ebx)
404fb0:	e8 a3 ff ff ff       	call   0x404f58
404fb5:	5a                   	pop    %edx
404fb6:	58                   	pop    %eax
404fb7:	89 10                	mov    %edx,(%eax)
404fb9:	5b                   	pop    %ebx
404fba:	c3                   	ret
404fbb:	90                   	nop
404fbc:	83 c4 e4             	add    $0xffffffe4,%esp
404fbf:	6a 1c                	push   $0x1c
404fc1:	8d 54 24 04          	lea    0x4(%esp),%edx
404fc5:	52                   	push   %edx
404fc6:	50                   	push   %eax
404fc7:	e8 00 c3 ff ff       	call   0x4012cc
404fcc:	81 7c 24 10 00 10 00 	cmpl   $0x1000,0x10(%esp)
404fd3:	00
404fd4:	75 06                	jne    0x404fdc
404fd6:	8b 44 24 04          	mov    0x4(%esp),%eax
404fda:	eb 02                	jmp    0x404fde
404fdc:	33 c0                	xor    %eax,%eax
404fde:	83 c4 1c             	add    $0x1c,%esp
404fe1:	c3                   	ret
404fe2:	8b c0                	mov    %eax,%eax
404fe4:	e8 d3 ff ff ff       	call   0x404fbc
404fe9:	c3                   	ret
404fea:	8b c0                	mov    %eax,%eax
404fec:	53                   	push   %ebx
404fed:	56                   	push   %esi
404fee:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
404ff4:	8b d8                	mov    %eax,%ebx
404ff6:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
404ffa:	75 2b                	jne    0x405027
404ffc:	68 05 01 00 00       	push   $0x105
405001:	8d 44 24 04          	lea    0x4(%esp),%eax
405005:	50                   	push   %eax
405006:	8b 43 04             	mov    0x4(%ebx),%eax
405009:	50                   	push   %eax
40500a:	e8 4d c2 ff ff       	call   0x40125c
40500f:	8b c4                	mov    %esp,%eax
405011:	b2 01                	mov    $0x1,%dl
405013:	e8 10 02 00 00       	call   0x405228
405018:	8b f0                	mov    %eax,%esi
40501a:	89 73 10             	mov    %esi,0x10(%ebx)
40501d:	85 f6                	test   %esi,%esi
40501f:	75 06                	jne    0x405027
405021:	8b 43 04             	mov    0x4(%ebx),%eax
405024:	89 43 10             	mov    %eax,0x10(%ebx)
405027:	8b 43 10             	mov    0x10(%ebx),%eax
40502a:	81 c4 08 01 00 00    	add    $0x108,%esp
405030:	5e                   	pop    %esi
405031:	5b                   	pop    %ebx
405032:	c3                   	ret
405033:	90                   	nop
405034:	8b 15 34 30 46 00    	mov    0x463034,%edx
40503a:	85 d2                	test   %edx,%edx
40503c:	74 1d                	je     0x40505b
40503e:	3b 42 04             	cmp    0x4(%edx),%eax
405041:	74 0a                	je     0x40504d
405043:	3b 42 08             	cmp    0x8(%edx),%eax
405046:	74 05                	je     0x40504d
405048:	3b 42 0c             	cmp    0xc(%edx),%eax
40504b:	75 08                	jne    0x405055
40504d:	8b c2                	mov    %edx,%eax
40504f:	e8 98 ff ff ff       	call   0x404fec
405054:	c3                   	ret
405055:	8b 12                	mov    (%edx),%edx
405057:	85 d2                	test   %edx,%edx
405059:	75 e3                	jne    0x40503e
40505b:	c3                   	ret
40505c:	eb 06                	jmp    0x405064
40505e:	50                   	push   %eax
40505f:	e8 b8 c1 ff ff       	call   0x40121c
405064:	8a 10                	mov    (%eax),%dl
405066:	84 d2                	test   %dl,%dl
405068:	74 05                	je     0x40506f
40506a:	80 fa 5c             	cmp    $0x5c,%dl
40506d:	75 ef                	jne    0x40505e
40506f:	c3                   	ret
405070:	55                   	push   %ebp
405071:	8b ec                	mov    %esp,%ebp
405073:	81 c4 b0 fd ff ff    	add    $0xfffffdb0,%esp
405079:	53                   	push   %ebx
40507a:	56                   	push   %esi
40507b:	57                   	push   %edi
40507c:	89 55 f8             	mov    %edx,-0x8(%ebp)
40507f:	89 45 fc             	mov    %eax,-0x4(%ebp)
405082:	8b 45 fc             	mov    -0x4(%ebp),%eax
405085:	89 45 f4             	mov    %eax,-0xc(%ebp)
405088:	68 04 52 40 00       	push   $0x405204
40508d:	e8 d2 c1 ff ff       	call   0x401264
405092:	8b f0                	mov    %eax,%esi
405094:	85 f6                	test   %esi,%esi
405096:	74 40                	je     0x4050d8
405098:	68 14 52 40 00       	push   $0x405214
40509d:	56                   	push   %esi
40509e:	e8 c9 c1 ff ff       	call   0x40126c
4050a3:	89 c3                	mov    %eax,%ebx
4050a5:	85 db                	test   %ebx,%ebx
4050a7:	74 2f                	je     0x4050d8
4050a9:	68 05 01 00 00       	push   $0x105
4050ae:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4050b4:	50                   	push   %eax
4050b5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4050b8:	50                   	push   %eax
4050b9:	ff d3                	call   *%ebx
4050bb:	85 c0                	test   %eax,%eax
4050bd:	74 19                	je     0x4050d8
4050bf:	8b 45 f8             	mov    -0x8(%ebp),%eax
4050c2:	50                   	push   %eax
4050c3:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4050c9:	50                   	push   %eax
4050ca:	8b 45 fc             	mov    -0x4(%ebp),%eax
4050cd:	50                   	push   %eax
4050ce:	e8 c1 c1 ff ff       	call   0x401294
4050d3:	e9 22 01 00 00       	jmp    0x4051fa
4050d8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4050db:	80 38 5c             	cmpb   $0x5c,(%eax)