5b0ebb:	83 e0 1f             	and    $0x1f,%eax
5b0ebe:	8b cd                	mov    %ebp,%ecx
5b0ec0:	8b d7                	mov    %edi,%edx
5b0ec2:	e8 65 f8 ff ff       	call   0x5b072c
5b0ec7:	83 c3 03             	add    $0x3,%ebx
5b0eca:	53                   	push   %ebx
5b0ecb:	8b 06                	mov    (%esi),%eax
5b0ecd:	c1 e8 1b             	shr    $0x1b,%eax
5b0ed0:	83 e0 1f             	and    $0x1f,%eax
5b0ed3:	8b cd                	mov    %ebp,%ecx
5b0ed5:	8b d7                	mov    %edi,%edx
5b0ed7:	e8 50 f8 ff ff       	call   0x5b072c
5b0edc:	83 c3 03             	add    $0x3,%ebx
5b0edf:	83 44 24 08 04       	addl   $0x4,0x8(%esp)
5b0ee4:	83 c6 04             	add    $0x4,%esi
5b0ee7:	8b 04 24             	mov    (%esp),%eax
5b0eea:	8b 10                	mov    (%eax),%edx
5b0eec:	ff 52 0c             	call   *0xc(%edx)
5b0eef:	48                   	dec    %eax
5b0ef0:	3b 44 24 08          	cmp    0x8(%esp),%eax
5b0ef4:	7f 88                	jg     0x5b0e7e
5b0ef6:	8b 44 24 0c          	mov    0xc(%esp),%eax
5b0efa:	01 44 24 04          	add    %eax,0x4(%esp)
5b0efe:	ff 4c 24 10          	decl   0x10(%esp)
5b0f02:	0f 85 61 ff ff ff    	jne    0x5b0e69
5b0f08:	83 c4 14             	add    $0x14,%esp
5b0f0b:	5d                   	pop    %ebp
5b0f0c:	5f                   	pop    %edi
5b0f0d:	5e                   	pop    %esi
5b0f0e:	5b                   	pop    %ebx
5b0f0f:	c3                   	ret
5b0f10:	53                   	push   %ebx
5b0f11:	56                   	push   %esi
5b0f12:	57                   	push   %edi
5b0f13:	55                   	push   %ebp
5b0f14:	83 c4 e4             	add    $0xffffffe4,%esp
5b0f17:	89 14 24             	mov    %edx,(%esp)
5b0f1a:	8b d8                	mov    %eax,%ebx
5b0f1c:	84 c9                	test   %cl,%cl
5b0f1e:	74 10                	je     0x5b0f30
5b0f20:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
5b0f27:	00
5b0f28:	33 c0                	xor    %eax,%eax
5b0f2a:	89 44 24 04          	mov    %eax,0x4(%esp)
5b0f2e:	eb 15                	jmp    0x5b0f45
5b0f30:	c7 44 24 14 ff ff ff 	movl   $0xffffffff,0x14(%esp)
5b0f37:	ff
5b0f38:	8b 04 24             	mov    (%esp),%eax
5b0f3b:	8b 10                	mov    (%eax),%edx
5b0f3d:	ff 52 08             	call   *0x8(%edx)
5b0f40:	48                   	dec    %eax
5b0f41:	89 44 24 04          	mov    %eax,0x4(%esp)
5b0f45:	8b f3                	mov    %ebx,%esi
5b0f47:	8b 04 24             	mov    (%esp),%eax
5b0f4a:	8b 10                	mov    (%eax),%edx
5b0f4c:	ff 52 08             	call   *0x8(%edx)
5b0f4f:	8b f8                	mov    %eax,%edi
5b0f51:	8b 04 24             	mov    (%esp),%eax
5b0f54:	8b 10                	mov    (%eax),%edx
5b0f56:	ff 52 0c             	call   *0xc(%edx)
5b0f59:	0f af f8             	imul   %eax,%edi
5b0f5c:	03 fb                	add    %ebx,%edi
5b0f5e:	89 7c 24 08          	mov    %edi,0x8(%esp)
5b0f62:	8b 04 24             	mov    (%esp),%eax
5b0f65:	8b 10                	mov    (%eax),%edx
5b0f67:	ff 52 08             	call   *0x8(%edx)
5b0f6a:	8b f8                	mov    %eax,%edi
5b0f6c:	8b 04 24             	mov    (%esp),%eax
5b0f6f:	8b 10                	mov    (%eax),%edx
5b0f71:	ff 52 0c             	call   *0xc(%edx)
5b0f74:	0f af f8             	imul   %eax,%edi
5b0f77:	03 fb                	add    %ebx,%edi
5b0f79:	8b 04 24             	mov    (%esp),%eax
5b0f7c:	8b 10                	mov    (%eax),%edx
5b0f7e:	ff 52 08             	call   *0x8(%edx)
5b0f81:	8b d8                	mov    %eax,%ebx
5b0f83:	85 db                	test   %ebx,%ebx
5b0f85:	79 03                	jns    0x5b0f8a
5b0f87:	83 c3 03             	add    $0x3,%ebx
5b0f8a:	c1 fb 02             	sar    $0x2,%ebx
5b0f8d:	8b 04 24             	mov    (%esp),%eax
5b0f90:	8b 10                	mov    (%eax),%edx
5b0f92:	ff 52 0c             	call   *0xc(%edx)
5b0f95:	85 c0                	test   %eax,%eax
5b0f97:	79 03                	jns    0x5b0f9c
5b0f99:	83 c0 03             	add    $0x3,%eax
5b0f9c:	c1 f8 02             	sar    $0x2,%eax
5b0f9f:	0f af d8             	imul   %eax,%ebx
5b0fa2:	03 fb                	add    %ebx,%edi
5b0fa4:	8b 04 24             	mov    (%esp),%eax
5b0fa7:	8b 10                	mov    (%eax),%edx
5b0fa9:	ff 52 08             	call   *0x8(%edx)
5b0fac:	48                   	dec    %eax
5b0fad:	85 c0                	test   %eax,%eax
5b0faf:	0f 8c d1 00 00 00    	jl     0x5b1086
5b0fb5:	40                   	inc    %eax
5b0fb6:	89 44 24 18          	mov    %eax,0x18(%esp)
5b0fba:	8b 54 24 04          	mov    0x4(%esp),%edx
5b0fbe:	8b 04 24             	mov    (%esp),%eax
5b0fc1:	8b 08                	mov    (%eax),%ecx
5b0fc3:	ff 11                	call   *(%ecx)
5b0fc5:	8b d8                	mov    %eax,%ebx
5b0fc7:	33 ed                	xor    %ebp,%ebp
5b0fc9:	8b 44 24 08          	mov    0x8(%esp),%eax
5b0fcd:	89 44 24 10          	mov    %eax,0x10(%esp)
5b0fd1:	89 7c 24 0c          	mov    %edi,0xc(%esp)
5b0fd5:	eb 70                	jmp    0x5b1047
5b0fd7:	53                   	push   %ebx
5b0fd8:	8b 44 24 0c          	mov    0xc(%esp),%eax
5b0fdc:	33 c9                	xor    %ecx,%ecx
5b0fde:	8a 08                	mov    (%eax),%cl
5b0fe0:	33 d2                	xor    %edx,%edx
5b0fe2:	8a 17                	mov    (%edi),%dl
5b0fe4:	33 c0                	xor    %eax,%eax
5b0fe6:	8a 06                	mov    (%esi),%al
5b0fe8:	e8 3f f7 ff ff       	call   0x5b072c
5b0fed:	83 c3 03             	add    $0x3,%ebx
5b0ff0:	46                   	inc    %esi
5b0ff1:	53                   	push   %ebx
5b0ff2:	8b 44 24 0c          	mov    0xc(%esp),%eax
5b0ff6:	33 c9                	xor    %ecx,%ecx
5b0ff8:	8a 08                	mov    (%eax),%cl
5b0ffa:	33 d2                	xor    %edx,%edx
5b0ffc:	8a 17                	mov    (%edi),%dl
5b0ffe:	33 c0                	xor    %eax,%eax
5b1000:	8a 06                	mov    (%esi),%al
5b1002:	e8 25 f7 ff ff       	call   0x5b072c
5b1007:	83 c3 03             	add    $0x3,%ebx
5b100a:	46                   	inc    %esi
5b100b:	53                   	push   %ebx
5b100c:	8b 44 24 0c          	mov    0xc(%esp),%eax
5b1010:	33 c9                	xor    %ecx,%ecx
5b1012:	8a 08                	mov    (%eax),%cl
5b1014:	33 d2                	xor    %edx,%edx
5b1016:	8a 17                	mov    (%edi),%dl
5b1018:	33 c0                	xor    %eax,%eax
5b101a:	8a 06                	mov    (%esi),%al
5b101c:	e8 0b f7 ff ff       	call   0x5b072c
5b1021:	83 c3 03             	add    $0x3,%ebx
5b1024:	46                   	inc    %esi
5b1025:	53                   	push   %ebx
5b1026:	8b 44 24 0c          	mov    0xc(%esp),%eax
5b102a:	33 c9                	xor    %ecx,%ecx
5b102c:	8a 08                	mov    (%eax),%cl
5b102e:	33 d2                	xor    %edx,%edx
5b1030:	8a 17                	mov    (%edi),%dl
5b1032:	33 c0                	xor    %eax,%eax
5b1034:	8a 06                	mov    (%esi),%al
5b1036:	e8 f1 f6 ff ff       	call   0x5b072c
5b103b:	83 c3 03             	add    $0x3,%ebx
5b103e:	46                   	inc    %esi
5b103f:	47                   	inc    %edi
5b1040:	ff 44 24 08          	incl   0x8(%esp)
5b1044:	83 c5 04             	add    $0x4,%ebp
5b1047:	8b 04 24             	mov    (%esp),%eax
5b104a:	8b 10                	mov    (%eax),%edx
5b104c:	ff 52 0c             	call   *0xc(%edx)
5b104f:	48                   	dec    %eax
5b1050:	3b e8                	cmp    %eax,%ebp
5b1052:	7c 83                	jl     0x5b0fd7
5b1054:	8b 44 24 14          	mov    0x14(%esp),%eax
5b1058:	01 44 24 04          	add    %eax,0x4(%esp)
5b105c:	8b 44 24 04          	mov    0x4(%esp),%eax
5b1060:	25 03 00 00 80       	and    $0x80000003,%eax
5b1065:	79 05                	jns    0x5b106c
5b1067:	48                   	dec    %eax
5b1068:	83 c8 fc             	or     $0xfffffffc,%eax
5b106b:	40                   	inc    %eax
5b106c:	85 c0                	test   %eax,%eax
5b106e:	74 0c                	je     0x5b107c
5b1070:	8b 44 24 10          	mov    0x10(%esp),%eax
5b1074:	89 44 24 08          	mov    %eax,0x8(%esp)
5b1078:	8b 7c 24 0c          	mov    0xc(%esp),%edi
5b107c:	ff 4c 24 18          	decl   0x18(%esp)
5b1080:	0f 85 34 ff ff ff    	jne    0x5b0fba
5b1086:	83 c4 1c             	add    $0x1c,%esp
5b1089:	5d                   	pop    %ebp
5b108a:	5f                   	pop    %edi
5b108b:	5e                   	pop    %esi
5b108c:	5b                   	pop    %ebx
5b108d:	c3                   	ret
5b108e:	8b c0                	mov    %eax,%eax
5b1090:	53                   	push   %ebx
5b1091:	56                   	push   %esi
5b1092:	57                   	push   %edi
5b1093:	55                   	push   %ebp
5b1094:	83 c4 e4             	add    $0xffffffe4,%esp
5b1097:	89 14 24             	mov    %edx,(%esp)
5b109a:	8b d8                	mov    %eax,%ebx
5b109c:	84 c9                	test   %cl,%cl
5b109e:	74 10                	je     0x5b10b0
5b10a0:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
5b10a7:	00
5b10a8:	33 c0                	xor    %eax,%eax
5b10aa:	89 44 24 04          	mov    %eax,0x4(%esp)
5b10ae:	eb 15                	jmp    0x5b10c5
5b10b0:	c7 44 24 14 ff ff ff 	movl   $0xffffffff,0x14(%esp)
5b10b7:	ff
5b10b8:	8b 04 24             	mov    (%esp),%eax
5b10bb:	8b 10                	mov    (%eax),%edx
5b10bd:	ff 52 08             	call   *0x8(%edx)
5b10c0:	48                   	dec    %eax
5b10c1:	89 44 24 04          	mov    %eax,0x4(%esp)
5b10c5:	8b f3                	mov    %ebx,%esi
5b10c7:	8b 04 24             	mov    (%esp),%eax
5b10ca:	8b 10                	mov    (%eax),%edx
5b10cc:	ff 52 08             	call   *0x8(%edx)
5b10cf:	8b f8                	mov    %eax,%edi
5b10d1:	8b 04 24             	mov    (%esp),%eax
5b10d4:	8b 10                	mov    (%eax),%edx
5b10d6:	ff 52 0c             	call   *0xc(%edx)
5b10d9:	0f af f8             	imul   %eax,%edi
5b10dc:	03 fb                	add    %ebx,%edi
5b10de:	89 7c 24 08          	mov    %edi,0x8(%esp)
5b10e2:	8b 04 24             	mov    (%esp),%eax
5b10e5:	8b 10                	mov    (%eax),%edx
5b10e7:	ff 52 08             	call   *0x8(%edx)
5b10ea:	8b f8                	mov    %eax,%edi
5b10ec:	8b 04 24             	mov    (%esp),%eax
5b10ef:	8b 10                	mov    (%eax),%edx
5b10f1:	ff 52 0c             	call   *0xc(%edx)
5b10f4:	0f af f8             	imul   %eax,%edi
5b10f7:	03 fb                	add    %ebx,%edi
5b10f9:	8b 04 24             	mov    (%esp),%eax
5b10fc:	8b 10                	mov    (%eax),%edx
5b10fe:	ff 52 08             	call   *0x8(%edx)
5b1101:	8b d8                	mov    %eax,%ebx
5b1103:	d1 fb                	sar    $1,%ebx
5b1105:	79 03                	jns    0x5b110a
5b1107:	83 d3 00             	adc    $0x0,%ebx
5b110a:	8b 04 24             	mov    (%esp),%eax
5b110d:	8b 10                	mov    (%eax),%edx
5b110f:	ff 52 0c             	call   *0xc(%edx)
5b1112:	d1 f8                	sar    $1,%eax
5b1114:	79 03                	jns    0x5b1119
5b1116:	83 d0 00             	adc    $0x0,%eax
5b1119:	0f af d8             	imul   %eax,%ebx
5b111c:	03 fb                	add    %ebx,%edi
5b111e:	8b 04 24             	mov    (%esp),%eax
5b1121:	8b 10                	mov    (%eax),%edx
5b1123:	ff 52 08             	call   *0x8(%edx)
5b1126:	48                   	dec    %eax
5b1127:	85 c0                	test   %eax,%eax
5b1129:	0f 8c 9d 00 00 00    	jl     0x5b11cc
5b112f:	40                   	inc    %eax
5b1130:	89 44 24 18          	mov    %eax,0x18(%esp)
5b1134:	8b 54 24 04          	mov    0x4(%esp),%edx
5b1138:	8b 04 24             	mov    (%esp),%eax
5b113b:	8b 08                	mov    (%eax),%ecx
5b113d:	ff 11                	call   *(%ecx)
5b113f:	8b d8                	mov    %eax,%ebx
5b1141:	33 ed                	xor    %ebp,%ebp
5b1143:	8b 44 24 08          	mov    0x8(%esp),%eax
5b1147:	89 44 24 10          	mov    %eax,0x10(%esp)
5b114b:	89 7c 24 0c          	mov    %edi,0xc(%esp)
5b114f:	eb 3c                	jmp    0x5b118d
5b1151:	53                   	push   %ebx
5b1152:	8b 44 24 0c          	mov    0xc(%esp),%eax
5b1156:	33 c9                	xor    %ecx,%ecx
5b1158:	8a 08                	mov    (%eax),%cl
5b115a:	33 d2                	xor    %edx,%edx
5b115c:	8a 17                	mov    (%edi),%dl
5b115e:	33 c0                	xor    %eax,%eax
5b1160:	8a 06                	mov    (%esi),%al
5b1162:	e8 c5 f5 ff ff       	call   0x5b072c
5b1167:	83 c3 03             	add    $0x3,%ebx
5b116a:	46                   	inc    %esi
5b116b:	53                   	push   %ebx
5b116c:	8b 44 24 0c          	mov    0xc(%esp),%eax
5b1170:	33 c9                	xor    %ecx,%ecx
5b1172:	8a 08                	mov    (%eax),%cl
5b1174:	33 d2                	xor    %edx,%edx
5b1176:	8a 17                	mov    (%edi),%dl
5b1178:	33 c0                	xor    %eax,%eax
5b117a:	8a 06                	mov    (%esi),%al
5b117c:	e8 ab f5 ff ff       	call   0x5b072c
5b1181:	83 c3 03             	add    $0x3,%ebx
5b1184:	46                   	inc    %esi
5b1185:	47                   	inc    %edi
5b1186:	ff 44 24 08          	incl   0x8(%esp)
5b118a:	83 c5 02             	add    $0x2,%ebp
5b118d:	8b 04 24             	mov    (%esp),%eax
5b1190:	8b 10                	mov    (%eax),%edx
5b1192:	ff 52 0c             	call   *0xc(%edx)
5b1195:	48                   	dec    %eax
5b1196:	3b e8                	cmp    %eax,%ebp
5b1198:	7c b7                	jl     0x5b1151
5b119a:	8b 44 24 14          	mov    0x14(%esp),%eax
5b119e:	01 44 24 04          	add    %eax,0x4(%esp)
5b11a2:	8b 44 24 04          	mov    0x4(%esp),%eax
5b11a6:	25 01 00 00 80       	and    $0x80000001,%eax
5b11ab:	79 05                	jns    0x5b11b2
5b11ad:	48                   	dec    %eax
5b11ae:	83 c8 fe             	or     $0xfffffffe,%eax
5b11b1:	40                   	inc    %eax
5b11b2:	85 c0                	test   %eax,%eax
5b11b4:	74 0c                	je     0x5b11c2
5b11b6:	8b 44 24 10          	mov    0x10(%esp),%eax
5b11ba:	89 44 24 08          	mov    %eax,0x8(%esp)
5b11be:	8b 7c 24 0c          	mov    0xc(%esp),%edi
5b11c2:	ff 4c 24 18          	decl   0x18(%esp)
5b11c6:	0f 85 68 ff ff ff    	jne    0x5b1134
5b11cc:	83 c4 1c             	add    $0x1c,%esp
5b11cf:	5d                   	pop    %ebp
5b11d0:	5f                   	pop    %edi
5b11d1:	5e                   	pop    %esi
5b11d2:	5b                   	pop    %ebx
5b11d3:	c3                   	ret
5b11d4:	53                   	push   %ebx
5b11d5:	56                   	push   %esi
5b11d6:	57                   	push   %edi
5b11d7:	55                   	push   %ebp
5b11d8:	83 c4 e0             	add    $0xffffffe0,%esp
5b11db:	88 4c 24 04          	mov    %cl,0x4(%esp)
5b11df:	89 14 24             	mov    %edx,(%esp)
5b11e2:	8b d8                	mov    %eax,%ebx
5b11e4:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)
5b11e9:	74 10                	je     0x5b11fb
5b11eb:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
5b11f2:	00
5b11f3:	33 c0                	xor    %eax,%eax
5b11f5:	89 44 24 08          	mov    %eax,0x8(%esp)
5b11f9:	eb 15                	jmp    0x5b1210
5b11fb:	c7 44 24 18 ff ff ff 	movl   $0xffffffff,0x18(%esp)
5b1202:	ff
5b1203:	8b 04 24             	mov    (%esp),%eax
5b1206:	8b 10                	mov    (%eax),%edx
5b1208:	ff 52 08             	call   *0x8(%edx)
5b120b:	48                   	dec    %eax
5b120c:	89 44 24 08          	mov    %eax,0x8(%esp)
5b1210:	8b f3                	mov    %ebx,%esi
5b1212:	8b 04 24             	mov    (%esp),%eax
5b1215:	8b 10                	mov    (%eax),%edx
5b1217:	ff 52 08             	call   *0x8(%edx)
5b121a:	8b f8                	mov    %eax,%edi
5b121c:	8b 04 24             	mov    (%esp),%eax
5b121f:	8b 10                	mov    (%eax),%edx
5b1221:	ff 52 0c             	call   *0xc(%edx)
5b1224:	0f af f8             	imul   %eax,%edi
5b1227:	03 fb                	add    %ebx,%edi
5b1229:	8b 04 24             	mov    (%esp),%eax
5b122c:	8b 10                	mov    (%eax),%edx
5b122e:	ff 52 08             	call   *0x8(%edx)
5b1231:	8b e8                	mov    %eax,%ebp
5b1233:	8b 04 24             	mov    (%esp),%eax
5b1236:	8b 10                	mov    (%eax),%edx
5b1238:	ff 52 0c             	call   *0xc(%edx)
5b123b:	0f af e8             	imul   %eax,%ebp
5b123e:	03 eb                	add    %ebx,%ebp
5b1240:	8b 04 24             	mov    (%esp),%eax