560d1f:	8b 44 24 4c          	mov    0x4c(%esp),%eax
560d23:	3b d0                	cmp    %eax,%edx
560d25:	72 17                	jb     0x560d3e
560d27:	8b 54 24 44          	mov    0x44(%esp),%edx
560d2b:	89 54 24 60          	mov    %edx,0x60(%esp)
560d2f:	66 8b 4e 36          	mov    0x36(%esi),%cx
560d33:	b8 01 00 00 00       	mov    $0x1,%eax
560d38:	d3 e0                	shl    %cl,%eax
560d3a:	01 44 24 64          	add    %eax,0x64(%esp)
560d3e:	8b 54 24 20          	mov    0x20(%esp),%edx
560d42:	85 d2                	test   %edx,%edx
560d44:	0f 8f c2 fe ff ff    	jg     0x560c0c
560d4a:	eb 0f                	jmp    0x560d5b
560d4c:	33 c9                	xor    %ecx,%ecx
560d4e:	89 4b 1c             	mov    %ecx,0x1c(%ebx)
560d51:	33 c0                	xor    %eax,%eax
560d53:	89 43 20             	mov    %eax,0x20(%ebx)
560d56:	33 d2                	xor    %edx,%edx
560d58:	89 53 24             	mov    %edx,0x24(%ebx)
560d5b:	8b 4e 2c             	mov    0x2c(%esi),%ecx
560d5e:	b8 01 00 00 00       	mov    $0x1,%eax
560d63:	d3 e0                	shl    %cl,%eax
560d65:	01 44 24 44          	add    %eax,0x44(%esp)
560d69:	8b 54 24 44          	mov    0x44(%esp),%edx
560d6d:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
560d71:	3b d1                	cmp    %ecx,%edx
560d73:	72 16                	jb     0x560d8b
560d75:	8b 44 24 34          	mov    0x34(%esp),%eax
560d79:	89 44 24 44          	mov    %eax,0x44(%esp)
560d7d:	8b 4e 30             	mov    0x30(%esi),%ecx
560d80:	ba 01 00 00 00       	mov    $0x1,%edx
560d85:	d3 e2                	shl    %cl,%edx
560d87:	01 54 24 48          	add    %edx,0x48(%esp)
560d8b:	ff 4c 24 1c          	decl   0x1c(%esp)
560d8f:	83 c3 28             	add    $0x28,%ebx
560d92:	8b 44 24 1c          	mov    0x1c(%esp),%eax
560d96:	85 c0                	test   %eax,%eax
560d98:	0f 8f 62 fc ff ff    	jg     0x560a00
560d9e:	ff 44 24 14          	incl   0x14(%esp)
560da2:	83 c7 20             	add    $0x20,%edi
560da5:	8b 54 24 14          	mov    0x14(%esp),%edx
560da9:	8b 0e                	mov    (%esi),%ecx
560dab:	3b d1                	cmp    %ecx,%edx
560dad:	0f 8c a7 fa ff ff    	jl     0x56085a
560db3:	ff 84 24 88 00 00 00 	incl   0x88(%esp)
560dba:	ff 44 24 10          	incl   0x10(%esp)
560dbe:	83 c6 38             	add    $0x38,%esi
560dc1:	8b 44 24 08          	mov    0x8(%esp),%eax
560dc5:	8b 4c 24 10          	mov    0x10(%esp),%ecx
560dc9:	0f b7 50 14          	movzwl 0x14(%eax),%edx
560dcd:	3b d1                	cmp    %ecx,%edx
560dcf:	0f 8f c5 f6 ff ff    	jg     0x56049a
560dd5:	66 ff 44 24 0c       	incw   0xc(%esp)
560dda:	83 44 24 08 20       	addl   $0x20,0x8(%esp)
560ddf:	83 84 24 84 00 00 00 	addl   $0x20,0x84(%esp)
560de6:	20
560de7:	0f b7 44 24 0c       	movzwl 0xc(%esp),%eax
560dec:	8b 14 24             	mov    (%esp),%edx
560def:	8b 4a 38             	mov    0x38(%edx),%ecx
560df2:	3b c1                	cmp    %ecx,%eax
560df4:	0f 8c 72 f4 ff ff    	jl     0x56026c
560dfa:	8b 54 24 04          	mov    0x4(%esp),%edx
560dfe:	8b 04 24             	mov    (%esp),%eax
560e01:	e8 42 a7 00 00       	call   0x56b548
560e06:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560e0a:	85 c0                	test   %eax,%eax
560e0c:	89 41 34             	mov    %eax,0x34(%ecx)
560e0f:	75 08                	jne    0x560e19
560e11:	83 c8 ff             	or     $0xffffffff,%eax
560e14:	e9 88 00 00 00       	jmp    0x560ea1
560e19:	33 d2                	xor    %edx,%edx
560e1b:	89 94 24 80 00 00 00 	mov    %edx,0x80(%esp)
560e22:	eb 55                	jmp    0x560e79
560e24:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560e28:	8b 94 24 80 00 00 00 	mov    0x80(%esp),%edx
560e2f:	8b 41 20             	mov    0x20(%ecx),%eax
560e32:	8b 40 04             	mov    0x4(%eax),%eax
560e35:	e8 7a bf 00 00       	call   0x56cdb4
560e3a:	e8 b5 be 00 00       	call   0x56ccf4
560e3f:	89 44 24 7c          	mov    %eax,0x7c(%esp)
560e43:	8b 4c 24 7c          	mov    0x7c(%esp),%ecx
560e47:	85 c9                	test   %ecx,%ecx
560e49:	75 17                	jne    0x560e62
560e4b:	68 b0 03 00 00       	push   $0x3b0
560e50:	68 9c eb 69 00       	push   $0x69eb9c
560e55:	68 97 eb 69 00       	push   $0x69eb97
560e5a:	e8 e1 9c ff ff       	call   0x55ab40
560e5f:	83 c4 0c             	add    $0xc,%esp
560e62:	8b 44 24 04          	mov    0x4(%esp),%eax
560e66:	8b 54 24 7c          	mov    0x7c(%esp),%edx
560e6a:	8b 40 34             	mov    0x34(%eax),%eax
560e6d:	e8 96 bd 00 00       	call   0x56cc08
560e72:	ff 84 24 80 00 00 00 	incl   0x80(%esp)
560e79:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560e7d:	8b 41 20             	mov    0x20(%ecx),%eax
560e80:	8b 40 04             	mov    0x4(%eax),%eax
560e83:	e8 34 bf 00 00       	call   0x56cdbc
560e88:	8b 94 24 80 00 00 00 	mov    0x80(%esp),%edx
560e8f:	3b c2                	cmp    %edx,%eax
560e91:	7f 91                	jg     0x560e24
560e93:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560e97:	8b 41 34             	mov    0x34(%ecx),%eax
560e9a:	e8 21 bf 00 00       	call   0x56cdc0
560e9f:	33 c0                	xor    %eax,%eax
560ea1:	81 c4 8c 0a 00 00    	add    $0xa8c,%esp
560ea7:	5d                   	pop    %ebp
560ea8:	5f                   	pop    %edi
560ea9:	5e                   	pop    %esi
560eaa:	5b                   	pop    %ebx
560eab:	c3                   	ret
560eac:	53                   	push   %ebx
560ead:	56                   	push   %esi
560eae:	57                   	push   %edi
560eaf:	55                   	push   %ebp
560eb0:	83 c4 dc             	add    $0xffffffdc,%esp
560eb3:	89 54 24 04          	mov    %edx,0x4(%esp)
560eb7:	89 04 24             	mov    %eax,(%esp)
560eba:	8b 44 24 04          	mov    0x4(%esp),%eax
560ebe:	8b 40 24             	mov    0x24(%eax),%eax
560ec1:	85 c0                	test   %eax,%eax
560ec3:	0f 84 ae 01 00 00    	je     0x561077
560ec9:	33 d2                	xor    %edx,%edx
560ecb:	89 54 24 0c          	mov    %edx,0xc(%esp)
560ecf:	89 44 24 08          	mov    %eax,0x8(%esp)
560ed3:	e9 8d 01 00 00       	jmp    0x561065
560ed8:	33 c9                	xor    %ecx,%ecx
560eda:	89 4c 24 14          	mov    %ecx,0x14(%esp)
560ede:	8b 44 24 08          	mov    0x8(%esp),%eax
560ee2:	8b 50 18             	mov    0x18(%eax),%edx
560ee5:	89 54 24 1c          	mov    %edx,0x1c(%esp)
560ee9:	e9 2a 01 00 00       	jmp    0x561018
560eee:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
560ef2:	8b 41 04             	mov    0x4(%ecx),%eax
560ef5:	85 c0                	test   %eax,%eax
560ef7:	0f 84 12 01 00 00    	je     0x56100f
560efd:	33 d2                	xor    %edx,%edx
560eff:	89 54 24 10          	mov    %edx,0x10(%esp)
560f03:	89 44 24 18          	mov    %eax,0x18(%esp)
560f07:	e9 e1 00 00 00       	jmp    0x560fed
560f0c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
560f10:	8b 01                	mov    (%ecx),%eax
560f12:	85 c0                	test   %eax,%eax
560f14:	0f 84 ab 00 00 00    	je     0x560fc5
560f1a:	33 d2                	xor    %edx,%edx
560f1c:	8b f8                	mov    %eax,%edi
560f1e:	89 54 24 20          	mov    %edx,0x20(%esp)
560f22:	e9 8b 00 00 00       	jmp    0x560fb2
560f27:	8b 47 1c             	mov    0x1c(%edi),%eax
560f2a:	85 c0                	test   %eax,%eax
560f2c:	74 7d                	je     0x560fab
560f2e:	33 ed                	xor    %ebp,%ebp
560f30:	8b d8                	mov    %eax,%ebx
560f32:	eb 4c                	jmp    0x560f80
560f34:	eb 13                	jmp    0x560f49
560f36:	8b f0                	mov    %eax,%esi
560f38:	8d 43 04             	lea    0x4(%ebx),%eax
560f3b:	8b d6                	mov    %esi,%edx
560f3d:	e8 c2 16 00 00       	call   0x562604
560f42:	8b c6                	mov    %esi,%eax
560f44:	e8 33 17 00 00       	call   0x56267c
560f49:	8b 43 04             	mov    0x4(%ebx),%eax
560f4c:	85 c0                	test   %eax,%eax
560f4e:	75 e6                	jne    0x560f36
560f50:	8b 43 28             	mov    0x28(%ebx),%eax
560f53:	e8 3c 6e 01 00       	call   0x577d94
560f58:	8b 43 1c             	mov    0x1c(%ebx),%eax
560f5b:	85 c0                	test   %eax,%eax
560f5d:	74 05                	je     0x560f64
560f5f:	e8 d0 0b 01 00       	call   0x571b34
560f64:	8b 43 20             	mov    0x20(%ebx),%eax
560f67:	85 c0                	test   %eax,%eax
560f69:	74 05                	je     0x560f70
560f6b:	e8 64 f9 00 00       	call   0x5708d4
560f70:	8b 43 24             	mov    0x24(%ebx),%eax
560f73:	85 c0                	test   %eax,%eax
560f75:	74 05                	je     0x560f7c
560f77:	e8 18 6e 01 00       	call   0x577d94
560f7c:	45                   	inc    %ebp
560f7d:	83 c3 2c             	add    $0x2c,%ebx
560f80:	8b 57 18             	mov    0x18(%edi),%edx
560f83:	3b ea                	cmp    %edx,%ebp
560f85:	7c c2                	jl     0x560f49
560f87:	8b 47 20             	mov    0x20(%edi),%eax
560f8a:	85 c0                	test   %eax,%eax
560f8c:	74 05                	je     0x560f93
560f8e:	e8 89 8a 01 00       	call   0x579a1c
560f93:	8b 47 24             	mov    0x24(%edi),%eax
560f96:	85 c0                	test   %eax,%eax
560f98:	74 05                	je     0x560f9f
560f9a:	e8 7d 8a 01 00       	call   0x579a1c
560f9f:	8b 47 1c             	mov    0x1c(%edi),%eax
560fa2:	85 c0                	test   %eax,%eax
560fa4:	74 05                	je     0x560fab
560fa6:	e8 d9 73 01 00       	call   0x578384
560fab:	ff 44 24 20          	incl   0x20(%esp)
560faf:	83 c7 28             	add    $0x28,%edi
560fb2:	8b 54 24 1c          	mov    0x1c(%esp),%edx
560fb6:	8b 4a 28             	mov    0x28(%edx),%ecx
560fb9:	8b 44 24 20          	mov    0x20(%esp),%eax
560fbd:	3b c8                	cmp    %eax,%ecx
560fbf:	0f 8f 62 ff ff ff    	jg     0x560f27
560fc5:	8b 54 24 18          	mov    0x18(%esp),%edx
560fc9:	8b 42 04             	mov    0x4(%edx),%eax
560fcc:	85 c0                	test   %eax,%eax
560fce:	74 05                	je     0x560fd5
560fd0:	e8 bf 6d 01 00       	call   0x577d94
560fd5:	8b 54 24 18          	mov    0x18(%esp),%edx
560fd9:	8b 02                	mov    (%edx),%eax
560fdb:	85 c0                	test   %eax,%eax
560fdd:	74 05                	je     0x560fe4
560fdf:	e8 a0 73 01 00       	call   0x578384
560fe4:	ff 44 24 10          	incl   0x10(%esp)
560fe8:	83 44 24 18 20       	addl   $0x20,0x18(%esp)
560fed:	8b 54 24 1c          	mov    0x1c(%esp),%edx
560ff1:	8b 0a                	mov    (%edx),%ecx
560ff3:	8b 44 24 10          	mov    0x10(%esp),%eax
560ff7:	3b c8                	cmp    %eax,%ecx
560ff9:	0f 8f 0d ff ff ff    	jg     0x560f0c
560fff:	8b 54 24 1c          	mov    0x1c(%esp),%edx
561003:	8b 42 04             	mov    0x4(%edx),%eax
561006:	85 c0                	test   %eax,%eax
561008:	74 05                	je     0x56100f
56100a:	e8 75 73 01 00       	call   0x578384
56100f:	ff 44 24 14          	incl   0x14(%esp)
561013:	83 44 24 1c 38       	addl   $0x38,0x1c(%esp)
561018:	8b 54 24 08          	mov    0x8(%esp),%edx
56101c:	8b 44 24 14          	mov    0x14(%esp),%eax
561020:	0f b7 4a 14          	movzwl 0x14(%edx),%ecx
561024:	3b c8                	cmp    %eax,%ecx
561026:	0f 8f c2 fe ff ff    	jg     0x560eee
56102c:	8b 54 24 08          	mov    0x8(%esp),%edx
561030:	8b 42 18             	mov    0x18(%edx),%eax
561033:	85 c0                	test   %eax,%eax
561035:	74 05                	je     0x56103c
561037:	e8 48 73 01 00       	call   0x578384
56103c:	8b 54 24 08          	mov    0x8(%esp),%edx
561040:	8b 42 10             	mov    0x10(%edx),%eax
561043:	85 c0                	test   %eax,%eax
561045:	74 05                	je     0x56104c
561047:	e8 48 6d 01 00       	call   0x577d94
56104c:	8b 54 24 08          	mov    0x8(%esp),%edx
561050:	8b 42 1c             	mov    0x1c(%edx),%eax
561053:	85 c0                	test   %eax,%eax
561055:	74 05                	je     0x56105c
561057:	e8 90 c9 00 00       	call   0x56d9ec
56105c:	ff 44 24 0c          	incl   0xc(%esp)
561060:	83 44 24 08 20       	addl   $0x20,0x8(%esp)
561065:	8b 14 24             	mov    (%esp),%edx
561068:	8b 4a 38             	mov    0x38(%edx),%ecx
56106b:	8b 44 24 0c          	mov    0xc(%esp),%eax
56106f:	3b c8                	cmp    %eax,%ecx
561071:	0f 8f 61 fe ff ff    	jg     0x560ed8
561077:	8b 54 24 04          	mov    0x4(%esp),%edx
56107b:	8b 42 20             	mov    0x20(%edx),%eax
56107e:	85 c0                	test   %eax,%eax
561080:	74 0e                	je     0x561090
561082:	e8 f1 0d 00 00       	call   0x561e78
561087:	8b 54 24 04          	mov    0x4(%esp),%edx
56108b:	33 c9                	xor    %ecx,%ecx
56108d:	89 4a 20             	mov    %ecx,0x20(%edx)
561090:	8b 44 24 04          	mov    0x4(%esp),%eax
561094:	8b 50 24             	mov    0x24(%eax),%edx
561097:	85 d2                	test   %edx,%edx
561099:	74 15                	je     0x5610b0
56109b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56109f:	8b 41 24             	mov    0x24(%ecx),%eax
5610a2:	e8 dd 72 01 00       	call   0x578384
5610a7:	8b 54 24 04          	mov    0x4(%esp),%edx
5610ab:	33 c9                	xor    %ecx,%ecx
5610ad:	89 4a 24             	mov    %ecx,0x24(%edx)
5610b0:	8b 44 24 04          	mov    0x4(%esp),%eax
5610b4:	8b 50 34             	mov    0x34(%eax),%edx
5610b7:	85 d2                	test   %edx,%edx
5610b9:	74 15                	je     0x5610d0
5610bb:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5610bf:	8b 41 34             	mov    0x34(%ecx),%eax
5610c2:	e8 c1 ba 00 00       	call   0x56cb88
5610c7:	8b 54 24 04          	mov    0x4(%esp),%edx
5610cb:	33 c9                	xor    %ecx,%ecx
5610cd:	89 4a 34             	mov    %ecx,0x34(%edx)
5610d0:	8b 44 24 04          	mov    0x4(%esp),%eax
5610d4:	8b 50 18             	mov    0x18(%eax),%edx
5610d7:	85 d2                	test   %edx,%edx
5610d9:	74 15                	je     0x5610f0
5610db:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5610df:	8b 41 18             	mov    0x18(%ecx),%eax
5610e2:	e8 55 76 01 00       	call   0x57873c
5610e7:	8b 54 24 04          	mov    0x4(%esp),%edx
5610eb:	33 c9                	xor    %ecx,%ecx
5610ed:	89 4a 18             	mov    %ecx,0x18(%edx)
5610f0:	8b 44 24 04          	mov    0x4(%esp),%eax
5610f4:	8b 50 14             	mov    0x14(%eax),%edx
5610f7:	85 d2                	test   %edx,%edx
5610f9:	74 15                	je     0x561110
5610fb:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5610ff:	8b 41 14             	mov    0x14(%ecx),%eax
561102:	e8 71 19 00 00       	call   0x562a78
561107:	8b 54 24 04          	mov    0x4(%esp),%edx
56110b:	33 c9                	xor    %ecx,%ecx
56110d:	89 4a 14             	mov    %ecx,0x14(%edx)
561110:	8b 44 24 04          	mov    0x4(%esp),%eax
561114:	c7 00 03 00 00 00    	movl   $0x3,(%eax)
56111a:	33 c0                	xor    %eax,%eax
56111c:	83 c4 24             	add    $0x24,%esp
56111f:	5d                   	pop    %ebp
561120:	5f                   	pop    %edi
561121:	5e                   	pop    %esi
561122:	5b                   	pop    %ebx
561123:	c3                   	ret
561124:	53                   	push   %ebx
561125:	56                   	push   %esi
561126:	57                   	push   %edi
561127:	55                   	push   %ebp
561128:	83 c4 e4             	add    $0xffffffe4,%esp
56112b:	89 54 24 04          	mov    %edx,0x4(%esp)
56112f:	89 04 24             	mov    %eax,(%esp)
561132:	8b 54 24 04          	mov    0x4(%esp),%edx
561136:	8b 04 24             	mov    (%esp),%eax
561139:	e8 e6 1b 00 00       	call   0x562d24
56113e:	85 c0                	test   %eax,%eax
561140:	74 1a                	je     0x56115c
561142:	68 a6 eb 69 00       	push   $0x69eba6
561147:	68 80 2e 6a 00       	push   $0x6a2e80
56114c:	e8 7b 8f 01 00       	call   0x57a0cc
561151:	83 c4 08             	add    $0x8,%esp
561154:	83 c8 ff             	or     $0xffffffff,%eax
561157:	e9 36 04 00 00       	jmp    0x561592
56115c:	33 d2                	xor    %edx,%edx
56115e:	89 54 24 08          	mov    %edx,0x8(%esp)
561162:	8b 4c 24 04          	mov    0x4(%esp),%ecx
561166:	8b 59 24             	mov    0x24(%ecx),%ebx
561169:	e9 a5 00 00 00       	jmp    0x561213
56116e:	8b 44 24 04          	mov    0x4(%esp),%eax
561172:	8b 50 20             	mov    0x20(%eax),%edx
561175:	8b 44 24 08          	mov    0x8(%esp),%eax
561179:	8b 4a 10             	mov    0x10(%edx),%ecx
56117c:	8b d0                	mov    %eax,%edx
56117e:	8d 04 c2             	lea    (%edx,%eax,8),%eax
561181:	c1 e0 03             	shl    $0x3,%eax
561184:	2b c2                	sub    %edx,%eax
561186:	c1 e0 02             	shl    $0x2,%eax
561189:	03 c8                	add    %eax,%ecx
56118b:	89 4c 24 14          	mov    %ecx,0x14(%esp)
56118f:	33 c9                	xor    %ecx,%ecx
561191:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
561195:	8b 7b 18             	mov    0x18(%ebx),%edi
561198:	eb 66                	jmp    0x561200
56119a:	8b 47 04             	mov    0x4(%edi),%eax
56119d:	85 c0                	test   %eax,%eax
56119f:	74 58                	je     0x5611f9